Hadoop学习笔记(一)

HDFS集群部署流程

2012-07-2015:42:04

 

环境说明和准备


 

目前我们的设计是:集群中包括4个节点,每台机器上安装CentOS5.5操作系统:其中1个Master,3个Salve,节点之间局域网连接,可以相互ping通,节点IP地址分布如下图

 

1.所需软件

搭建环境,我们只需要两款软件:

JDK-1.6.0.32 
HADOOP- 1.0.3 

 

2.机器名称设定:

管理员/密码:root/pku218 
用户/密码:hadoop/hadoop 

 

 


 详细配置流程


 

 

第一步,JDK的安装 


 

1.首先我们使用root登陆,在/usr下建一个java文件夹和一个hadoop文件夹。

 这时的默认用户和组是root,需要修改文件夹的属性,使其属于hadoop:

chown –R hadoop:hadoop hadoop 

chown –R hadoop:hadoop java 

 

 

 

 2.将软件分别copy至文件夹中

 

 

 3.在当前目录下解压JDK:

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

 

 

 4. 配置环境变量: 


    1) 切换到root下,因为普通用户hadoop只能查阅配置文件,而无法更改其内容
    2) 编辑系统配置文件

  vim /etc/profile 


    3) 在最后添加: 

    exports JAVA_HOME=/usr/java/jkd1.6.0_32(这个视jdk的安装路径而定) 
    exports CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH 
    exports PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 

    4) 保存后,重启电脑 
    5) 完成后查看:java –version,正常情况下如下图,应该是安装后的版本,注意第二行,java的版本已经是1.6.0_32,如果没有修改成功(比如仍然是openjava1.6.0,说明配置环境变量的时候没有生效,重新检查一下,必要的时候重启电脑)

 

 

 

 

 

 第二步,配置IP和修改主机名 


 

 1.首先,我们以root身份登录,修改配置文件,如下:

vim /etc/sysconfig/network-script/ifcfg-eth0 


2.在其中添加如下信息:

BROADCAST=192.168.0.255 
IPADDR=192.168.0.X 
NETMASK=255.255.255.0 
NETWORK=192.168.0.0 
GATEWAY=192.168.0.1
 

 这里的IPADDR就是各台机器的IP,可自行配置

 

3.重启电脑 

4.查看IP配置情况

/sbin/ifconfig

如果配置正确,如下图红圈中显示,自定义的配置信息已经生效:

 

 

5.同样在root下,修改主机名,在终端输入如下命令,new-hostname就是自定义的主机名,这里我们统一定义Datanode为slave1,slave2,slave3,Namenode为master

hostname new-hostname 


6.同样在root下,修改配置文件中的HOSTNAME为自定义名称 

vim /etc/sysconfig/network

 

 

7.配置完毕后,切换回hadoop用户状态下 

 

 

第三步,配置SSH 


 

master和slave都要安装ssh 


1. 在hadoop用户状态下,在终端输入:

ssh-keygen –t rsa –P ‘’ 

注意,ssh和-keygen之间没有空格,rsa后面是大写P,最后两个单引号之间也没有空格 

 

2.如下图,提示输入文件名保存key值,直接回车

 

在slave机器上hadoop的主文件夹下进入.ssh,可以查看到两个文件,修改.ssh文件夹的权限:

chmod –R 700 .ssh 

 

3.在master以root身份登录,在终端输入:

scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器ip:~/ 

目的是从master向slave传递文件,所以“远程用户名指的是hadoop,远程服务器ip指的就是其ip比如192.168.0.3,而~/表示位置,我们传输到slave的主文件夹下面”

注意:这时候需要输入slave的密

 

4. 在slave机器上以hadoop身份在终端输入:

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

   这样会在~/.ssh下产生一个authorized_keys文件 


5. 修改authorized_keys权限到600: 

chmod 600 authorized_keys 


6. 切换到root身份,编辑配置文件:

vim /etc/ssh/sshd_config 

 

注意,上图中最后一行的.ssh/authorized_keys应该使用绝对路径,/home/hadoop/.ssh/authorized_keys

 

7.在slave的root身份下,启动/sbin/service服务,如下图:

 

 

8.在master的root身份下,启动/sbin/service服务 

9.从master测试能否直接登录slave,在master终端输入: 

ssh 用户名@ip地址  ---比如:ssh hadoop@192.168.0.3 

 

如果不需要密码可以直接登录,则说明SSH配置成功

 

10.测试成功后,在master终端中exit出来

 

 

第四步,安装HADOOP 


1.在slave的hadoop用户状态下,进入/usr/hadoop,建立一个新文件tmp.

cd /usr/hadoop

mkdir tmp

然后在hadoop文件夹下直接解压hadoop1.0.3 

tar –zxvf hadoop.xxx.tar.gz 

 


2.进入hadoop1.0.3文件夹,进入其中的src: 
     1) 进入core文件夹,拷贝core_default.xml到hadoop1.0.3下的conf目录 
     2) 进入hdfs文件夹,拷贝hdfs_default.xml到hadoop1.0.3下的conf目录 
     3) 进入mapred文件夹,拷贝mapred_default.xml到hadoop1.0.3下的conf目录 

cd /usr/hadoop/hadoop1.0.3/core
cp core_default.xml ../conf

cd /usr/hadoop/hadoop1.0.3/hdfs
cp hdfs_default.xml ../conf

cd /usr/hadoop/hadoop1.0.3/mapred
cp mapred_default.xml ../conf

 

 

3. 进入conf目录,删除其中的core-site.xml,hdfs-site.xml,mapred-site.xml,并同时把刚才加入的三个xxx.default.xml文件的文件名改成xxx-site.xml(就是替换而已) 

cd /usr/hadoop/hadoop1.0.3

rm core-site.xml  hdfs-site.xml  mapred-site.xml

mv core-defalut.xml core-site.xml

mv hdfs-default.xml hdfs-site.xml

mv mapred-default.xml mapred-default.xml

 


4.修改conf目录下的hadoop-env.sh文件 
1) 把export JAVA_HOME前的#去掉 
2) 修改JAVA_HOME的内容为我们之前设置的JAVA_HOME的值即可 


5.修改core-site.xml中的的内容: 
     1) 修改hadoop.tmp.dir这个property的value,改成刚才我们建立的tmp文件夹的绝对路径 

 

 

2) 修改fs.default.name这个property的value,改成hdfs://192.168.0.2:9000 

 

 

6. 修改hdfs-site.xml的内容: 
修改dfs.replicaion这个property的value为1
 

 

 

7. 修改mapred-site.xml的内容: 
修改mapred.job.tracker这个property的value为192.168.0.2:9001 

注意,图中改错了,不加http://

 

8.在conf目录下,修改文件masters的内容,该为192.168.0.2,如图:

 

9.进入到hadoop1.0.3目录下 

10.初始化,在slave终端输入: bin/hadoop namenode –format 

 

11.配置完毕 

 

posted on 2012-07-20 15:43  melburg  阅读(572)  评论(0编辑  收藏  举报