准备机器信息:
192.168.1.110 master
192.168.1.120 worker120
192.168.1.121 worker121 # hadoop 3 使用 worker文件 而不是 slave文件 记录数据节点
环境准备步骤:
第一步:配置机器免密,这一步教程很多,不赘述。
第二步:这 3 个机器 设置 /etc/hosts 文件增加如下值,注意 ip对应的host不要重复:
192.168.1.110 master
192.168.1.120 worker120
192.168.1.121 worker121
第三步:安装 Java 并配置 环境变量
配置Hadoop 3 的各个配置文件:
说明在 master 机器上配置好如下文件后,将 安装包拷贝至各个机器上,需要配置的文件列表如下:
hadoop-3.2.0/etc/hadoop/core-site.xml
hadoop-3.2.0/etc/hadoop/hdfs-site.xml
hadoop-3.2.0/etc/hadoop/mapred-site.xml
hadoop-3.2.0/etc/hadoop/yarn-site.xml
hadoop-3.2.0/etc/hadoop/worker # 注意,要用 worker 而不是 slave 文件
<!-- core-site.xml 文件 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000<value>
</property>
<!-- 配置 hadoop 文件的 基础目录,请确保该目录已被手动创建。hadoop 有很多目录地址配置的参数,如果这些参数没配置,都会默认放到 hadoop.tmp.dir 指定的目录下 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chudu/hdfs<value>
</property>
</configuration>
<!-- hdfs-site.xml 配置文件-->
<configuration>
<!-- 数据分片数 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定 namenode 地址,端口。hadoop 自带的 Web 管理页面将通过这个端口访问-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- namenode 的元数据目录,我们放到core-site.xml配置的 hadoop.tmp.dir 指定的目录中-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/chudu/hdfs/name</value>
</property>
<!-- namenode 的数据目录,我们放到core-site.xml配置的 hadoop.tmp.dir 指定的目录中-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/chudu/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
<!-- 重要参数,文档都没有提及。默认 localhost
引发问题:如果不配,利用 “bin/hdfs dfsadmin -report” 命令看到有 2 个 数据节点,Web界面的 Live Nodes 也统计到 2 个节点,但是 点击进去的 datanode 列表 却只有 1 条 记录。
解决方法1:用该配置属性为每个节点配置不同的 hostname;
解决方法2:设置 Linux 系统的hostname,将 /etc/sysconfig/network 文件修改为如下
NETWORKING=yes
HOSTNAME=worker120 ## 每台机器分配一个不同的hostname
-->
<property>
<name>dfs.datanode.hostname</name>
<value>master</value>
</property>
</configuration>
<!-- mapred-site.xml 配置 -->
<configuration>
<!-- 使用 yarn 作为资源管理 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<!-- yarn-site.xml 配置-->
<configuration>
<!-- 这里的 master 是指 192.168.1.110 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master<alue>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle<alue>
</property>
</configuration>
# worker 文件中的 datanode 节点 配置,请勿拷贝本行
worker120
worker121
#格式化集群
./hadoop-3.2.0/bin/hdfs dfsadmin -format
# 在 master ( 192.168.1.110 ) 上启动集群
./hadoop-3.2.0/sbin/start-all.sh
# 集群信息报告
./hadoop-3.2.0/bin/hdfs dfsadmin -report
上面配置完成后,访问地址:http://192.168.1.110:9870 即可进入管理页:
不停机增加节点
参考上述说明,配置好datanode节点。然后:
# 启动 datanode
./hadoop-3.2.0/sbin/hadoop-daemon.sh start datanode
# 启动 nodemanager
./hadoop-3.2.0/sbin/yarn-daemon.sh start nodemanager
# 然后到 Name node 机器刷新节点配置
./hadoop-3.2.0/bin/hdfs dfsadmin -refreshNodes
# 数据 均衡处理
./hadoop-3.2.0/sbin/start-balancer.sh