本文是主要参考了几篇博客之后才搭建成功的,目的只是记录搭建过程,主要引用文章请参考博客。这里对原文中略作改动以适应当前环境需求。
ps:简书什么时候能够改进一下自己的MarkDown文本编辑能力,排版能力弱爆了!!!
1.虚拟机安装Ubuntu-16.04.3
虚拟机:VMware Workstation 12
内存:2G
网络:桥接模式
系统:Ubuntu-16.04.3
节点(局域网):
192.168.1.104 master hadoop/namenode/resourcemanager
192.168.1.105 slave_01 hadoop/datanode/secondnamenode
192.168.1.106 slave_02 hadoop/datanode
2.主、从虚拟机设置及验证
sudo -su 切换到root权限。
gedit /etc/hostname 编辑对应节点虚拟机名称
gedit /etc/hosts 添加如下内容
192.168.1.104 master
192.168.1.105 slave_01
192.168.1.106 slave_02
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 禁止防火墙开机启动
ping <hostname> 测试各节点虚拟机之间是否联通
(ctrl+c退出PING命令)
*3.安装vim编辑器
感觉系统自带的vi并不好用,可以利用apt-get install vim来安装vim编辑器,以下内容编辑默认使用vim。
4.JDK安装及环境设置
新版本的Ubuntu系统库中没有1.7及之前版本jdk。在布置阶段我才用了1.8版本jdk,并没有发生错误。不知道后续MapReduce应用开发过程中是否顺利之情,待解决。
apt-get install openjdk-1.8-jdk-headless 安装jdk环境
vim /etc/profile 添加以下环境变量
export $JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export $JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
:wq 保存退出编辑
source /etc/profile 使新的环境变量生效
5.安装并配置SSH
该版本系统中默认没有安装SSH Shell,所以需要手动安装一下
apt-get install openssh-server 安装ssh shell
ps -e|grep ssh 查看是否开启服务
ssh localhost 验证
ssh-keygen -t rsa 各节点虚拟机执行该命令生成密钥对
cd /root/.ssh目录
cat id_dsa.pub>>authorized_keys 导出认证文件
scp authorized_keys root@<hostname>:~/.ssh/ 拷贝认证文件到节点虚拟机
chmod 600 .ssh/authorized_keys 修改认证权限模式
ssh slave_01验证是否免密成功
6.安装并配置Hadoop分布式集群
1)在master主机上进入/opt目录,创建soft目录并进入。利用命令下载hadoop-2.7.5的压缩文件
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz 解压
2)创建如下目录
mkdir /dfs
mkdir /dfs/name
mkdir /dfs/data
mkdir /tmp
3)配置文件:hadoop-env.sh(/opt/soft/hadoop-2.7.5/etc/hadoop)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
4)配置文件:yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
5)配置文件:slaves
slave_01
sleve_02
6)配置文件:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
8)配置文件:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
9)配置文件:mapred-site.xml
先拷贝模板文件
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
10)配置文件:yarn-site.xml
<configuration>
<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>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
11)将上述文件拷贝到另外两个虚拟机的相同目录当中替换原有文件
12)编辑环境变量
添加
export HADOOP_HOME=/opt/soft/hadoop-2.7.5
修改PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
生效上述环境变量
13)
hdfs namenode -format 格式化namenode
start-all.sh 启动hadoop
jps 查看是否启动成功
7.提交并执行验证任务
在master虚拟机上创建数据文件存储目录
hdfs dfs -mkdir -p /user/<username>/input 这里注意
/user/<username>
文件系统格式,否则运行错误。
hdfs dfs -put EXAMPLEFILE /user/root/input
提交数据文件。
提交任务
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /user/root/input /user/root/output/result
查看结果
hdfs dfs -cat /data/output/result/part-r-00000