Hadoop270环境搭建详细笔记Word文档下载推荐.docx
《Hadoop270环境搭建详细笔记Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Hadoop270环境搭建详细笔记Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。
![Hadoop270环境搭建详细笔记Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/715f509d-6a2c-44d9-aca5-f4e4a83dbb3c/715f509d-6a2c-44d9-aca5-f4e4a83dbb3c1.gif)
光标移动到空行,按“O”键,输入
nameserver192.168.30.2
退出按ESC键,输入:
回车保存配置文件。
重启网络服务
#servicenetworkrestart
重启之后#ifconfig
查看配置的ip地址,物理机ping这个地址测试是否能通。
B、使用桥接模式
虚拟机网络连接使用桥接模式
虚拟机设置里面——网络适配器,网络连接选择桥接模式
设置虚拟机的ip,设置虚拟机的ip,虚拟机ip必须和本机在同一网段
本次采用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:
6.Bringingupinterfaceeth0:
Connectionactivationfailed:
DevicenotmanagedbyNetworkManagerorunavailable
7.
8.[root@localhostDesktop]#chkconfigNetworkManageroff
9.[root@localhostDesktop]#chkconfignetworkon
10.[root@localhostDesktop]#serviceNetworkManagerstop
11.StoppingNetworkManagerdaemon:
12.[root@localhostDesktop]#servicenetworkstart
13.Bringinguploopbackinterface:
14.Bringingupinterfaceeth0:
15.RTNETLINKanswers:
Fileexists
16.RTNETLINKanswers:
17.RTNETLINKanswers:
18.RTNETLINKanswers:
19.RTNETLINKanswers:
20.RTNETLINKanswers:
21.RTNETLINKanswers:
22.RTNETLINKanswers:
23.RTNETLINKanswers:
24.[root@localhostDesktop]#servicenetworkrestart
25.Shuttingdowninterfaceeth0:
26.Shuttingdownloopbackinterface:
27.Bringinguploopbackinterface:
28.Bringingupinterfaceeth0:
29.[root@localhostDesktop]#ifconfig
三、修改主机名和host
修改虚拟机名称,分别修改为对应的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/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成相应的用户)
************.30.12
************.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
<
configuration>
property>
name>
fs.defaultFS<
/name>
value>
hdfs:
//master:
9000<
/value>
/property>
dfs.namenode.name.dir<
//NameNode持久存储名字空间及事务日志的本地文件系统路径。
file:
/opt/data/hadoop/name<
dfs.datanode.data.dir<
//NameNode持久存储名字空间及事务日志的本地文件系统路径。
/opt/data/hadoop/data<
hadoop.tmp.dir<
//Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。
不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
/opt/data/hadoop/tmp<
description>
Abaseforothertemporarydirectories<
/description>
<
dfs.replication<
//数据需要备份的数量,默认是三,可选
1<
/configuration>
3、修改etc/hadoop/hdfs-site.xml
[hadoop@masterhadoop]$vimhdfs-site.xml
2<
dfs.namenode.secondary.http-address<
master:
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
mapreduce.framework.name<
yarn<
mapreduce.jobhistory.address<
10020<
mapreduce.jobhistory.webapp.address<
19888<
5、配置yarn-site.xml:
[hadoop@masterhadoop]$vimyarn-site.xml
yarn.nodemanager.aux-services<
mapreduce_shuffle<
yarn.nodemanager.aux-services.mapreduce.shuffle.class<
org.apache.hadoop.mapred.ShuffleHandler<
yarn.resourcemanager.address<
8032<
yarn.resourcemanager.scheduler.address<
8030<
yarn.resourcemanager.resource-tracker.address<
8031<
yarn.resourcemanager.admin.address<
8033<
yarn.resourcemanager.webapp.address<
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:
9、修改/etc/profile
以root用户,追加以下信息,每个节点都要执行,这样不必每次都要进入/opt/hadoop-2.7.0/bin下才能执行hadoop命令
exportHADOOP_HOME=/opt/hadoop-2.7.0
$HADOOP_HOME/bin
8、格式化
浏览到cd/opt/hadoop-2.7.0/目录下
hdfsnamenode-format
9、启动hadoop
$HADOOP_HOME/sbin/start-all.sh
10、启动验证
1)httphdfs
http:
50070
2)httpyarn
//master:
8088
3)wordcount
hadoopjar/opt/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jarwordcount/input/output
报错:
Inputpathdoesnotexist:
hdfs:
9000/input
解决:
创建文件:
bin/hadoopfs-mkdirhdfs:
复制文件:
bin/hadoopfs-put/opt/hadoop-2.7.0/README.txthdfs:
错误诊断
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