当前位置:   article > 正文

HADOOP的部署及使用:一、HADOOP搭建

HADOOP的部署及使用:一、HADOOP搭建

Hadoop主要由三部分组成:HDFS(分布式文件系统),MapReduce计算框架以及集中资源调度器。

从这个三个不同的角度,Hadopp将主机分为以下六种角色:

     从HDFS角度出发,主机被分为:Namenode和Datanode,对应守护进程(Namenode和Datanode以及SecondaryNameNode)

    从Mapreduce角度出发,主机被分为:JobTracker和TaskTracker,对应守护进程(JobTracker和TaskTracker)

   从集中资源调度器角度出发,主机被分为:Master和Slave,对应守护进程(ResourceManager和NodeManager)

Hadoop有三种搭建模式,分别为:Local模式、伪分布式模式、完全分布式模式。

以下安装以hadoop3.0.3为例:

 一、Local模式

      Local模式是默认的模式,无需启动任何守护进程,每个程序都在单独的JVM中运行,适用于开发阶段,主要用来调试MapReduce程序逻辑正确性。

       采用本地文件系统,而不是分布式文件系统。

       使用Local模式不需要过多的配置,只需要安装相应版本的JDK和HADOOP,设置环境变量JAVA_HOME和HADOOP_HOME,

       就可以使用了,使用hadoop -version验证安装是否成功。

 配置过程如下:

  1. #1.首先安装JDK(hadoop3.0以上要求运行在jdk1.8及以上环境)
  2. #略
  3. #2.安装Hadoop
  4. tar -zxvf /home/hadoop-3.0.3.tar.gz
  5. mkdir -p /usr/local/hadoop
  6. cp -r /home/hadoop-3.0.3.tar.gz/* /usr/local/hadoop/
  7. #3.设置环境变量
  8. vim /etc/profile
  9. #增加如下内容
  10. export JAVA_HOME=/usr/local/java
  11. export CLASSPATH=&JAVA_HOME/lib
  12. export HADOOP_HOME=/usr/local/hadoop
  13. export PATH=$PATH:$JAVA_HOME:$CLASSPATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. test:
  2. cd /usr/local/hadoop/
  3. mkdir input
  4. cp etc/hadoop/*.xml input/
  5. bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep input output 'dfs[a-z.]+'
  6. jps
  7. result:
  8. 6163 RunJar
  9. 6430 Jps

 

 

二、伪分布式模式

      伪分布式模式使用一台主机模拟一个集群,在这个集群中,该主机既是Master又是Slave,既是JobTracker,又是TaskTracker,既是Namenode,又是Datanode.因此需要启动相应的守护进程,且是相互独立的JAVA进程。

    在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。

   在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。

配置过程如下:

在本地模式的基础上:

  1. 1.配置本地服务器SSH免密码登陆(Hadoop守护进程间通过SSH协议互相访问)
  2. 2.修改$HADOOP_HOME/etc/hadoop/hadoop_env.sh
  3. export JAVA_HOME=/usr/local/java
  4. export HADOOP_HOME=/usr/local/hadoop
  5. export HADOOP_CONF_DIR=/usr/local/hadoop
  6. 3.修改$HADOOP_HOME/etc/hadoop/core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)
  7. #指定hdfs访问地址
  8. <property>
  9. <name>fs.defaultFS</name>
  10. <value>hdfs://localhost:9000</value>
  11. </property>
  12. 4.修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml(配置HDFS集群的工作属性)
  13. #指定文件备份份数
  14. <property>
  15. <name>dfs.replication</name>
  16. <value>1</value>
  17. </property>
  18. 5.修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml(配置MapReduce集群的属性)
  19. #指定使用yarn资源调度
  20. <property>
  21. <name>mapreduce.framework.name</name>
  22. <value>yarn</value>
  23. </property>
  24. 6.修改$HADOOP_HOME/etc/hadoop/yarn-site.xml
  25. <property>
  26. <name>yarn.nodemanager.aux-services</name>
  27. <value>mapreduce_shuffle</value>
  28. </property>
  29. <property>
  30. <name>yarn.nodemanager.env-whitelist</name>
  31. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  32. </property>

另由于默认的

 HDFS_DATANODE_USER=hdfs
 HDFS_DATANODE_SECURE_USER=hdfs
 HDFS_NAMENODE_USER=hdfs
 HDFS_SECONDARYNAMENODE_USER=hdfs

YARN_RESOURCEMANAGER_USER=yarn
 YARN_NODEMANAGER_USER=yarn

我们还需要在启动脚本:start-dfs.sh、stop-dfs.sh、start-yarn.sh和stop-yarn.sh中将以上变量设置为自己创建的Linux用户(该用户需要有访问Hadoop文件的所有权限)

 

由于伪分布式模式使用的是分布式文件系统,因此需要格式化namenode;

执行:  hadoop name   -format

开始hdfs:

执行: start-dfs.sh

result:

 

访问:http://lcoalhost:9870 (HDFS WEB界面,3.0以前的端口号为50070)

访问:http://localhost:8088

开启:yarn:

执行:start-yarn.sh

result:

运行Hadoop  Mapreduce example

执行:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep /input /output 'dfs[a-z.]+'


result:

三、完全分布式模式

Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。

在所有的主机上安装JDK和Hadoop,组成相互连通的网络。

配置如下:

准备三台服务器:

 10.10.10.1(master)、10.10.10.2(slave01)、10.10.10.3(slave02)

 1.分别修改三台服务器:/etc/hosts,加入:

10.10.10.1  master master

10.10.10.2  slave01 slave01

10.10.10.3 slave02 slave02

2.配置三台服务器相互之间SSH免密码登陆

3.在master上安装JDK、HADOPP配置环境变量

  1. export JAVA_HOME=/usr/local/java
  2. export CLASSPATH=$JAVA_HOME/lib
  3. export HADOOP_HOME=/usr/local/hadoop
  4. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  5. export PATH=$PATH:$JAVA_HOME:$CLASSPATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.修改$HADOOP_CONF_DIR目录下文件

  1. 1.修改$HADOOP_CONF_DIR/core-site.xml
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. #hadoop临时文件在本地文件系统存放的路径
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/usr/local/hadoop/tmp</value>
  10. </property>
  11. <property>
  12. <name>io.file.buffer.size</name>
  13. <value>131072</value>
  14. </property>
  15. 2.修改$HADOOP_CONF_DIR/hdfs-site.xml
  16. <property>
  17. <name>dfs.replication</name>
  18. <value>2</value>
  19. </property>
  20. #在程序中访问hdfs,必须要关闭权限检查
  21. <property>
  22. <name>dfs.permissions.enabled</name>
  23. <value>false</value>
  24. </property>
  25. #namenode数据在本地存放的路径
  26. <property>
  27. <name>dfs.namenode.name.dir</name>
  28. <value>/usr/local/hadoop/hdfs/name</value>
  29. </property>
  30. #datanode数据在本地存放的路径
  31. <property>
  32. <name>dfs.datanode.data.dir</name>
  33. <value>/usr/local/hadoop/hdfs/data</value>
  34. </property>
  35. #namenode节点地址
  36. <property>
  37. <name>dfs.namenode.http-address</name>
  38. <value>master:50070</value>
  39. </property>
  40. #secondary namenode地址
  41. <property>
  42. <name>dfs.namenode.secondary.http-address</name>
  43. <value>slave01:50090</value>
  44. </property>
  45. #开启hdfs web ui
  46. <property>
  47. <name>dfs.webhdfs.enabled</name>
  48. <value>true</value>
  49. </property>
  50. 3.修改$HADOOP_CONF_DIR/mapred-site.xml文件
  51. #使用yarn集群管理器
  52. <property>
  53. <name>mapreduce.framework.name</name>
  54. <value>yarn</value>
  55. </property>
  56. #指定jobhistory访问地址
  57. <property>
  58. <name>mapreduce.jobhistory.address</name>
  59. <value>master:10020</value>
  60. </property>
  61. #指定Jobhistory web 地址
  62. <property>
  63. <name>mapreduce.jobhistory.webapp.address</name>
  64. <value>master:19888</value>
  65. </property>
  66. #指定访问的jar包
  67. <property>
  68. <name>mapreduce.application.classpath</name>
  69. <value>/usr/local/hadoop/etc/hadoop,
  70. /usr/local/hadoop/share/hadoop/common/*,
  71. /usr/local/hadoop/share/hadoop/common/lib/*,
  72. /usr/local/hadoop/share/hadoop/hdfs/*,
  73. /usr/local/hadoop/share/hadoop/hdfs/lib/*,
  74. /usr/local/hadoop/share/hadoop/mapreduce/*,
  75. /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
  76. /usr/local/hadoop/share/hadoop/yarn/*,
  77. /usr/local/hadoop/share/hadoop/yarn/lib/*</value>
  78. </property>
  79. 4.修改yarn-site.xml文件
  80. <property>
  81. <name>yarn.nodemanager.aux-services</name>
  82. <value>mapreduce_shuffle</value>
  83. </property>
  84. <property>
  85. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  86. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  87. </property>
  88. <property>
  89. <name>yarn.resourcemanager.address</name>
  90. <value>master:8032</value>
  91. </property>
  92. <property>
  93. <name>yarn.resourcemanager.scheduler.address</name>
  94. <value>master:8030</value>
  95. </property>
  96. <property>
  97. <name>yarn.resourcemanager.resource-tracker.address</name>
  98. <value>master:8031</value>
  99. </property>
  100. <property>
  101. <name>yarn.resourcemanager.admin.address</name>
  102. <value>master:8033</value>
  103. </property>
  104. <property>
  105. <name>yarn.resourcemanager.webapp.address</name>
  106. <value>master:8088</value>
  107. </property>
  108. 5.修改$HADOOP_CONF_DIR/workers文件
  109. slave01
  110. slave02

 5.修改$HADOOP_HOME/sbin 下启动脚本

start-dfs.sh /stop-dfs.sh

  1. HDFS_DATANODE_USER=root
  2. HDFS_DATANODE_SECURE_USER=root
  3. HDFS_NAMENODE_USER=root
  4. HDFS_SECONDARYNAMENODE_USER=root

start-yarn.sh / stop-yarn.sh

  1. YARN_RESOURCEMANAGER_USER=root
  2. YARN_NODEMANAGER_USER=root

将jdk,hadoop安装文件发送到其他两台服务器的相同目录上,并增加环境变量

  1. scp -r /usr/local/java root@slave01:/usr/local/
  2. scp -r /usr/local/hadoop root@slave2:/usr/local/hadoop

格式化文件系统,在master上执行

hadoop namenode  -format

执行 start-all.sh 启动集群

验证:

在master上执行 jsp,结果如下:

在slave01上执行jps,结果如下:

在slave02上执行jps,结果如下:

搭建完成

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/634351
推荐阅读
相关标签
  

闽ICP备14008679号