Hadoop完全分布式搭建
Hadoop:hadoop-2.6.4
jdk:1.7.0_79
提前在所有机器上安装hadoop和jdk,打通互信,关闭防火墙,配置主机名映射,这里不介绍。
注意:本机需要ssh 本机: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
一、集群配置
1、节点规划
组件 | hostname:hadoop1 |
hostname: hadoop2 |
hostname: hadoop3 |
---|---|---|---|
HDFS | NameNode DataNode |
DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
注意:NameNode
、SecondaryNameNode
和ResourceManager
很耗内存资源,建议不要配置在同一节点上
2、配置文件
2.1 修改核心配置文件
cd /usr/local/hadoop-2.6.4/etc/hadoop/
vim core-site.xml
在<configuration></configuration>标签中添加如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录,注意tmp目录需要创建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/luxiu/hadoop/data</value>
</property>
2.2、修改HDFS配置文件
vim hdfs-site.xml
在<configuration></configuration>标签中添加如下配置
<!-- 设置dfs副本数,不设置默认是3个 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置namenode数据存放路径 -->
<property>
<name>dfs.name.dir</name>
<value>/data/luxiu/hadoop/data/name</value>
</property>
<!-- 设置datanode数据存放路径 -->
<property>
<name>dfs.data.dir</name>
<value>/data/luxiu/hadoop/data/data</value>
</property>
<!-- NameNode web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop1:8888</value>
</property>
<!-- 设置secondname的端口 -->
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop3:50090</value>
</property>
2.3、修改YARN配置文件
vim yarn-site.xml
在<configuration></configuration>标签中添加如下配置
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop2</value>
</property>
2.4、修改mapreduce配置文件
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
在<configuration></configuration>标签中添加如下配置
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.5、修改slaves配置文件
vim slaves
hadoop1
hadoop2
hadoop3
注意: 文件中添加的内容结尾不能有空格,文件中也不能有空行。
2.6、将以上配置文件同步分发至其他节点
二、集群启动
1、如果集群是第一次启动,要在namenode主节点格式化NameNode
hdfs namenode -format
注意:
格式化NameNode会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往的数据;
如果集群在运行过程中报错,需要重新格式化NameNode的话,需要先停止NameNode和DataNode进程,并且需要删除所有节点的data和logs目录,然后再进行格式化;
2、启动集群
//启动hdfs
cd /usr/local/hadoop-2.6.4/sbin
./start-dfs.sh
//到resourcemanager的节点上启动yarn
./start-yarn.sh
3、验证
在每一台节点上输入:jps 查看进程
[root@qsh4-sit-db-manage-1 sbin]# jps
17471 NameNode
18960 NodeManager
19110 Jps
17592 DataNode
Web端查看HDFS的NameNode
- 浏览器访问:http://ip:8888
- 查看HDFS上存储的数据信息
Web端查看YARN的ResourceManager,默认8088
- 浏览器访问:http://10.4.45.82:8088
- 查看YARN上运行的Job信息
三、集群测试