二、Hadoop完全分布式安装
1.安装Hadoop
提供Hadoop安装包下载路径:链接:https://pan.baidu.com/s/1vXrUnImKzKNBNA3BtKJx7g 提取码:cp6f
将下载的文件上传至用户跟目录下
- 进入用户主目录,解压上传的文件
cd ~
tar -zxvf hadoop-2.6.0.tar.gz
- 重命名为hadoop,方便后面配置
mv hadoop-2.6.0 hadoop
- 配置hadoop的环境变量,输入命令:
sudo gedit /etc/profile
将下面三行脚本添加到profile中
#hadoop
export HADOOP_HOME=/home/hduser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存关闭,输入以下命令,重启使配置生效。
source /etc/profile
注意:在node2,node3上都需要按以上步骤执行。
2.配置Hadoop
配置Hadoop的七大文件
- hadoop-env.sh文件用于指定JDK路径
#进入hadoop的配置文件目录
cd ~/hadoop/etc/hadoop
#打开文件
gedit hadoop-env.sh
在文件中输入以下内容:
#jdk
export JAVA_HOME=/usr/java/jdk1.7.0_67
- yarn-env.sh文件,是第二代新增加的yarn框架,对MapReduceV1存在的缺陷进行了重构,用于指定yarn框架的JDK
#打开文件
gedit yarn-env.sh
在打开的文件中输入以下内容:
#jdk
export JAVA_HOME=/usr/java/jdk1.7.0_67
- slaves:用于增加slave节点也就是DataNode节点
#打开文件
gedit slaves
打开并清空源文件内容输入以下内容:
#上次文章中设置的hostname名称 我的是node2,node3
node2
node3
- core-site.xml文件,该文件是Hadoop的全局配置,打开并在<configuration>元素中添加配置属性。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop:tmp.dir</name>
<value>file:/home/hduser/hadoop/tmp</value>
</property>
</configuration>
- hdfs-site.xml文件,该文件是HDFS的配置,打开并在<configuration>元素中添加配置属性。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>node1:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
</configuration>
- mapred-site.xml文件,该文件是MapReduce的配置。在模板文件mapred-site.xml.template中复制,打开并在<configuration>元素中添加配置属性。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
- yarn-site.xml文件,如果在mapred-site.xml配置了使用yarn框架,那么yarn框架就使用此文件中的配置。
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
</configuration>
- 最后将这七个文件复制到node2,node3的同目录下,使用SSH的scp命令,在node1上输入以下命令:
scp -r /home/hduser/hadoop/etc/hadoop/ hduser@node2:/home/hduser/hadoop/hadoop/etc/
scp -r /home/hduser/hadoop/etc/hadoop/ hduser@node3:/home/hduser/hadoop/hadoop/etc/
- 验证
- 下面验证Hadoop配置是否正确
- 在Master主机(node1)上格式化NameNode,输入命令:
cd ~/hadoop
bin/hdfs namenode -format
- 关闭node1,node2,node3系统的防火墙并重启虚拟机,输入命令:
service iptables stop
sudo chkconfig iptables off
reboot
- 输入命令启动HDFS,(start-all.sh命令同时启动hdfs和yarn)
cd ~/hadoop
sbin/start-all.sh
- 查看集群状态,输入命令:
bin/hdfs/ dfsadmin -report
如果出现如下内容则配置正确。
- 在浏览器中查看HDFS运行状态:网址:http://node1:50070
- 停止Hadoop,输入以下命令:
cd ~/hadoop
sbin/start-stop.sh
注意每次运行命令都必须在Hadoop目录下。