hadoop完全分布式环境搭建
还算那句话:能看官方文档就尽量看官方文档 hadoop1.0.4完全分布式官方文档
先扯点题外话,这个项目是我的比赛项目,可能比较简陋,主要还是想学习关于hadoop和搜索引擎方面的一些知识。这一两个月看了<hadoop实战>,<hadoop权威指南>
<信息检索导论>等一些书吧,初步了解了一下hadoop和搜索引擎。马上项目就要上交了,所以昨天把两个月的心血给删了,重新来一遍,重装系统,复习一遍之前的吧。
好了,正文开始了。
环境版本:
ubuntu:ubuntu 12.0.4 32bit
hadoop:hadoop1.0.4
jdk:jdk1.7.0.21
ssh+rsync
另外
master IP:222.27.111.121
slaver IP: 222.27.111.122
ubuntu的用户名均为hadoop,你可以根据自己的情况新建用户
一,修改hosts
修改/etc/hosts
这里我插入了第3和第4行 ,大家可以根据自己的情况修改hosts文件
1 127.0.0.1 localhost 2 127.0.1.1 ubuntu.ubuntu-domain ubuntu 3 222.27.111.121 master 4 222.27.111.122 slaver 5 # The following lines are desirable for IPv6 capable hosts 6 ::1 ip6-localhost ip6-loopback 7 fe00::0 ip6-localnet 8 ff00::0 ip6-mcastprefix 9 ff02::1 ip6-allnodes 10 ff02::2 ip6-allrouters
二,配置ssh免密码远程登录
在每台机器上安装ssh
sudo apt-get install ssh sudo apt-get install rsync
在namenode机器即master上生成密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
namenode本机回环测试一下
ssh localhost
结果是这个,可以多测试几下
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-29-generic-pae i686)
* Documentation: https://help.ubuntu.com/
。。。。
Last login: Sat May 4 18:15:34 2013 from localhost
修改.ssh和authorized_keys权限以保证scp操作的条件
sudo chmod 700 /home/hadoop/.ssh sudo chmod 600 /home/hadoop/.ssh/authorized_keys
远程拷贝:
namenode上
scp /home/hadoop/.ssh/id_dsa.pub hadoop@slaver:/home/hadoop
datanode上
cat id_dsa.pub >> ~/.ssh/authorized_keys
namenode连接datanode
ssh slaver
结果应该是
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic-pae i686) * Documentation: https://help.ubuntu.com/ 411 packages can be updated. 137 updates are security updates. Last login: Sun May 5 11:14:09 2013 from master
如果这个模块有问题可以多重复几次,可以在dataname上也安装ssh 测试本机是否可用,dataname测试后记得删除.ssh文件夹
三,配置hadoop环境
3.1安装JDK
解压jdk,cp到/usr下,配置/etc/profile 添加:
export JAVA_HOME=/usr/jdk1.7.0_21 export JRE_HOME=/usr/jdk1.7.0_21/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
大家相应修改版本就好,然后更新一下
source /etc/profile
测试JDK安装
hadoop@ubuntu:~$ java -version
结果为: java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)
3.2配置hadoop(可以参照Ubuntu12.04下安装hadoop1.0.4 测试下)
解压hadoop,我放在了/home/hadoop下
修改hadoop/conf/hadoop-env.sh:
配置JDK
# The java implementation to use. Required. export JAVA_HOME=/usr/jdk1.7.0_21
修改hadoop/conf/hdfs-site.xml
dfs.data.dir:数据的本机存放位置,datanode
dfs.name.dir:命名空间的本机存放位置,namenode
dfs.replication:数据的备份数:一般为3,必须小于等于datanode数
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/data</value> </property> <property> <name>dfs.name.dir</name> <value>/home/hadoop/name</value> </property> </configuration>
修改hadoop/conf/core-site.xml
hadoop.tmp.dir:一定要修改,详见ubuntu下hadoop的重启后namenode无法启动的解决方法
fs.default.name:URI of NameNode
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp</value> </property> </configuration>
修改hadoop/conf/mapred-site.xml
mapred.job.tracker:Host or IP and port ofJobTracker.
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration>
修改hadoop/conf/masters
master
修改hadoop/conf/slaves
slaver
远程给slaver拷贝hadoop
scp -r hadoop-1.0.4/ hadoop@slaver:/home/hadoop
四,启动hadoop
在namnode上。
格式化namenode
hadoop@ubuntu:~/hadoop-1.0.4$ bin/hadoop namenode -format
启动hadoop
hadoop@ubuntu:~/hadoop-1.0.4$ bin/start-all.sh
查看进程:
namenode
jps
应该看到:
xxx Jps
xxx JobTracker
xxx SecondaryNameNode
xxx NameNode
dataname看到的是
TaskTracker和DataNode
另外还可以通过
http://master:50070和 http://master:50030ch查看相关信息