这里用的是Hadoop-0.20.2的版本,不过加上了Hypertable-0.9.4.3的patch.1. 部署节点分布: 10.250.8.19 dev1 10.250.8.21 dev3 10.20.137.11 dev4 将以上这些信息放入到 /etc/hosts中,并在各个机器上可以相互ping通主机名 我们将在dev3上部署(NameNode, DataNode),而dev1, dev4分别作为slave的DataNode2. ssh免登录的配置 在hdfs运行时,需要从master控制slave. 所以需要控制master免密码ssh登录slave, 这里即从dev3面密码登录dev1和dev4 1) dev3上 ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa scp ~/.ssh/id_rsa.pub itlanger@dev1:/tmp; scp ~/.ssh/id_rsa.pub itlanger@dev2:/tmp; 2) dev1, dev4, dev3上 cat /tmp/id_rsa.pub >> /home/itlanger/.ssh/authorized_keys (追加方式添加) cat /tmp/id_rsa.pub >> /home/itlanger/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (比较重要,这样就不用在启动dev3的NameNode和DataNode时输入密码了,哈哈!) 3) 确保无密码登录: ssh dev1; ssh dev4; ssh dev33. 确保统一的java环境 JAVA_HOME=/usr/java/jdk1.6.0_234. Hadoop配置:(三台机器一样做) 下载源代码和解压,这个就不说了。 修改文件 $HADOOP_HOME/conf/hadoop-env.sh export JAVA_HOME=/usr/java/jdk1.6.0_23 修改文件 $HADOOP_HOME/conf/core-site.xml 设置文件系统为HDFS文件系统,并指定访问host和port <configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://dev3:9000</value>
</property>
</configuration>
修改文件 $HADOOP_HOME/conf/hdfs-site.xml 设置HDFS文件系统NameNode和DataNode的本地存储位置,并指定复制份数 <configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/itlanger/project/hadoop/hadoop_filesystem/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/itlanger/project/hadoop/hadoop_filesystem/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
5. 修改文件 $HADOOP_HOME/conf/slaves (仅在dev3上配置) localhost #这里也可以写为dev3 dev1 dev4 同理conf/master文件也可以写为: dev3, 效果和localhost没有区别 6. 格式化NameNode文件系统: (dev3, dev1, dev4) $HADOOP_HOME/bin/hadoop namenode -format7. 启动Hadoop: (dev3) $HADOOP_HOME/bin/start-dfs.sh #如果要启动mapreduce则可以用start-all.sh 使用浏览器通过“HDFS Web UI”查看HDFS状态: http://dev3:50070/ #(需要在本机中的/etc/hosts中也配置dev3, dev1, dev4的解析) 注:在Cluster Summary中,可以看到Live Nodes数目为2,HDFS成功启动;浏览HDFS文件系统,可以看到当前根目录下只存在/tmp文件夹。 在http://dev3:50030/ 中可以看到MapReduce的相关信息(如果是以start-all.sh启动) 8. Hadoop测试 在HDFS文件系统中创建一个目录及新文件夹 /usr/itlanger/input1: $HADOOP_HOME/bin/hadoop fs -mkdir /user/itlanger/input1 将$HADOOP_HOME下的README.txt文件放入HDFS刚刚创建的文件夹中: $HADOOP_HOME/bin/hadoop fs -put README.txt /user/itlanger/input1 再多放几个文件: ./bin/hadoop fs -put docs/*.html /user/itlanger/input1/ 运行wordcount示例 ./bin/hadoop jar hadoop-examples-0.20.2+320.jar wordcount input1 output1 (统计hdfs中/user/itlanger/input1目录中所有文件中的word,结果输出到/user/itlanger/output1目录下) 结果可以在 http://dev3:50030/ 中查看9. 清理hdfs文件、临时文件和日志文件: rm $HADOOP_HOME/filesystem_hadoop/* -rf
rm $HADOOP_HOME/logs/* -rf
rm /tmp/hadoop-$USER/* -rf
阅读(1375) | 评论(0) | 转发(0) |