史上最详细的Hadoop环境搭建(五)之二

5、 配置hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <!—配置三台NameNode >
  4. <name>dfs.nameservices</name>
  5. <value>ns1,ns2,ns3</value>
  6. </property>
  7. <property>
  8. <!—第一台NameNode的机器名和rpc端口,指定了NameNode和DataNode通讯用的端口号 >
  9. <name>dfs.namenode.rpc-address.ns1</name>
  10. </property>
  11. <property>
  12. <!—第一台NameNode的机器名和rpc端口,备用端口号 >
  13. <name>dfs.namenode.serviceerpc-address.ns1</name>
  14. </property>
  15. <property>
  16. <
    !—第一台NameNode的http页面地址和端口号 >
  17. <name>dfs.namenode.http-address.ns1</name>
  18. </property>
  19. <property>
  20. <!—第一台NameNode的https页面地址和端口号 >
  21. <name>dfs.namenode.https-address.ns1</name>
  22. </property>
  23. <property>
  24. <name>dfs.namenode.rpc-address.ns2</name>
  25. </property>
  26. <property>
  27. <name>dfs.namenode.serviceerpc-address.ns2</name>
  28. </property>
  29. <property>
  30. <name>dfs.namenode.http-address.ns2</name>
  31. </property>
  32. <property>
  33. <name>dfs.namenode.https-address.ns2</name>
  34. </property>
  35. <property>
  36. <name>dfs.namenode.rpc-address.ns3</name>
  37. </property>
  38. <property>
  39. <name>dfs.namenode.serviceerpc-address.ns3</name>
  40. </property>
  41. <property>
  42. <name>dfs.namenode.http-address.ns3</name>
  43. </property>
  44. <property>
  45. <name>dfs.namenode.https-address.ns3</name>
  46. </property>
  47. </configuration>

6、 配置core-site.xml

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/opt/modules/hadoopha/hadoop-2.5.0/data/tmp</value>
  5. </property>
  6. </configuration>

hadoop.tmp.dir设置hadoop临时目录地址,默认时,NameNode和DataNode的数据存在这个路径下。

7、 配置slaves文件

8、 配置yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.hostname</name>
  8. </property>
  9. <property>
  10. <name>yarn.log-aggregation-enable</name>
  11. <value>true</value>
  12. </property>
  13. <property>
  14. <name>yarn.log-aggregation.retain-seconds</name>
  15. <value>106800</value>
  16. </property>
  17. </configuration>

9、 分发到其他节点

分发之前先将share/doc目录删除,这个目录中是帮助文件,并且很大,可以删除。

  1. [hadoop@bigdata-senior01 hadoop-2.5.0]$ scp -r /opt/modules/ /opt/modules/hadoopfederation bigdata-senior02.chybinmy.com:/opt/modules
  2. [hadoop@bigdata-senior01 hadoop-2.5.0]$ scp -r /opt/modules/hadoopfederation bigdata-senior03.chybinmy.com:/opt/modules

10、 格式化NameNode

在第一台上进行NameNode格式化。

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs namenode -format -clusterId hadoop-federation-clusterId

这里一定要指定一个集群ID,使得多个NameNode的集群ID是一样的,因为这三个NameNode在同一个集群中,这里集群ID为hadoop-federation-clusterId。

在第二台NameNode上。

[hadoop@bigdata-senior02 hadoop-2.5.0]$ bin/hdfs namenode -format -clusterId hadoop-federation-clusterId

在第二台NameNode上。

[hadoop@bigdata-senior03 hadoop-2.5.0]$ bin/hdfs namenode -format -clusterId hadoop-federation-clusterId

11、 启动NameNode

在第一台、第二台、第三台机器上启动NameNode:

  1. [hadoop@bigdata-senior01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
  2. [hadoop@bigdata-senior02 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
  3. [hadoop@bigdata-senior03 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode

启动后,用jps命令查看是否已经启动成功。

查看HDFS Web页面,此时三个NameNode都是standby状态。

史上最详细的Hadoop环境搭建(五)之二

史上最详细的Hadoop环境搭建(五)之二

史上最详细的Hadoop环境搭建(五)之二

12、 启动DataNode

  1. [hadoop@bigdata-senior01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
  2. [hadoop@bigdata-senior02 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
  3. [hadoop@bigdata-senior03 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode

启动后,用jps命令确认DataNode进程已经启动成功。

四十九、测试HDFS Federation

1、 修改core-site.xml

在bigdata-senior01机器上,修改core-site.xml文件,指定连接的NameNode是第一台NameNode。

[[email protected] hadoop-2.5.0]$ vim etc/hadoop/core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://bigdata-senior01.chybinmy.com:8020</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/opt/modules/hadoopfederation/hadoop-2.5.0/data/tmp</value>
  9. </property>
  10. </configuration>

2、 在bigdate-senior01上传一个文件到HDFS

  1. [hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -mkdir /tmp
  2. [hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -put ~/shuffle_daily.sh /tmp/shuffle_daily.sh

3、 查看HDFS文件

史上最详细的Hadoop环境搭建(五)之二

可以看到,刚才的文件只上传到了bigdate-senior01机器上的NameNode上了,并没有上传到其他的NameNode上去。

这样,在HDFS的客户端,可以指定要上传到哪个NameNode上,从而来达到了划分NameNode的目的。

后记

这篇文章的操作步骤并不是工作中标准的操作流程,如果在成百上千的机器全部这样安装会被累死,希望读者可以通过文章中一步步地安装,从而初步了解到Hadoop的组成部分,协助过程等,这对于Hadoop的深入使用有很大的帮助。