快速的Hadoop完全分布式运行
1、准备虚拟机
克隆3台linux虚拟机,仅安装了centos最小模式的机器
2、配置集群网络
网络分配表
主机名 |
IP地址 |
hadoop1 |
192.168.178.101 |
hadoop2 |
192.168.178.102 |
hadoop3 |
192.168.178.103 |
vi /etc/hosts
要在/etc/hosts加入:
192.168.178.101 hadoop1 192.168.178.102 hadoop2 192.168.178.103 hadoop3
3、SSH无密登录配置
(0)进入.ssh目录
cd ~/.ssh/
注意:如果没有这个目录的话,是因为还没使用过ssh,一般使用过ssh就会自动创建
(1)生成公钥
ssh-keygen -t rsa
注意:连续按3次回车即可
(2)拷贝公钥
ssh-copy-id hadoop1 ssh-copy-id hadoop2 ssh-copy-id hadoop3
注意:需要发出公钥的服务器有:NameNode、ResourceManager
4、编写集群分发脚本xsync
5、集群配置
|
hadoop1 |
hadoop2 |
hadoop3 |
HDFS |
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
原则:NameNode、ResourceManager、SecondaryNameNode分配在不同服务器上
*-env.sh 是修改JAVA_HOME
(1)core-site.xml
<!-- 指定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>
(2)hdfs-site.xml、hadoop-env.sh
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop3:50090</value>
</property>
(3)yarn-site.xml、yarn-env.sh
<!-- 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>
(4)mapred-site.xml、mapred-env.sh
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(5)配置slaves
hadoop1 hadoop2 hadoop3
(6)分发配置
xsync /opt/module/hadoop-2.7.2/ xsync /opt/module/jdk1.8.0_144 xsync /etc/profile
(7)集群更新系统环境变量
用于更新JAVA_HOME、Hadoop_HOME、PATH
source /etc/profile
6、集群启动
(1)第一次启动:NameNode格式化
hdfs namenode -format
(2)启动HDFS,在NameNode上启动
sbin/start-dfs.sh
(3)启动YARN,在ResourceManager上启动
sbin/start-yarn.sh
7、集群测试
(1)Web查看NaneNode信息
输入地址:hadoop1:50070
(2)上传一个文件
[root@hadoop1 software]# hdfs dfs -put hadoop-2.7.2.tar.gz /
(3)查看文件分块信息