共计 2946 个字符,预计需要花费 8 分钟才能阅读完成。
集群布局
HDFS: 1 个 NameNode + n 个 DataNode + 1 个 2NN
YARN: 1 个 ResourceManager + n 个 NodeManager
hadoop1 hadoop2 hadoop3
DN DN DN
NM NM NM
NN RM 2NN
筹备工作
筹备 3 台虚拟机,能够新建 1 台,而后克隆 2 台
1. 批改主机名
vi /etc/sysconfig/network,三台机器 HOSTNAME 别离改为 hadoop1,hadoop2,hadoop3
2. 设置动态 ip
在 hadoop1 机器上
a. 输出命令vi /etc/sysconfig/network-scripts/ifcfg-eth0
批改 BOOTPROTO=static
ONBOOT=yes
增加IPADDR=192.168.148.11
– – > 这是你本人设置的 IP 地址,必须合乎规定GATEWAY=192.168.148.2
– – > 这是网关地址NETMASK=255.255.255.0
– – > 这是子网掩码DNS1=192.168.148.2
– – > 写成网关地址
b. 重启虚拟机
hadoop2,hadoop3 反复以上操作,ip 别离为
IPADDR=192.168.148.12
IPADDR=192.168.148.13
3. 敞开防火墙
三台机器上
service iptables stop
chkconfig iptables off
4. 批改 hosts 映射
三台机器上
192.168.148.11 hadoop1
192.168.148.12 hadoop2
192.168.148.13 hadoop3
5. 配置免密登录
在 hadoop1 上
ssh-keygen -t rsa,回车三下
而后别离输出
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3
6. 上传源码包并解压
在 hadoop1 机器上
mkdir /opt/software
mkdir /opt/module
上传 jdk,hadoop 的 tar.gz 到 software,解压至 module
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-2.7.2.tar.gz -c /opt/module/
7. 分布式集群配置文件
在 hadoop1 机器上
cd /opt/hadoop-2.7.2/
cd /etc/hadoop/
批改以下四个文件:
a.vi core-site.xml
<configuration>
<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
b.vi hadoop-site.xml
<configuration>
<!-- 指定 Hadoop 辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop3:50090</value>
</property>
</configuration>
<configuration>
c.vi 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>hadoop2</value>
</property>
</configuration>
d.vi mapred-site.xml
<configuration>
<!-- 指定 mr 运行在 yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
8. 复制文件到其余节点
在 hadoop1 机器上
scp -r /opt/module/. hadoop2:/opt/module
scp -r /opt/module/. hadoop3:/opt/module
9. 配置 java hadoop 环境变量
在三台机器上
vi /etc/profile
JAVA_HOME=/opt/module/jdk1.8.0_121
HADOOP_HOME=/opt/module/hadoop-2.7.2
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME HADOOP_HOME
source /etc/profile
10. 格式化 NameNode
在 hadoop1 机器上,如果集群是第一次启动,须要格式化 NameNode
hadoop namenode -format
集群启动
集群单点启动
hadoop1 机器上启动 NNhadoop-daemon.sh start namenode
在 hadoop1 hadoop2 hadoop3 上启动 DNhadoop-daemon.sh start datanode
在 hadoop3 上启动 2NNhadoop-daemon.sh start secondarynamenode
在 hadoop2 上启动 RMyarn-daemon.sh start resourcemanager
在 hadoop1 hadoop2 hadoop3 上启动 NMyarn-daemon.sh start nodemanager
群起集群
在 hadoop2 配置 slaves
cd /opt/module/hadoop-2.7.2/etc/hadoop
vi slaves
增加
hadoop1
hadoop2
hadoop3
相干命令:
start-dfs.sh
stop-dfs.sh
start-yarn.sh
stop-yarn.sh
可能呈现的 JAVA_HOME is not set and could not be found 的问题,解决如下:
在三台机器的 /opt/module/hadoop-2.7.2/etc/hadoop
vi hadoop-env.sh
增加 export JAVA_HOME=/opt/module/jdk1.8.0_121
统计单词数测试
test 文件中蕴含若干单词,统计单词数测试如下:
hadoop fs -mkdir /wcinput
hadoop fs -put test /wcinput
hadoop jar hadoop hadoop-mapreduce-examples-2.7.2.jar
wordcount /wcinput /wcoutput