搭建Hadoop环境(超详细)
搭建Hadoop环境(超详细)前言一、安装VMware Workstation10.0二、安装虚拟机:(没有写的全按默认处理)1.2.配置IP地址虚拟机:3.永久修改主机名Hostname:4.配置集群Hosts:5.永久关闭防火墙:6.关闭selinux:7.安装VMware Tools8.安装JDK:三、虚拟机克隆1.2.修改克隆出来虚拟机的网络IP:3.进行ssh远程登录:前言所有本文中没有
搭建Hadoop环境(超详细)
前言
所有本文中没有提到的操作全部按照默认处理即可
一、安装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
(若需要输入密码时输入密码)
exit
,exit
退回到1号机
便实现了各台机器之间的免密登录,再进行批量关机的时候便不需要再输入密码
七、分发Hadoop文件
在1号机中:
1.在其他2两台机器上创建存放Hadoop的目录
ssh 192.168.100.12
mkdir /opt/modules/app
ssh 192.168.100.13
mkdir /opt/modules/app
exit
,exit
退回到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
exit
,exit
退回到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.exit
,exit
返回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
显示如下即启动成功:
再exit
,exit
退回到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
显示如下即启动成功:
再exit
,exit
退回到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平台会为每台虚拟机自动生成一块新的网卡并设置为启动状态,这会导致网络不通,还需重新设置新网卡。
更多推荐
所有评论(0)