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

  首先做一下简要说明, Ubuntu 是装在虚拟机上的,虚拟机既存在不同的主机上,寄存主机在同一个内网里,这里有一个注意点, Network 的连接方式要用桥接( Bridged ),这样能使 VMIPHost 在同一个网段,能保证 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 、修改 hostnamenamenode 上修改为 hadoop-namenodedatanode 修改为 hadoop-datanode1 ,我这里只演示 namenode 上的操作,以下同上,有特别的地方我会说明的。

hostname hadoop-namenode

这样不能彻底修改 hostname (主机名),重启后还会还原到默认的 Ubuntu ,要彻底修改要修改 /etc/hostnamenamenodedatanode 各自修改为自己的 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

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

export PATH=$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 连接自己  

apt-get update

apt-get install openssh-server

cd /root/.ssh

cp id_rsa.pub authorized_keys

ssh hadoop-namenode

datanode 节点做一下同样的操作,然后把 id_rsa.pub 拷到 datanode/root/.ssh 下面,好多资料上都是这样写的, scp id_rsa.pub hadoop-datanode:/root/.ssh 172.28.0.73 ,一开始我也这样做的但是考不过去,后来我直接用 U 盘拷到 datanode 节点上然后拷贝到 /root/.ssh 下面,在追加到 datanodeauthorized_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 安装根路径,如下:

export JAVA_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>A base 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 、配置 mastersslaves 来设置主从节点,注意最好使用主机名,并且保证 VM 之间可以通过主机名可以互相访问,每个主机名一行

masters

hadoop-namenode

salves

hadoop-datanode1

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

       scp conf hadoop-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


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值