Hadoop270环境搭建详细笔记.docx
- 文档编号:20104508
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:22
- 大小:506.74KB
Hadoop270环境搭建详细笔记.docx
《Hadoop270环境搭建详细笔记.docx》由会员分享,可在线阅读,更多相关《Hadoop270环境搭建详细笔记.docx(22页珍藏版)》请在冰豆网上搜索。
Hadoop270环境搭建详细笔记
Hadoop安装说明
所需软件:
VMwareWorkstation10.0用于创建虚拟机
CentOS-6.4-x86_64-bin-DVD1.iso操作系统
jdk-8u45-linux-x64.tarjava运行库
hadoop-2.7.0.tar.gzHadoop安装包
xshell_4.0.0131.1397032097Xshell工具
一、安装操作系统
用VMwareWorkstation10.0创建三个虚拟机,分别为master、slaves1、slaves2,操作系统为CentOS-6.4
二、配置IP地址
以root用户执行,所有节点都需要执行。
配置IP地址一共有两种方式:
A、使用NAT模式
虚拟机网络连接使用NAT模式,物理机网络连接使用Vmnet8。
虚拟机设置里面——网络适配器,网络连接选择NAT模式。
()
虚拟机菜单栏—编辑—虚拟网络编辑器,选择Vmnet8NAT模式,
1.在最下面子网设置ip为192.168.30.0 子网掩码255.255.255.0
2.NAT设置里面网关IP为192.168.30.1
3.使用本地DHCP服务将IP地址分配给虚拟机不勾选
设置完成后点击应用退出。
设置虚拟机的ip,虚拟机ip必须和Vmnet8在同一网段
#vi/etc/sysconfig/network-scripts/ifcfg-eth0
输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“O”,进入编辑模式,输入
完成后,按一下键盘左上角ESC键,输入:
wq 在屏幕的左下方可以看到,输入回车保存配置文件。
设置DNS地址,运行命令#vi/etc/resolv.conf
光标移动到空行,按“O”键,输入 nameserver192.168.30.2 退出按ESC键,输入:
wq 回车保存配置文件。
重启网络服务 #servicenetworkrestart
重启之后#ifconfig 查看配置的ip地址,物理机ping这个地址测试是否能通。
B、使用桥接模式
虚拟机网络连接使用桥接模式
虚拟机设置里面——网络适配器,网络连接选择桥接模式
设置虚拟机的ip,设置虚拟机的ip,虚拟机ip必须和本机在同一网段
#vi/etc/sysconfig/network-scripts/ifcfg-eth0
输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“O”,进入编辑模式,输入
重启网络服务 #servicenetworkrestart
重启之后#ifconfig 查看配置的ip地址,物理机ping这个地址测试是否能通。
本次采用B进行配置,ip地址分别为
master192.168.1.11
slaves1192.168.1.12
slaves2192.168.1.13
附:
网卡notactive解决
1.[root@localhostDesktop]#servicenetworkrestart
2.Shuttingdowninterfaceeth0:
Error:
Device\'eth0\'(/org/freedesktop/NetworkManager/Devices/0)disconnectingfailed:
Thisdeviceisnotactive
3. [FAILED]
4.Shuttingdownloopbackinterface:
[OK]
5.Bringinguploopbackinterface:
[OK]
6.Bringingupinterfaceeth0:
Error:
Connectionactivationfailed:
DevicenotmanagedbyNetworkManagerorunavailable
7. [FAILED]
8.[root@localhostDesktop]#chkconfigNetworkManageroff
9.[root@localhostDesktop]#chkconfignetworkon
10.[root@localhostDesktop]#serviceNetworkManagerstop
11.StoppingNetworkManagerdaemon:
[OK]
12.[root@localhostDesktop]#servicenetworkstart
13.Bringinguploopbackinterface:
[OK]
14.Bringingupinterfaceeth0:
[OK]
15.RTNETLINKanswers:
Fileexists
16.RTNETLINKanswers:
Fileexists
17.RTNETLINKanswers:
Fileexists
18.RTNETLINKanswers:
Fileexists
19.RTNETLINKanswers:
Fileexists
20.RTNETLINKanswers:
Fileexists
21.RTNETLINKanswers:
Fileexists
22.RTNETLINKanswers:
Fileexists
23.RTNETLINKanswers:
Fileexists
24.[root@localhostDesktop]#servicenetworkrestart
25.Shuttingdowninterfaceeth0:
[OK]
26.Shuttingdownloopbackinterface:
[OK]
27.Bringinguploopbackinterface:
[OK]
28.Bringingupinterfaceeth0:
[OK]
29.[root@localhostDesktop]#ifconfig
三、修改主机名和host
以root用户执行,所有节点都需要执行。
修改虚拟机名称,分别修改为对应的master、slaves1和slaves2
#vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
按O或者insert进行编辑,esc退出,执行wq保存并退出,slaves节点修改对应的hostname
修改host文件,为了保证节点之间能够使用主机名进行互相访问,需要修改host文件。
以root用户执行,所有节点都需要执行
#vi/etc/hosts
192.168.1.11master
192.168.1.12slaves1
192.168.1.13slaves2
四、配置ssh无密码连接
关闭防火墙,以root用户执行,所有节点都需要执行。
serviceiptablesstop
永久关闭
chkconfigiptablesoff
生成SSH公钥,对应完全分布模式,有多个节点,但只需主节点无密码连接从节点,因此在主节点执行,以hadoop用户执行
这里可能用户suhadoop来切换hadoop用户su切换回root用户
ssh-keygen-trsa
遇到提示回车即可,将公钥发至从节点的authorized_keys的列表,执行:
#ssh-copy-id-i ~/.ssh/id_rsa.pub hadoop@slaves1
#ssh-copy-id-i ~/.ssh/id_rsa.pubhadoop@slaves2
如果发现不成功,有可能是/home/hadoop/.ssh文件夹的权限问题,以hadoop用户执行
chmod700/home/hadoop/.ssh
chmod664/home/hadoop/.ssh/authorized_keys
使用同一的方法也可以实现slaves1和slaves2三个节点两两互通
附:
多台linux之间ssh无密码登陆
1、在每台服务器上都执行ssh-keygen-trsa生成密钥对:
#ssh-keygen-trsa
2、在每台服务器上生成密钥对后,将公钥复制到需要无密码登陆的服务器上:
举例如192.168.30.11,192.168.30.12,192.168.30.13这三台服务器需要做相互免密码登陆,在每台服务器生成密钥对后,在每台服务器上执行ssh-copy-id命令(具体说明及用法见最后附录),将公钥复制到其它两台服务器上(此处以192.168.30.11为例,用户为root,其它两台步骤相同,不同的用户修改root成相应的用户)
#ssh-copy-id-i ~/.ssh/id_rsa.pub ************.30.12
#ssh-copy-id-i ~/.ssh/id_rsa.pub ************.30.13
以上命令,可以自动将公钥添加到名为authorized_keys的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆了
五、安装jdk,所有节点都需要执行
使用本机和虚拟机共享文件
安装VMwareTool在虚拟机—设置-选项
将jdk安装包复制到/opt目录,以root用户进行安装:
tar–xzvfjdk-8u45-linux-x64.tar.gz
配置环境变量:
vi/etc/profile
在文件中输入以下配置信息
exportJAVA_HOME=/opt/jdk1.8.0_45
exportPATH=$PATH:
$JAVA_HOME/bin
修改完成以后,运行以下命令使环境变量生效:
source/etc/profile
验证安装,执行:
java-version
六、安装hadoop
以master节点为例,将hadoop安装再/opt文件夹下,从root用户获取/opt文件夹的权限(root用户执行,所有节点都需要执行,注意区分大小写)。
chown-RHadoop/opt##改变文件拥有者
以hadoop用户将安装包移动到/opt文件下推荐安装hadoop在/opt目录下,浏览到/opt目录下执行安装命令:
tar-zxvfhadoop-2.7.0.tar.gz
1、配置hadoop-env.sh,使用命令打开
[hadoop@masterhadoop-2.7.0]$vim~/.bash_profile
在文件中加入:
exportJAVA_HOME=/opt/jdk1.8.0_45
exportHADOOP_HOME=/opt/hadoop-2.7.0
2、配置core-site.xml
[hadoop@masterhadoop]$cd/opt/hadoop-2.7.0/etc/hadoop/
[hadoop@masterhadoop]$vimcore-site.xml
//master:
9000
/opt/data/hadoop/name
/opt/data/hadoop/data
不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
3、修改etc/hadoop/hdfs-site.xml
[hadoop@masterhadoop]$vimhdfs-site.xml
9001
4、配置mapred-site.xml
默认情况下,/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。
[hadoop@masterhadoop]$cpmapred-site.xml.templatemapred-site.xml
[hadoop@masterhadoop]$vimmapred-site.xml
10020
19888
5、配置yarn-site.xml:
[hadoop@masterhadoop]$vimyarn-site.xml
8032
8030
8031
8033
8088
6、slaves文件配置
7、配置java环境变量
hadoop-env.sh、mapred-env.sh、yarn-env.sh这几个文件中的JAVA_HOME改为/opt/jdk1.8.0_45
8、把name节点的hadoop考到数据节点上面
scp-r/opt/hadoop-2.7.0hadoop@slaves1:
/opt
scp-r/opt/hadoop-2.7.0hadoop@slaves2:
/opt
9、修改/etc/profile
以root用户,追加以下信息,每个节点都要执行,这样不必每次都要进入/opt/hadoop-2.7.0/bin下才能执行hadoop命令
vi/etc/profile
exportHADOOP_HOME=/opt/hadoop-2.7.0
exportPATH=$PATH:
$HADOOP_HOME/bin
修改完成以后,运行以下命令使环境变量生效:
source/etc/profile
8、格式化
浏览到cd/opt/hadoop-2.7.0/目录下
hdfsnamenode-format
9、启动hadoop
$HADOOP_HOME/sbin/start-all.sh
10、启动验证
1)httphdfs
http:
//master:
50070
2)httpyarn
http:
//master:
8088
3)wordcount
hadoopjar/opt/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jarwordcount/input/output
报错:
Inputpathdoesnotexist:
hdfs:
//master:
9000/input
解决:
创建文件:
bin/hadoopfs-mkdirhdfs:
//master:
9000/input
复制文件:
bin/hadoopfs-put/opt/hadoop-2.7.0/README.txthdfs:
//master:
9000/input
错误诊断
1、datanode启动不成功
log:
2016-01-0718:
15:
03,624WARNmon.Storage:
java.io.IOException:
IncompatibleclusterIDsin/opt/data/hadoop/tmp/dfs/data:
namenodeclusterID=CID-7dab6987-7bcb-4347-b494-8170d0115ffc;datanodeclusterID=CID-b3aea089-ae2e-4b52-addd-5cbe185a5cef
问题原因:
master和slave节点data目录下VERSION中clusterID不一致。
在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfsnamenode-format),这时namenode的clusterID会重新生成,而datanode的clusterID保持不变。
解决方法:
浏览到master服务器的/opt/data/hadoop/tmp/dfs/name/current文件
vimVERSION查看clusterID
浏览到slave服务器的/opt/data/hadoop/tmp/dfs/data/current文件
vimVERSION查看clusterID
修改slave的clusterID为master的clusterID
2、Hadoop本地库与系统版本不一致
log:
/opt/hadoop-2.7.0/lib/native/libhadoop.so.1.0.0:
/lib64/libc.so.6:
version`GLIBC_2.14'notfound(requiredby/opt/hadoop-2.7.0/lib/native/libhadoop.so.1.0.0)
问题原因:
原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:
解决方法:
查看系统的libc版本
#ll/lib64/libc.so.6
2.查看系统glibc支持的版本:
$ strings /lib64/libc.so.6 |grep GLIBC_
系统最高支持GLIBC_2.12,需要支持GLIBC_2.14
a.到http:
//www.gnu.org/software/libc/下载最新版本,我这里下载了glibc-2.14.tar.xz 这个版本,解压到任意目录准备编译地址:
链接地址是http:
//ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。
b.在var文件下创建VMdisks目录,将安装包复制到该目录下
c.这里解压到/var/VMdisks/glibc-2.14/
tarxvfglibc-2.14.tar.gz
d.在glibc源码目录建立构建目录,并cd进入构建目录
e.运行configure配置,make&&sudo makeinstall
[root@masterbuild]$../configure--prefix=/opt/glibc-2.14
configure:
error:
*** LD_LIBRARY_PATH shouldn't contain the
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop270 环境 搭建 详细 笔记