前言

所有本文中没有提到的操作全部按照默认处理即可

一、安装VMware Workstation10.0

选Typical典型安装

修改为固定、静态IP:
三台机器的IP地址分别为:
192.168.100.10
192.168.100.12
192.168.100.13
子网掩码:255.255.255.0

在VMware Workstation中-编辑-虚拟网络编辑器
在这里插入图片描述
点NAT设置
在这里插入图片描述
点DNS设置在这里插入图片描述

二、安装虚拟机:(没有写的全按默认处理)

1.创建新的虚拟机

-典型-稍后安装操作系统在这里插入图片描述
在这里插入图片描述
点击CD/DVD
选择CentOS-6.5-x86_64-bin-DVD1.iso
在这里插入图片描述
点开启虚拟机
进入虚拟机后选第1项,回车在这里插入图片描述
选Skip,回车在这里插入图片描述
时区选上海
虚拟机的Root Password:111111在这里插入图片描述
密码:111111在这里插入图片描述

2.配置虚拟机IP地址

右键右上角网络连接图表-Edit Conections-选中System eh0-Edit
在这里插入图片描述
-Apply

3.永久修改主机名Hostname

 vi /etc/sysconfig/network

i改为insert状态
在这里插入图片描述
按esc,再:wq保存退出

reboot

重启

4.配置集群Hosts

vi /etc/hosts

连按两下d,把原来的删除
i改为insert状态
写入

192.168.100.10 bigdata-senior01.chybinmy.com

按esc,再:wq保存退出

5.永久关闭防火墙

chkconfig iptables off
reboot

重启

6.关闭selinux

vi /etc/sysconfig/selinux

在这里插入图片描述
改为disabled

reboot

重启

7.安装VMware Tools

虚拟机-安装VMware Tools

cd /media/VMware\ Tools/

(文件夹名字的空格需要写成\ )

ls
tar -xf VMwareTools-9.6.2-1688356.tar.gz -C /
cd vmware-tools-distrib
ls
./vmware-install.pl

一路回车

reboot

8.安装JDK

将压缩包拖拽到根目录下的tmp文件夹中

mkdir /opt/modules/

解压到新建的文件夹中

tar -xf /tmp/jdk-8u161-linux-x64.tar.gz -C /opt/modules/

配置环境变量

vi /etc/profile

添加以下环境变量配置:

JAVA_HOME=/opt/modules/jdk1.8.0_161
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

在这里插入图片描述
执行一下修改的文件

source /etc/profile

输入

java

显示信息
输入

java -version

显示版本信息

三、虚拟机克隆

1.克隆虚拟机

先将要克隆的虚拟机关机
右键-管理-克隆-虚拟机中的当前状态-创建完整克隆-重命名并改路径(改名为Hadoop2)
右键-管理-克隆-虚拟机中的当前状态-创建完整克隆-重命名并改路径(改名为Hadoop3)

2.修改克隆出来虚拟机的网络IP

配置2号虚拟机:
右键右上角网络连接图表-Edit Conections-选中Auto eth1-Edit在这里插入图片描述
-Apply

配置3号虚拟机:
右键右上角网络连接图表-Edit Conections-选中Auto eth1-Edit在这里插入图片描述
-Apply

在1号虚拟机中测试是否配置成功:
ping一下其他虚拟机在这里插入图片描述
三台虚拟机网络之间可以成功通讯

更改后两台虚拟机的主机名:
在2号中:

vi /etc/sysconfig/network

按i改为insert状态,改为2
按esc,再输入:wq,回车

reboot

重启

在3号中:

vim /etc/sysconfig/network

按i改为insert状态,改为3
按esc,再输入:wq,回车

reboot

重启

配置hosts:
在1号机中:

vi /etc/hosts

连续敲两下yy进行复制整行,再按两次p进行粘贴两行
然后进行修改主机名和ip地址
按i改为insert状态,进行修改

192.168.100.10 bigdata-senior01.chybinmy.com
192.168.100.12 bigdata-senior02.chybinmy.com
192.168.100.13 bigdata-senior03.chybinmy.com

按esc,再输入:wq,回车

3.进行ssh远程登录,并配置hosts集群

(远程登录到其他机器时,其他机器需要是解锁状态)
登录到2号机

ssh 192.168.100.12

回车(若出现提示,输入yes,再回车)
再输入密码

vi /etc/hosts

连续敲两下yy进行复制整行,再按两次p进行粘贴两行
然后进行修改主机名和ip地址
按i改为insert状态,进行修改

192.168.100.10 bigdata-senior01.chybinmy.com
192.168.100.12 bigdata-senior02.chybinmy.com
192.168.100.13 bigdata-senior03.chybinmy.com

按esc,再输入:wq,回车

再从2号机登录到3号机

ssh 192.168.100.13

回车(若出现提示,输入yes,再回车)
再输入密码

vi /etc/hosts

连续敲两下yy进行复制整行,再按两次p进行粘贴两行
然后进行修改主机名和ip地址
按i改为insert状态,进行修改

192.168.100.10 bigdata-senior01.chybinmy.com
192.168.100.12 bigdata-senior02.chybinmy.com
192.168.100.13 bigdata-senior03.chybinmy.com

按esc,再输入:wq,回车

输入exit可回到2号机
再输入exit可回到1号机

或者可以使用scp命令进行远程文件的传输

scp /etc/hosts root@192.168.100.12:/etc
scp /etc/hosts root@192.168.100.13:/etc

如果原来已有这个文件,会进行覆盖

注:如果将来出现2号或3号节点的DataNode服务启动失败的情况,可以首先查看2号或3号节点的log日志文件,即:

vi /opt/modules/app/hadoop-2.8.5/logs/hadoop-root-datanode-bigdata-senior02.chybinmy.com.log

vi /opt/modules/app/hadoop-2.8.5/logs/hadoop-root-datanode-bigdata-senior03.chybinmy.com.log

如果看到java.net.BindException: Port in use: localhost:0这条报错信息,则说明该节点的0号端口被占用,解决方案就是再把这两句话:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

添加回2号或3号节点的/etc/hosts配置文件开头即可。

四、进行虚拟机的批量开关机

在1号机中
切换到根目录下:

cd /

新建一个文件shell脚本文件

touch /poweroff.sh
vi /poweroff.sh

按i键改为insert状态,输入:

#!/bin/bash
for i in 13 12 10
do
        ssh root@192.168.100.$i "shutdown -h now"
done

按esc键,再输入:wq

ll

显示当前所在位置的文件和文件夹的详细信息
更改文件权限:

chmod 744 poweroff.sh

ll

查看权限的变化
执行脚本进行关机

./poweroff.sh

再分别输入3台机的密码进行关机
执行命令的时候需要切换到根目录下:

cd /

五、安装配置Hadoop

1.在1号机中新建一个文件夹

mkdir /opt/modules/app

2.把Hadoop文件以拖拽的方式拷贝到tmp路径下

3.解压到新建的文件夹中

tar -xf /tmp/hadoop-2.8.5.tar.gz -C /opt/modules/app/
cd  /opt/modules/app/
ls

可看到解压成功

4.配置环境变量

vi /etc/profile

在末尾进行修改:

JAVA_HOME=/opt/modules/jdk1.8.0_161
HADOOP_HOME="/opt/modules/app/hadoop-2.8.5/"
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME HADOOP_HOME CLASSPATH PATH

使新配置的环境变量生效

source /etc/profile

输入start再连续按两下tab,如果能显示start-yarn.sh(为Hadoop中集群启动的命令)等,说明环境变量配置正确

5.配置Hadoop 环境下的JDK路径:修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/hadoop-env.sh

找到JAVA_HOME进行修改

export JAVA_HOME="/opt/modules/jdk1.8.0_161"
vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/mapred-env.sh

找到JAVA_HOME进行修改

export JAVA_HOME="/opt/modules/jdk1.8.0_161"

(修改时若最左边有#要删掉)

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/yarn-env.sh

找到JAVA_HOME进行修改

export JAVA_HOME="/opt/modules/jdk1.8.0_161"

6.配置core-site.xml

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/core-site.xml

<configuration>标签中添加

 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://bigdata-senior01.chybinmy.com:8020</value>
 </property>
 <property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/modules/app/hadoop-2.8.5/data/tmp</value>
 </property>

需要创建hadoop.tmp.dir属性所代表的目录:

mkdir -p /opt/modules/app/hadoop-2.8.5/data/tmp

7.配置hdfs-site.xml

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/hdfs-site.xml

<configuration>标签中添加

 <property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>bigdata-senior03.chybinmy.com:50090</value>
 </property>

8.配置slaves

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/slaves

删掉原来的内容,写入:

bigdata-senior02.chybinmy.com
bigdata-senior03.chybinmy.com

slaves文件是指定HDFS上有哪些DataNode节点。设置2号和3号虚拟机作为数据节点。

9.配置yarn-site.xml

vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/yarn-site.xml

<configuration>标签中添加

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>bigdata-senior01.chybinmy.com</value>
</property>
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
</property>

10.配置mapred-site.xml

从mapred-site.xml.template复制一个mapred-site.xml文件:

cp /opt/modules/app/hadoop-2.8.5/etc/hadoop/mapred-site.xml.template /opt/modules/app/hadoop-2.8.5/etc/hadoop/mapred-site.xml
vi /opt/modules/app/hadoop-2.8.5/etc/hadoop/mapred-site.xml

<configuration>标签中添加

<property>
	<name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>bigdata-senior01.chybinmy.com:10020</value>
</property>
<property>
	<name>mapreduce.jobhistory.webapp.address</name>
    <value>bigdata-senior01.chybinmy.com:19888</value>
</property>

六、设置SSH无密码登录

在1号机中:
1.生成密钥对

ssh-keygen -t rsa

回车,回车,回车

ll /root/.ssh/

显示内容,出现公钥和私钥

2.发送公钥

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.10

输入密码

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.12

输入密码

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.13

输入密码

3.在2号机上做同样的操作:

登录到2号机

ssh 192.168.100.12

此时不用输入密码

生成密钥对

ssh-keygen -t rsa

回车,回车,回车

把公钥钥对发给1号和3号机以及自己

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.10
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.12
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.13

(若出现连接提示,输入yes再回车)

4.在3号机上做同样的操作:
登录到3号机

ssh 192.168.100.13

此时不用输入密码

生成密钥对

ssh-keygen -t rsa

回车,回车,回车

发送公钥

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.10
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.12
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.13

(若需要输入密码时输入密码)
exitexit退回到1号机
便实现了各台机器之间的免密登录,再进行批量关机的时候便不需要再输入密码

七、分发Hadoop文件

在1号机中:
1.在其他2两台机器上创建存放Hadoop的目录

ssh 192.168.100.12
mkdir /opt/modules/app
ssh 192.168.100.13
mkdir /opt/modules/app

exitexit退回到1号机
2.通过Scp分发

Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录删除掉,可以节省硬盘空间并能提高分发的速度。

rm -rf /opt/modules/app/hadoop-2.8.5/share/doc/

分发到2号机和3号机

scp -r /opt/modules/app/hadoop-2.8.5/ 192.168.100.12:/opt/modules/app/
scp -r /opt/modules/app/hadoop-2.8.5/ 192.168.100.13:/opt/modules/app/

3.采用scp分发的简便方式来配置2号和3号机的Hadoop环境变量:

scp -r /etc/profile 192.168.100.12:/etc
scp -r /etc/profile 192.168.100.13:/etc

使环境变量生效

ssh 192.168.100.12
source /etc/profile
ssh 192.168.100.13
source /etc/profile

exitexit退回到1号机

八、格式化NameNode

在1号机中
在NameNode所部属的机器bigdata-senior01上执行格式化:

hdfs namenode -format

(注:当在2号和3号虚拟机用jps命令显示有DataNode进程名,但打开web监控页面却没有显示DataNode节点信息时,说明HDFS集群没有启动成功。此时可以尝试采用重新格式化的方式来解决)

重新格式化集群的具体操作步骤如下:
1.先停止HDFS集群:

stop-dfs.sh

2.然后将3台虚拟机上的dfs文件夹里的全部内容删除:(分别登录到3台机器)

rm -rf /opt/modules/app/hadoop-2.8.5/data/tmp/dfs/
ssh 192.168.100.12
rm -rf /opt/modules/app/hadoop-2.8.5/data/tmp/dfs/
ssh 192.168.100.13
rm -rf /opt/modules/app/hadoop-2.8.5/data/tmp/dfs/

3.exitexit返回1号虚拟机,再重新执行格式化命令即可:

hdfs namenode -format

4.重启HDFS集群,确认是否成功。

九、启动集群

1.启动HDFS

start-dfs.sh

2.用jps命令来验证各个节点的HDFS服务是否启动成功

jps

登录到2号机查看

ssh 192.168.100.12
jps

登录到3号机查看

ssh 192.168.100.13
jps

显示如下即启动成功:
在这里插入图片描述

exitexit退回到1号机
(若没有按此显示,则查看上面的3.进行ssh远程登录,并配置hosts集群)

3.查看HDFS Web监控页面

在1号机的火狐浏览器中输入:
http://bigdata-senior01.chybinmy.com:50070/
在这里插入图片描述红框中即为分布式集群中的两个DataNode存储节点信息

4.启动yarn

启动yarn便启动了MapReduce(要保证HDFS在启动状态)

start-yarn.sh

用jps命令来验证各个节点的HDFS服务是否启动成功

jps

登录到2号机查看

ssh 192.168.100.12
jps

登录到3号机查看

ssh 192.168.100.13
jps

显示如下即启动成功:在这里插入图片描述
exitexit退回到1号机

5.启动日志服务器

启动历史(日志)服务

mr-jobhistory-daemon.sh start historyserver

jps查看
在这里插入图片描述
查看YARN Web 页面
在1号机的火狐浏览器中输入:
http://bigdata-senior01.chybinmy.com:8088/cluster
在这里插入图片描述

十、测试Job

用hadoop自带的wordcount例子来在本地模式下测试跑mapreduce

1.准备mapreduce输入文件wc.input

mkdir /opt/data
vi /opt/data/wc.input

写入

hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop

2. 在HDFS创建输入目录input

hdfs dfs -mkdir /input

3. 将wc.input上传到HDFS

hdfs dfs -put /opt/data/wc.input /input/wc.input

4. 运行hadoop自带的mapreduce Demo

yarn jar /opt/modules/app/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /input/wc.input /output

5. 查看输出的结果文件

hdfs dfs -ls /output
hdfs dfs -cat /output/part-r-00000

显示wordcount词频
在这里插入图片描述
在1号机的火狐浏览器中输入:
http://bigdata-senior01.chybinmy.com:8088/cluster
点FINISHED可看到结果
在这里插入图片描述

十一、关闭服务

关机时一定要关闭!!!
1.关闭历史服务

mr-jobhistory-daemon.sh stop historyserver

2.关闭yarn(MapReduce)

stop-yarn.sh

3.关闭HDFS

stop-dfs.sh

4.执行脚本进行关机

cd /
./poweroff.sh

可将虚拟机进行复制备份
注意:将来如果要拷贝3台虚拟机到其他机器,开机时会弹出如下提示,这时请一定选择“我已移动该虚拟机”,因为选择“复制”的话,VMware平台会为每台虚拟机自动生成一块新的网卡并设置为启动状态,这会导致网络不通,还需重新设置新网卡。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐