锁定老帖子 主题:Hadoop环境搭建——集群篇
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-23
最后修改:2011-01-24
在完成单节点环境搭建的基础上进行集群环境搭建 单节点搭建:http://vampire1126.iteye.com/admin/blogs/891693
流程: 配置阶段: 配置一系列文件 在所有slave节点上拷贝master和JobTracker的公钥 在JobTracker节点上拷贝master的公钥
运行阶段: 启动hadoop 跑wordcount
集群搭建准备: 至少两台已完成单节点搭建的机器 (此例为两台,IP分别是192.168.1.10与192.168.1.11,其中10为master)
配置阶段: 1、配置一系列文件(所有节点上) 1、配置etc下的hosts文件 sudo gedit /etc/hosts (注:打开后将里面的内容全部删除,不删除的话启动时会出现所有slave启动正常,但是master上的DataNode为0,导致系统不能正常运转的情况,全部删除以后添加所有节点的IP和标识符,格式如下 192.168.1.10 master 192.168.1.11 slave 标识符可以随便写,主要是起到一个映射作用)
2、进入hadoop目录下,配置conf下的masters文件 cd /usr/local/hadoop sudo gedit conf/masters (打开后将里面内容清空,然后添加“master”或者master的IP“192.168.1.10”,此处即是hosts中配置的映射,填master或者直接填IP都是一样的)
3、配置conf下的slaves文件 sudo gedit conf/slaves (打开后将里面内容清空,然后添加“slave”或者slave的IP“192.168.1.11”,原因同上)
4、配置conf下的core-site.xml文件 sudo gedit conf/core-site.xml (因为已完成单节点配置,因此只需要修改就行了。打开后将第一个<property>标签中的localhost改为“master”或者master的IP,如下 <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> 第二个<property>标签,即包含<name>dfs.replication</name>一行的那个,其中的“<value>”表示文件上传到dfs上时的备份个数,此数值不能大于slave即datanode的个数)
5、配置conf下的hdfs-site.xml文件(此配置在slave节点上可有可无) sudo gedit conf/hdfs-site.xml (打开后在空的<configuration> </configuration>中添加如下配置 <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>/home/hadoop/hdfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hdfs/data</value> </property>
6、配置conf下的mapred-site.xml文件 sudo gedit conf/mapred-site.xml (打开后将<value>标签里的localhost改为JobTracker的IP,因为本例中JobTracker也是master本身,所以将localhost改为“master”或master的IP)
2、在所有slave节点上拷贝master和JobTracker的公钥 1、拷贝公钥 scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/haddop/.ssh/jobtracker_rsa.pub (注:因为本例中master和JobTracker是同一台机器,所以相当于在master上拷了两次公钥)
2、将拷贝的公钥添加到信任列表 cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys cat /home/hadoop/.ssh/jobtracker_rsa.pub >> /home/hadoop/.ssh/authorized_keys
3、在JobTracker上拷贝master的公钥 1、拷贝公钥 scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub (注:本例中master和JobTracker是同一台机器,所以相当于自己拷自己的公钥.....囧......)
2、添加到信任列表 cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys
运行阶段: 1、启动hadoop 1、在所有节点上删除/home/hadoop/下的tmp文件夹(包括master节点) sudo rm -r /home/hadoop/tmp (注:tmp文件夹内部存放有NameNode的ID信息,如果ID不一样的话是无法正常连接的,此处的删除操作是为了保证ID的一致性)
2、在master上格式化NameNode hadoop namenode -format
3、启动hadoop bin/start-all.sh
4、查看各节点是否正常启动 jps (此语句执行后,slave节点中必须有DataNode,master节点中必须有NameNode,否则启动失败)
5、查看整个系统状态 hadoop dfsadmin -report (此语句执行后能显示当前连接的slave数,即DataNode数)
2、跑wordcount 1、准备测试文件 sudo echo "mu ha ha ni da ye da ye da da" > /tmp/test.txt
2、将测试文件上传到dfs文件系统 hadoop dfs -put /tmp/test.txt multiTest (注:如multiTest目录不存在的话会自动创建)
3、执行wordcount hadoop jar hadoop-mapred-examples0.21.0.jar wordcout multiTest result (注:如result目录不存在的话会自动创建)
4、查看结果 hadoop dfs -cat result/part-r-00000
至此集群环境搭建完毕~!
补充说明: 网上文档中说的关于“关闭防火墙”和“关闭安全模式”,我们在实践中并未涉及到,如遇到连接不到datanode的问题,请检查您的hosts文件中是否最上面多出两行,如果是的话请删除,然后重新按照“运行阶段”的步骤来。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 4102 次