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包)
hadoop3集群搭建详解(自身总结)

hadoop.env.shJAVA_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日志里面看