-
配置集群/分布式环境
基本布局如下:
集群/分布式模式需要修改 etc/hadoop 中的5个配置文件,后四个文件可点击查看官方默认设置值,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
1, 文件 slave
master
slave1
slave2
2, 文件 core-site.xml ,加入如下内容:
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
3, 文件hdfs-site.xml,因为有2个Slave,所以dfs.replication的值设为3(包括本机)。
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:50090</value>
</property>
</configuration>
4, 文件mapred-site.xml,这个文件不存在,首先需要从模板中复制一份:
1. cp mapred-site.xml.template mapred-site.xml
然后配置修改如下:
<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>
5, 文件yarn-site.xml:
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
配置好后,将 master 上的 Hadoop 文件复制到各个节点上(虽然直接采用 scp 复制也可以正确运行,但会有所不同,如符号链接 scp 过去后就有点不一样了。所以先打包再复制比较稳妥)。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件(根据实际情况)。
- cd /usr/local
- rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
- scp -r ./hadoop hadoop@slave01:/etc/local/
- 以上也可以直接使用xsync同步到所有节点
在slave01(slave02一样)上执行:
sudo chown -R hadoop:hadoop /usr/local/hadoop
然后再master中启动hadoop
1
. cd /usr/local/hadoop/
2. bin/hdfs namenode -format # 首次运行需要执行初始化,后面不再需要
3. sbin/start-dfs.sh
4. sbin/start-yarn.sh
通过命令jps可以查看各个节点所启动的进程。
jps配置成功
即:配置成功!
注意:
在ssh无密码可登录的条件下,以及jdk,hadoop都可直接执行的情况下
执行