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 ../confcd /usr/hadoop/hadoop1.0.3/hdfs
cp hdfs_default.xml ../confcd /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.配置完毕