在Ubuntu10.04上分布式部署Hadoop0.20.2

在Ubuntu10.04上分布式部署Hadoop0.20.2

首先做一下简要说明,Ubuntu是装在虚拟机上的,虚拟机既存在不同的主机上,寄存主机在同一个内网里,这里有一个注意点,Network的连接方式要用桥接(Bridged),这样能使VM的IP和Host在同一个网段,能保证VM之间能够互相ping的通。

分布式结构如下,一个namenode和一个datanode:

172.28.0.73    hadoop-namenode

172.28.0.77    hadoop-datanode1

下面进入正文,安装配置:

 

一、hostname的配置操作

1、修改hosts文件,如下:

sudo su root

gedit /etc/hosts       修改内容如下:

172.28.0.73    hadoop-namenode

172.28.0.77    hadoop-datanode1

 

2、修改hostname,namenode上修改为hadoop-namenode,datanode修改为hadoop-datanode1,我这里只演示namenode上的操作,以下同上,有特别的地方我会说明的。

hostname hadoop-namenode

这样不能彻底修改hostname(主机名),重启后还会还原到默认的Ubuntu,要彻底修改要修改/etc/hostname,namenode和datanode各自修改为自己的hostname

gedit /etc/hostname hadoop-namenode

把原来的Ubuntu删掉,不要用#注释,直接删掉,因为#没用,修改内容:

hadoop-namenode

退出shell客户端,重新进入,并且换成root操作

exit

sudo su root

 

3、这些工作都做好了,ping一下看看能不能ping通,用节点名称ping

ping hadoop-datanode1

 

二、安装jdk用的是截至2011/1/6最新的版本 jdk-6u23-linux-i586.bin

1、把jdk安装文件拷贝到/usr/lib目录下,然后安装

cp jdk-6u23-linux-i586.bin /usr/lib

cd /usr/lib

chmod u+x chmod

./jdk-6u23-linux-i586.bin

2、安装已完成修改环境变量并且把java安装到系统

配置环境变量,编写一个java.sh放到/etc/profile.d下面,内容如下:

#set jdk environment

export JAVA_HOME=/usr/lib/jdk1.6.0_23

export JRE_HOME=/usr/lib/jdk1.6.0_23/jre

exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

提升java.sh的权限:

chmod 775 /etc/profile.d/java.sh

把Java安装到系统:

ln –s /usr/lib/jdk1.6.0_23/bin/java /usr/bin/java

查看Java版本确定已经安装到系统:

java –version

如果看到版本说明安装成功

 

三、SSH无密码验证配置

ssh-keygen –t rsa

会在/root下生成一个.ssh目录,.ssh目录下会生成一个id_rsa的私钥和id_rsa.pub的公钥,把公钥拷贝成authorized_keys,这样可以通过ssh连接自己

cd /root/.ssh

cp id_rsa.pub authorized_keys

ssh hadoop-namenode

在datanode节点做一下同样的操作,然后把id_rsa.pub拷到datanode的/root/.ssh下面,好多资料上都是这样写的,scp id_rsa.pubhadoop-datanode:/root/.ssh 172.28.0.73,一开始我也这样做的但是考不过去,后来我直接用U盘拷到datanode节点上然后拷贝到/root/.ssh下面,在追加到datanode的authorized_keys上面

cp id_rsa.pub /root/.ssh 172.28.0.73

cat 172.28.0.73 >> authorized_keys

此时,我们的namenode可以无密码访问datanode了,回到hadoop-namenode上

ssh hadoop-datanode1

现在可以连接了,至于想让datanode访问namenode原理是一样的,但我觉得没有这个必要。

四、关闭防火墙

ufw disable

五、安装Hadoop

1、在/opt目录下建立hadoop目录,把hadoop-0.20.2.tar.gz拷贝到/opt/hadoop目录下,然后解压:

mkdir /opt/hadoop

cp hadoop-0.20.2.tar.gz /opt/hadoop

cd /opt/hadoop

tar –zxvf hadoop-0.20.2.tar.gz

cd hadoop-0.20.2

2、配置Hadoop

1、编辑conf/hadoop-env.sh文件,把JAVA_HOME设置成Java安装根路径,如下:

exportJAVA_HOME=/usr/lib/jdk1.6.0_23

记住把export前面的#去掉

2、配置core-site.xml

gedit /conf/core-site.xml

修改内容如下:

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hadoop/tmp</value>

(注意,请先在hadoop目录下建立tmp文件夹)

<description>Abase for other temporary directories.</description>

</property>

<!--file system properties -->

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop-namenode:9000</value>

</property>

</configuration>

3、配置hdfs-site.xml

gedit conf/hdfs-site.xml

内容如下:

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

(replication是数据副本数量,默认为3,datanode少于3台就会报错)

</property>

<property>

    <name>dfs.name.dir</name>

    <value>/opt/hadoop/hdfs/name</name>

</property>

<property>

    <name>dfs.data.dir</name>

    <value>/opt/hadoop/hdfs/data</name>

</property>

(以上两项很多教程上是没有的,但是我试过没有会出错,应该是namenode和datanode的filesystem的问题,另外/opt/hadoop/hdfs要自己建)

</configuration>

4、配置mapred-site.xml

gedit conf/mapred-site.xml

内容如下:

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hadoop-namenode:9001</value>

</property>

</configuration>

5、配置masters和slaves来设置主从节点,注意最好使用主机名,并且保证VM之间可以通过主机名可以互相访问,每个主机名一行

masters:

hadoop-namenode

salves:

hadoop-datanode1

       因为之前配置了SSH无密码验证,所以现在可以使用scp命令把hadoop的配置直接拷到datanode上,也可以不用在datanode上安装hadoop,把整个的拷过去,但是太大,传输不方便,建议在datanode端装好了,拷贝配置就可以了,原则上masters配置只要在namenode端,而slaves在datanode端,不过都配也无所谓。命令如下:

       scp confhadoop-datanode1:/opt/hadoop/hadoop-0.20.2

      

       到这里hadoop的分布式安装就完成了,现在我们就来初始配置:

       1、格式化hadoop

       ./bin/hadoop namenode -format

2、启动hadoop

./bin/start-all.sh

通过日志可以看出,首先启动namenode,然后启动datanode

3、在namenode上查看集群状态:

./bin/hadoop –dfsadmin –report

Web查看方式:http://hadoop-namenode:50070

 

 

 

修改环境变量

[plain] view plaincopyprint?

1.  vim ~/.bashrc  

vim~/.bashrc

添加:

[plain] view plaincopyprint?

1.  export PATH=/home/sunlylorn/hadoop/bin:$PATH  

exportPATH=/home/sunlylorn/hadoop/bin:$PATH

保存退出,输入以下命令使之立即生效。

[plain] view plaincopyprint?

1.  source ~/.bashrc   

测试  hadoop version

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值