hadoop3集群搭建详解(自身总结)
hadoop3
确定集群所需要的机器 ,我由于机器限制 只有三台机器,一般的数据节点至少要有三个副本 由于机器限制我这里就用了两个副本了(我这里hadoop01是主节点)
hadoop01
hadoop02
hadoop03
三台服务器
服务器环境搭建
hadoop3 需要的java环境必须在1.8 以上
hadoop3.0.0.1.tar.gz 项目文件下载
解压
解压后需要多件几个文件夹
在解压后的文件夹里面新建一个临时文件夹 hadooptemp
新建一个 日志文件夹 logs
新建一个hdfs文件夹 里面对应新建 data 和name 两个文件夹数据文件夹和名称文件
这是基本要设置的
文件同步脚本rsynch
#!/bin/bash
pcount=$#
if((pcount<1));then
echo 'no args';
exit;
fi
p1=$1;
fname=`basename $p1`
pdir=`cd -P $(dirname $p1); pwd`
echo $pdir
cuser=`whoami`
#echo $cuser
for((host=2;host<4;host=host+1));do
echo ---------------------hadoop0$host---------------------
rsync -rvl $pdir/$fname [email protected]$host:$pdir
done
命令同步脚本 xcall
#!/bin/bash
pcount=$#
if((pcount<1));then
echo 'no args';
exit;
fi
[email protected]
for((host=2;host<4;host=host+1));do
echo ---------------------hadoop0$host---------------------
ssh hadoop0$host [email protected]
done
修改hosts 文件并同步其他服务器
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.154 hadoop01
192.168.40.159 hadoop02
192.168.40.160 hadoop03
修改对应机器的hostname
vim /etc/hostname
配置免秘钥登录
首先看看你的服务器是否有ssh服务,没有的话就先安装 (在根目录下是否有.ssh 文件夹)
yum install ssh
1)查看端口号:netstat –lnt
确认端口为默认的22端口。
(2)生成秘钥对:ssh-****** –t rsa(出现提示一直默认)
(3)复制公钥到其他2个机器。
命令:ssh-copy-id -i id_rsa.pub [email protected]
这里要输入,yes 然后输密码ssh-copy-id
脚本做了两件事:1、将秘钥拷贝到了目的服务器,并创建了.ssh目录,2、又将id_rsa.pub文件更改名字为:authorized_keys,并保持文件权限属性不变。
测试:
ssh [email protected] ls -l ~
配置文件配置
bash_profile
中配置
HADOOP_HOME和HADOOP_OPTS(这个是一些java 运行时的额外的jar包)
hadoop.env.sh
JAVA_HOME是否配置了
export JAVA_HOME="/usr/local/java/jdk1.8.0_144"
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000/</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hadooptemp</value><!-- 这个是临时文件夹路径一定要自己定义-->
<description>A base for other temporary directories.</description>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
<description>
The secondary namenode http server address and port.
</description>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>hadoop03:9869</value>
<description>
The secondary namenode HTTPS server address and port.
</description>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoop/hadoop3/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoop/hadoop3/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
在
workers
文件中写数据节点的机器的hostname
hadoop02
hadoop03
在start-dfs.sh stop-dfs.sh 添加配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh stop-yarn.sh 添加配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
然后就可以吧这个hadoop3对应的文件夹分发到各个服务器了
然后应该就可以顺利启动了
出现什么问题就可以在logs日志里面看