Linux下Hadoop集群安装指南.docx

上传人:b****3 文档编号:3680956 上传时间:2022-11-24 格式:DOCX 页数:14 大小:651.94KB
下载 相关 举报
Linux下Hadoop集群安装指南.docx_第1页
第1页 / 共14页
Linux下Hadoop集群安装指南.docx_第2页
第2页 / 共14页
Linux下Hadoop集群安装指南.docx_第3页
第3页 / 共14页
Linux下Hadoop集群安装指南.docx_第4页
第4页 / 共14页
Linux下Hadoop集群安装指南.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Linux下Hadoop集群安装指南.docx

《Linux下Hadoop集群安装指南.docx》由会员分享,可在线阅读,更多相关《Linux下Hadoop集群安装指南.docx(14页珍藏版)》请在冰豆网上搜索。

Linux下Hadoop集群安装指南.docx

Linux下Hadoop集群安装指南

Linux下Hadoop集群安装指南

第一步:

安装VMware(8.1.4)

如果机器是64位操作系统,安装VMware-workstation-full-8.0.0-471780,序列号:

5F0Z1-24057-DZX88-4L97K-1AV2N

如果是32位操作系统,就用VMware-workstation-full-9

第二步:

安装UbuntuLinux(8.1.3)

1)在VMware上新创建一个虚拟机,选择镜像ubuntu-10.04.4-desktop-i386,选择保存为单个文件。

2)Fullname就是机器名字,如Ubuntu-hadoop,username就是用户名,例如mimo,密码就是每次登陆linux的密码,虚拟机名可以写成写ubuntu-hadoop,

位置选择一个空间大的磁盘,尽量不要放在C盘

第三步:

安装Hadoop云计算系统(8.1.5)

1.创建Hadoop用户

2.安装Hadoop云计算系统软件

1)先用鼠标复制Hadoop安装包:

hadoop-1.0.4.tar,然后用鼠标复制到当前目录/home/mary;

2)然后执行:

tar-xzvfhadoop-1.0.4.tar.gz就开始安装了。

3.安装其他Hadoop必备软件

把jdk-6u33-linux-i586.bin复制到/home/mary下,然后命令行执行

sudo./jdk-6u33-linux-i586.bin

sudoapt-getinstallopenjdk-6-jdk

sudoapt-getinstallssh

sudoapt-getinstallopenssh-server

sudoapt-getinstallrsync

备注:

如果系统提示找不到文件,则是因为刚才把这个文件拷贝到了桌面,执行这个mvDesktop/jdk-6u33-linux-i586.bin./,则将文件移动到当前目录,再执行./jdk-6u33-linux-i586.bin,安装成功。

4.编辑主机设置文档&修改系统环境配置文件

4.1编辑主机设置文档_————设置虚拟机网络连接

需要这2台虚拟机能上网(Internet),同时相互能互联,并且能够与主机互联。

设置2块网卡,如下:

设置桥接模式下的网络连接.

1.sudo gedit /etc/network/interfaces  

将eth1相关的内容修改为如下配置:

1.auto eth1  

2.  

3.iface eth1 inet static  

4.address 192.168.1.101  

mask 255.255.255.0  

6.gateway 192.168.1.254  

然后再重启网络服务:

1.sudo /etc/init.d/networking restart  

最后再用ifconfig和route来看看是更改过来了,再ping一下sina,看看Internet是否可用:

按照同样的方法来配置其余虚拟机即可。

网络配好了后,可以通过ssh或ping来检测是否可以相互联通。

然后打开一个Terminal,

sudogedit/etc/hosts

设置为:

127.0.0.1localhost

192.168.1.100hadoop

192.168.1.101hadoop1

重点参考

4.2修改系统环境配置文件

sudogedit/etc/profile,加入如下配置:

exportJAVA_HOME=/home/mary/jdk1.6.0_33

exportJRE_HOME=/home/mary/jdk1.6.0_33/jre

exportCLASSPATH=.:

$JAVA_HOME/lib:

$JRE_HOME/lib:

$CLASSPATH

exportPATH=$HADOOP_HOME/bin:

$JRE_HOME/bin:

$JAVA_HOME/bin:

$PATH

exportHADOOP_HOME=/home/mary/hadoop

5.创建SSH密钥安全联机(免密码登录)

SSH基本原理和用法

SSH之所以能够保证安全,原因在于它采用了公钥加密。

过程如下:

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

1)Master节点利用ssh-keygen命令生成一个无密码密钥对。

在Master节点上执行以下命令:

ssh-keygen-trsa-P''(创建密钥)

运行后询问其保存路径时直接回车采用默认路径。

生成的密钥对:

id_rsa(私钥)和id_rsa.pub(公钥),默认存储在"/home/用户名/.ssh"目录下。

查看"/home/用户名/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。

2)接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去,将RSA公用密钥文档id_rsa.pub存储成授权密钥文档authorized_keys。

cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

3)sshlocalhost

4)exit

5)在其他slave主机上也同样运行SSH密钥的动作,生成“/home/mary/.ssh”密钥放置目录

6)在Master上使用scp安全复制指令将master这台主机所创建的SSH授权密钥authorized_keys,复制到每台slave上。

$scpauthorized_keysslave1:

/home/mary/.ssh

$scpauthorized_keysslave2:

/home/mary/.ssh

$sshslave1

$sshslave2

//ssh-copy-id–iid_rsapubzyl@slave尝试用该方法复制

第四步:

安装VIM

执行sudoapt-getinstallvim(下载27M)(vim是linux下的文本编辑器,配置环境变量时要用vim编辑器)

第五步:

多节点Hadoop云计算系统配置

1.Masters与slaves配置

用指令sudogeditmasters(home/mary/conf)修改文件masters

Master(为你的主机名可以gedit/etc/hostname去修改为和你想要的名字)

用指令sudogeditslaves(home/mary/conf)修改文件slaves

slave1(为你的主机名可以gedit/etc/hostname去修改为和你想要的名字)

slave2

127.0.0.1hadoop

2.hadoop运行环境变量配置hadoop-env.sh

进入到hadoop的conf目录下

$gedithadoop-env.sh

exportJAVA_HOME=/home/mary/jdk1.6.0_33

同时,在/etc/profile文件中加入以下

exportHADOOP_HOME=/home/mary/hadoop-1.0.4和PATH

另外,也可以执行vim.bashrc,就打开环境变量文件:

最后输入cat.bashrc查看环境变量。

如果配置同上面的一样,则说明配置环境变量成功。

补充:

JAVA_HOME、HADOOP_HOME如何确定?

输入pwd,查看当前目录,如果在/home/mary下,就输入ls查看,如下图,可以查看到JAVA_HOME和HADOOP_HOME。

2.Hadoop云计算系统设置文档——core-site.xml

输入vimcore-site.xml,然后按i键,进入编辑模式,然后增加如下代码:

fs.default.name

hdfs:

//master:

9000(这里的master为你的主机名)

hadoop.tmp.dir

/home/erick/tmp(在你的home目录下建一个tmp文件夹)

如下图所示。

然后退出vim。

3.HDFS分布式文档系统设置文档——hdfs-site.xml

然后输入vimhdfs-site.xml,指定刚刚创建的目录,增加如下代码。

dfs.replication

3

dfs.permissions

false

4.Map/Reduce程序设置文档——mapred-site.xml

输入vimmapred-site.xml(即配置mapreduce),然后增加如下代码:

mapred.job.tracker

master:

9001(master为主机名)

完成以上步骤后退出。

5.复制设置文档到其他Hadoop子服务器

$scp–r/home/mary/hadoop-1.0.4slave1:

/home/mary

$scp–r/home/mary/hadoop-1.0.4slave2:

/home/mary

*************到此为止,hadoop全部安装配置完毕。

**********************

第八步:

格式化Hadoop(8.2.3)

格式化HDFS,执行bin/hadoopnamenode-format

第九步:

启动Hadoop(8.2.3)

1)启动hadoop,执行start-all.sh

2)然后在浏览器里输入,可以看到HDFS的web界面,如下图:

(这里也为主机名)

如果你失败了,把hadoop下的log删掉。

还有把tmp下的文件全部删除重新查看配置在重启

3)在浏览器里输入,是MapReduce的界面,如下图:

第十步:

关闭hadoop

执行:

stop-all.sh

第十一步:

集群基准测试

1、HDFS基准测试

mary@ubuntu:

~$~/hadoop-1.0.4/bin/hadoopjarhadoop-1.0.4/hadoop-test-1.0.4.jarTestDFSIO\

>-write-nrFiles10-16

补充:

参考网址:

[1]查看ubuntu系统的版本:

cat/etc/issue

[2]查看ubuntu系统的位数:

[3]查看java是否安装成功:

java–version

[4]重启网络服务:

servicenetworkrestart

[5]即时生效:

#hostn

[6]linux终端下如何退出root权限:

:

 Ctrl+D

[7]新建一个命令窗口:

ctrl+alt+T

[8]关闭Hadoop的安全模式:

Hadoop的目录下输入:

bin/hadoopdfsadmin-safemodeleave

[9]Linux删除文件夹和文件的命令

∙linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm-rf命令即可。

直接rm就可以了,不过要加两个参数-rf即:

rm-rf目录名字

-r就是向下递归,不管有多少级目录,一并删除

-f就是直接强行删除,不作任何提示的意思1

删除文件夹实例:

rm-rf/var/log/httpd/access

将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

删除文件使用实例:

rm-f/var/log/httpd/access.log

将会强制删除/var/log/httpd/access.log这个文件

END

注意事项

∙使用这个rm-rf的时候一定要格外小心,linux没有回收站的

很多朋友在使用前没有看到这一点重要的提示信息,以至于删除之后再想找回就很难了

***附录:

Hadoop集群搭建常见错误***

1.路径问题

hadoop@ubuntu:

~$hadoop/bin/hadoopjar hadoop-0.20.2-examples.jar wordcountinput01output01

Exceptioninthread"main"java.io.IOException:

Erroropeningjobjar:

hadoop-0.20.2-examples.jar

   atorg.apache.hadoop.util.RunJar.main(RunJar.java:

90)

Causedby:

java.util.zip.ZipException:

errorinopeningzipfile

   atjava.util.zip.Zip(NativeMethod)

   atjava.util.zip.ZipFile.(Zip)

   atjava.util.jar.JarFile.(Jar)

   atjava.util.jar.JarFile.(Jar)

   atorg.apache.hadoop.util.RunJar.main(RunJar.java:

88)

发生这个异常后,找了很多帖子都没有解答,也有很多人遇到了类似的情况。

其实这一般并不是java包有问题,就是上面的命令行中

hadoop-0.20.2-examples.jar

路径不完整造成的,需要注意一下命令行当前的位置,比如对于我的情况,改为hadoop/hadoop-0.20.2-examples.jar就可以了

2.Datanode无法启动的问题

【问题描述】:

执行了./hadoopnamenode-format之后

启动hadoop:

 ./start-all.sh  

运行jps,发现datanode没有起来但是TaskTracker是正常启动的。

去datanode的错误日志里面发现的下面的问题:

2015-05-0411:

37:

12,857INFOorg.apache.hadoop.hdfs.server.datanode.DataNode:

STARTUP_MSG:

/************************************************************STARTUP_MSG:

StartingDataNodeSTARTUP_MSG:

host=hadoop/192.168.182.100STARTUP_MSG:

args=[]STARTUP_MSG:

version=1.0.4STARTUP_MSG:

build=-r1393290;compiledby'hortonfo'onWedOct305:

13:

58UTC2012************************************************************/2015-05-0411:

37:

13,388INFOorg.apache.hadoop.metrics2.impl.MetricsConfig:

loadedpropertiesfromhadoop-metrics2.properties2015-05-0411:

37:

13,413INFOorg.apache.hadoop.metrics2.impl.MetricsSourceAdapter:

MBeanforsourceMetricsSystem,sub=Statsregistered.2015-05-0411:

37:

13,415INFOorg.apache.hadoop.metrics2.impl.MetricsSystemImpl:

Scheduledsnapshotperiodat10second(s).2015-05-0411:

37:

13,415INFOorg.apache.hadoop.metrics2.impl.MetricsSystemImpl:

DataNodemetricssystemstarted2015-05-0411:

37:

13,798INFOorg.apache.hadoop.metrics2.impl.MetricsSourceAdapter:

MBeanforsourceugiregistered.2015-05-0411:

37:

13,818WARNorg.apache.hadoop.metrics2.impl.MetricsSystemImpl:

Sourcenameugialreadyexists!

2015-05-0411:

37:

18,309ERRORorg.apache.hadoop.hdfs.server.datanode.DataNode:

java.io.IOException:

IncompatiblenamespaceIDsin/home/mary/hadoop/data1:

namenodenamespaceID=1033684170;datanodenamespaceID=585330462atorg.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:

232)atorg.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:

147)atorg.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:

385)atorg.apache.hadoop.hdfs.server.datanode.DataNode.(DataNode.java:

299)atorg.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:

1582)atorg.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:

1521)atorg.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:

1539)atorg.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:

1665)atorg.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:

1682)2015-05-0411:

37:

18,316INFOorg.apache.hadoop.hdfs.server.datanode.DataNode:

SHUTDOWN_MSG:

/************************************************************SHUTDOWN_MSG:

ShuttingdownDataNodeathadoop/192.168.182.100

导致datanode启动不了。

 

原因:

每次namenodeformat会重新创建一个namenodeId,而dfs.data.dir参数配置的目录中包含的是上次format创建的id,和dfs.name.dir参数配置的目录中的id不一致。

namenodeformat清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空dfs.data.dir参数配置的目录.

解决方法:

/home/mary/hadoop/data1这个目录是我 hdfs-site.xml配置文件里面dfs.data.dir的值,如下:

  

               dfs.data.dir 

               /home/mary/hadoop/data1,/home/mary/hadoop/data2 

   

方法1.

进入每个datanode的 dfs.data.dir 的current目录,修改里面的文件VERSION

#FriNov2315:

00:

17CST2012

namespaceID=246015542

storageID=DS-2085496284-192.168.1.244-50010-03

cTime=0

storageType=DATA_NODE

layoutVersion=-32

里面有个namespaceID将其修改成为报错信息中的 namenodenamespaceID=971169702

相同的 namespaceID  .

然后重新启动datanode全部都能正常启动了。

方法2:

由于是测试环境,可以直接删除每个datanode上面 dfs.data.dir目录下所有的文件

rm-rf*(注意慎用该命令,不可恢复,彻底删除目录下的所有文件)

删除之后 

重新启动也是可以正常的启动所有的datanode

进到dfs.data.dir目录下所有的datanode又全部重新生成了。

3.50070集群节点数正确,50030下查看,没有节点

原因:

namenode处于安全模式

解决方法:

退出安全模式

bin/hadoopdfsadmin-safemodeleave

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1