首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

hadoop集群环境的配备

2012-07-02 
hadoop集群环境的配置? 之前说过,我们的hadoop集群已经搭建起来了,只是具体的步骤还没来得及整理,幸好今天

hadoop集群环境的配置

? 之前说过,我们的hadoop集群已经搭建起来了,只是具体的步骤还没来得及整理,幸好今天又把流程走了一遍,真的是不做不晓得,一做才发现自己原来什么都忘记得差不多了,在此记录一下搭建hadoop集群的步骤,便于需要的时候看看!

? 这个配环境的过程真的是比较困难的,我今天搞了一天终于把自己的机器作为datanode连接上了master机器,我还是年前搞过一遍的呢,所以这个还是需要耐心+细心的!

? 这里首先声明一下,我之前在我的机器上配置过了hadoop的单机伪分布环境,今天才将我的机器作为一个datanode加入到hadoop集群上的,但是装的ubuntu的版本和jdk的位置跟集群上的都不一样,这说明这个不影响hadoop集群的配置,但是,jdk的版本号和hadoop的版本号以及hadoop装的位置都必须是一样的!下面我们就开始吧!

?

?一、资源的准备:

?(1)ubuntu-11.10-beta2-desktop-i386.iso ,ubuntu的安装,直接双击下载的这个东西就行了,真的就像装软件一样!

?(2)jdk-6u30-linux-i586.bin,安装jdk要用的,一个hadoop集群上只能用一个版本的jdk,我们用的是这个版本。

?(3)hadoop-0.20.203.0rc1.tar.gz,安装hadoop集群必备的!

?

?二、jdk的安装(这里的路径可以自己确定,不一定要和集群上的一样)
??? 我的是放在/home/acer下面的(acer是我电脑的用户名)


??? 1.将刚才准备的jdk放到这个目录下(这一步不是必要的)

???? sudo cp jdk以前的路径 jdk现在的路径
?
??? 2.解压执行安装jdk(这里会涉及到权限的问题)

????? 先修改jdk文件的权限
??????sudo chmod u+x jdk-6u30-linux-i586.bin
????? 再执行安装
????? sudo?./jdk-6u30-linux-i586.bin
????? 第二步完成之后就会在/home/acer/目录下出现一个jdk1.6.0_30的文件夹
?
?? 3.配置环境变量
??? 编辑配置文件:sudo?gedit?/etc/profile
?
????在这个文件最后面添加这么几行:

??? export JAVA_HOME=/home/acer/jdk1.6.0_30

??? export JRE_HOME=/home/acer/jdk1.6.0_30/jre?
??? export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

??? export PATH=$JAVA_HOME/bin:$PATH
?

??4.重启机器,查看jdk是否安装成功以及版本号
??? 在终端输入:java

??? 如果出来一系列目录东东就是正确了
??? 在终端输入:java -version

??? 可以查看jdk的版本号
??? 如果木有安装成功,可能就是配置问题了,慢慢看,细心点就应该没有问题了!

?

?三、安装hadoop(主要针对master机器)
? 只要在master机器上安装hadoop就行了,其他机器上的hadoop都可以直接通过连接远程服务器的方式进行复制,这样就方便多了!

?

? 1.将刚才准备的 hadoop-0.20.203.0rc1.tar.gz文件复制到/usr/local文件目录下面:
??? sudo cp hadoop压缩包路径 /usr/local

??2.解压hadoop软件包
??? sudo tar -xzf? hadoop-0.20.203.0rc1.tar.gz
?? 为了以后写目录方便,将解压出来的文件修改名字为hadoop:
?? sudo mv hadoop-0.20.203.0 hadoop


??3.为hadoop集群中的每一个节点都创建一个hadoop的用户组和hadoop用户名,这样便于记忆以及管理
????建立hadoop用户组:sudo addgroup hadoop
????在hadoop用户组下面建立一个hadoop用户名:
????sudo adduser -ingroup hadoop hadoop
??? (这里创建hadoop用户的时候很多信息你不用去添,一直按enter键就行了)

???

??4.添加hadoop用户的权限
????打开sudoers文件:sudo gedit /etc/sudoers
????在root?ALL=(ALL:ALL) ALL后面加上一行:
????hadoop ALL = (ALL) ALL

??? 创建了hadoop用户了之后我们以后就都在这个下面进行终端的操作了!

?

?5.配置conf/hadoop-env.sh文件;
?? 切换路径:cd?/usr/local/hadoop
???编辑文件:sudo?gedit?conf/hadoop-env.sh
?? 将JAVA_HOME前面的#号去掉,java路径改为:
?? JAVA_HOME=/home/acer/jdk1.6.0_30
?6.配置hosts文件(建立映射关系,用户名和ip一一对应着添加进来)
?? sudo gedit /etc/hosts
?? 添加之后是这样:
?? 127.0.0.1?? localhost
?? 127.0.0.1?? ubuntu.ubuntu-domain??? ubuntu
?? 192.168.1.11 master
?? 192.168.1.7 s7
?? 192.168.1.2 s2
?? 192.168.1.3 s3
?? 192.168.1.4 s4
?? 192.168.1.6 s6
?? 192.168.1.5 s5
?? 192.168.1.8 s8
?? 192.168.1.9? s9
?? 192.168.1.10 secondaryname

?


?? # The following lines

?? are desirable for IPv6 capable hosts
?? ::1???? ip6-localhost ip6-loopback
?? fe00::0 ip6-localnet
?? ff00::0 ip6-mcastprefix
?? ff02::1 ip6-allnodes
?? ff02::2 ip6-

?? allrouters

(注:这里可以修改自己主机的名字:sudo gedit /etc/hostname 在这个文件里面修改这个名字就行了)


7.配置master和slaves文件
? cd/usr/local/hadoop
? sudo gedit

? conf/masters 将这个文件的内容改为:master
? sudo gedit conf/slaves 将这个文件改为:
? s2
? s3
? s4
? s5
? s6
? s7
? s8
? s9
(这些就是要加进来的datanode节点的名称,其实这些只要在master机器上配置就行了)

?

8.配置core-site、mapred-site、hdfs-site文件
? sudo gedit conf/core-site.xml
? 修改为:
?<configuration>
?<property>?
?? <name>fs.default.name</name>??

?? <value>hdfs://master:9000</value>??
?? </property>??
? </configuration>

?

? sudo?gedit?conf/mapred-site.xml
? <configuration>
?? <property>???
????? <name>mapred.job.tracker</name>?
????? <value>master:9001</value>??
?? </property>?
? </configuration>


? sudo?gedit?conf/hdfs-site.xml
? <configuration>
? <property>
? <name>dfs.name.dir</name>
? <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
? </property>
? <property>
? <name>dfs.data.dir</name>
? <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
? </property>
? <property>
? <name>dfs.replication</name>
? <value>2</value>
? </property>
? </configuration>

?

?

9.安装SSH

? 切换到hadoop用户下或者以hadoop身份登录;

? 1、下载ssh:sudo apt-get install openssh-server;

? 2、创建sshkey为rsa;ssh-keygen -t rsa -P ""(注意:这里的P是大写的P)
??? 填写key保存路径的时候可以直接使用默认的(一直按enter键就行了。)

? 3、将ssh-key添加到受信任列表并启用ssk-key
??? cat?/home/hadoop/.ssh/id_rsa.pub?>>??/home/hadoop/.ssh/authorized_keys?
?? (将公钥追加到收信任文件);
?? 重启ssh:sudo?/etc/init.d/ssh?reload?
??4、验证ssh是否

??? 安装成功ssh?localhost;


10.生成公钥
?? ssh-keygen?-t?dsa?-P?""?-f?~/.ssh/id_ rsa


11.启动namenode
?? namenode启动之前做一次 block 负载均衡
????

??? sudo?gedit??conf/hdfs-site.xml
?
???? <property>??
????????<name>dfs.balance.bandwidthPerSec</name>??????

??????? <value>10485760</value>??
?????????<description>?
????????????Specifies?the?maximum?bandwidth?that?each?datanode?can?utilize?for?the?balancing?purpose?in?term?of?the?number?of?bytes?per?second.?
?????????</description>?
???? </property>???
????

??? bin/start-balancer.sh

?

??? bin/start-dfs.sh


好了,到这里基本就差不多了,接下来就是远程复制文件了
要将master机器上的文件一一复制到datanode机器上:(这里以s2为例子)

(1)公钥的复制
??? scp ~/.ssh/id_rsa.pub hadoop@s2:~/.ssh/

(2)hosts文件的复制
??? scp?/etc/hosts?hadoop@s2:/etc/hosts
??? 注:这里如果不能复制,就先将文件复制到/home/hadoop下面,即为:

??? scp?/etc/hosts?hadoop@s2:/home/hadoop,再在datanode机器上将其移到相同的路径下面/usr/local

(3)hadoop文件夹的复制,其中的配置也就一起复制过来了!
??? scp?/usr/local/hadoop hadoop@s2:/usr/local
??? 如果不能移动的话和上面的方法一样!
这些东西都复制完了之后,datanode机器还要将复制过来的公钥追加到收信任列表:

??? cat ~/.ssh/id_rsa.pub?>>? ~/.ssh/authorized_keys,还有很重要的一点,datanode机器要把复制过来的hadoop里面的data1,data2和logs删除掉!

这样之后基本上就差不多了,启动datanode和tasktracker:
??? bin/hadoop-daemon.sh?start?datanode
??? bin/hadoop-daemon.sh?start?tasktracker?
这里还可能会涉及到权限的问题:这里我们统一将/usr/local/hadoop文件夹里面的东西的所有者改为hadoop,所属组为hadoop:
?? sudo chgrp -R hadoop hadoop
?? sudo chown -R hadoop:hadoop

查看自己的datanode是否启动:jps
当jps不能正常使用的时候:resource /etc/profile

连接时可以在namenode上查看连接情况:
???? ?bin/hadoop?dfsadmin?-report
也可以直接进入网址:master:50070

?

PS:常用到的一些命令:
新建目录(文件夹)
sudo mkdir 文件夹目


删除目录(文件夹)
sudo rm -rf 文件夹目录

?

?

这里写得还不是很全面,因为现在对这个东西了解得不是很深入,所以只能暂时这么写着,到时候通过研究,会对其进行一些修改及说明的!

热点排行