- 准备三台客户机(关闭防火墙、静态ip、主机名称)
192.168.1.201 hadoop001
192.168.1.202 hadoop002
192.168.1.203 hadoop003
- 将三台Linux都安装JDK,并配置好环境变量
- 安装hadoop(data和logs不管,参照https://blog.csdn.net/qq_40180229/article/details/100080514)
- 集群部署计划
- 配置集群(shell指定发送全部同步操作)
在/etc/hadoop目录中修改mapred-site.xml.template:
cp mapred-site.xml.template mapred-site.xml
配置core-site.xml
:
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/programs/hadoop-2.7.2/data/tmp</value>
</property>
配置hadoop-env.sh
, yarn-env.sh
, mapred-env.sh
中的JAVA_HOME:
配置hadoop-env.sh
:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop003:50090</value>
</property>
配置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>hadoop002</value>
</property>
配置mapred-site.xml
:
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6. 配置slaves群起集群
当把三台虚拟机都这样配置完成后(Xshell可以实现配置三台虚拟机同时操作),在SSH配置完成前提下进行。
免密登录:https://blog.csdn.net/qq_40180229/article/details/100022227
7. 启动集群
如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
bin/hdfs namenode -format
在namenode所在虚拟机启动HDFS:
sbin/start-dfs.sh
在ResouceManager所在的虚拟机启动YARN:
sbin/start-yarn.sh
8. 结果(电脑配置了映射情况下用hadoop003,没有的话用ip):
在web中输入http://hadoop003:50090/status.html
9. 测试(上传文件到集群)
10. 集群启动/停止方式
整体启动/停止HDFS(配置ssh是前提):
start-dfs.sh / stop-dfs.sh
整体启动/停止YARN(配置ssh是前提):
start-yarn.sh / stop-yarn.sh
补充:
hadoop生态圈:
not learn to live:
岁月冗长,人们都说所爱隔山海,山海不可平,但海有舟可渡,山有径可行,只要你愿意,只要,你与我心意相通,山海,亦可平。 ——热评《当世界从空中跌落》