当前位置:   article > 正文

Hadoop安装部署

hadoop安装部署

目录

HDFS安装部署

hadoop-env.sh配置

core-site.xml配置

hdfs-site.xml配置

工作节点配置

目录分发

环境变量配置

初始化HDFS

YARN安装部署

yarn-env.sh配置

yarn-site.xml配置

mapred-env.sh配置

mapred-site.xml配置

启动YARN集群


Hadoop作为大数据的基石,提供数据存储能力(HDFS)、数据分析编程框架(MapReduce)、计算资源管理框架(YARN),允许使用者在普通的Linux服务器上创建大规模的分布式文件系统,HBase、Hive等大数据软件底层都依赖Hadoop。

Hadoop集群一般采用高可用的方式部署,即两个NameNode和两个Resourcemanager,构成主备结构,当主进程异常时会自动切换到备进程上,保证服务的正常运行,根据经验,比较常见的Hadoop版本为2.6.x、2.8.x、3.2.x,目前大部分公司还是Hadoop 2的大版本,但是也有越来越多的公司转移到Hadoop 3版本,本次安装部署选择Apache Hadoop 3.2.2版本,默认以root用户进行操作。

详细部署规划如下表所示:

master

backup

worker1

worker2

worker3

NameNode

JournalNode

DataNode

DFSZKFailoverController

ResourceManager

NodeManager

JobHistoryServer

HDFS安装部署

Apache Hadoop 3.2.2的安装包下载或上传至其中一台机器上,此处选择master机器,解压至合适的目录,并以解压后得到的目录作为HADOOP_HOME目录,完成所有的配置完成后将HADOOP_HOME目录复制到其他所有机器上。

hadoop-env.sh配置

修改${HADOOP_HOME}/etc/hadoop/hadoop-env.sh文件,修改内容如下:

  1. # Hadoop使用的Java配置
  2. export JAVA_HOME=/opt/jdk1.8.0_301
  3. # Hadoop安装目录配置
  4. export HADOOP_HOME=/opt/hadoop-3.2.2/
  5. # Hadoop日志目录配置
  6. export HADOOP_LOG_DIR=/data/hadoop/logs
  7. # Hadoop进程默认的最大和最小内存配置,单位:MB
  8. export HADOOP_HEAPSIZE_MAX=2048
  9. export HADOOP_HEAPSIZE_MIN=1024
  10. # SSH端口配置,如果修改了默认的SSH,需要配置该项
  11. export HADOOP_SSH_OPTS="-p 22"
  12. # Hadoop进程号文件目录配置
  13. export HADOOP_PID_DIR=/data/hadoop/pids
  14. # NameNode的JVM参数配置
  15. export HDFS_NAMENODE_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8010 -Xms4096m -Xmx4096m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 $HDFS_NAMENODE_OPTS"
  16. # DataNode的JVM参数配置
  17. export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS -Xms2048m -Xmx4096m $HDFS_DATANODE_OPTS"

core-site.xml配置

修改${HADOOP_HOME}/etc/hadoop/core-site.xml文件,修改内容如下:

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://hc-hdfs</value>
  5. <discription>参数fs.default.name已经废弃</discription>
  6. </property>
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/data/hdfs/tmp/${user.name}</value>
  10. <discription>Hadoop临时目录配置,该配置非常重要</discription>
  11. </property>
  12. <property>
  13. <name>ha.zookeeper.quorum</name>
  14. <value>master:2181,backup:2181,worker1:2181</value>
  15. <discription>Hadoop集群高可用使用的Zookeeper集群</discription>
  16. </property>
  17. <property>
  18. <name>hadoop.http.staticuser.user</name>
  19. <value>root</value>
  20. <discription>Hadoop页面的静态用户</discription>
  21. </property>
  22. <!-- 使用Hive Beeline时需要配置以下两项 -->
  23. <property>
  24. <name>hadoop.proxyuser.root.hosts</name>
  25. <value>*</value>
  26. <discription>允许通过httpfs的方式访问HDFS的主机,*表示任意</discription>
  27. </property>
  28. <property>
  29. <name>hadoop.proxyuser.root.groups</name>
  30. <value>*</value>
  31. <discription>允许通过httpfs的方式访问HDFS的用户组,*表示任意</discription>
  32. </property>
  33. </configuration>

hdfs-site.xml配置

修改${HADOOP_HOME}/etc/hadoop/hdfs-site.xml文件,修改内容如下:

  1. <configuration>
  2. <!-- 基础配置 -->
  3. <property>
  4. <name>dfs.namenode.name.dir</name>
  5. <value>/data/hdfs/metadata</value>
  6. <discription>NameNode元数据目录列表,逗号分隔</discription>
  7. </property>
  8. <property>
  9. <name>dfs.datanode.data.dir</name>
  10. <value>/data/hadoop/data1/data/hadoop/data2</value>
  11. <discription>DataNode数据目录列表,逗号分隔</discription>
  12. </property>
  13. <property>
  14. <name>dfs.journalnode.edits.dir</name>
  15. <value>/data/hdfs/editlogs</value>
  16. <discription>JournalNode数据目录</discription>
  17. </property>
  18. <property>
  19. <name>dfs.datanode.du.reserved</name>
  20. <value>53687091200</value>
  21. <discription>磁盘预留大小,根据DataNode数据盘大小来设置,单位:Byte</discription>
  22. </property>
  23. <property>
  24. <name>dfs.replication</name>
  25. <value>2</value>
  26. <discription>数据块的副本数</discription>
  27. </property>
  28. <!-- HDFS短路读配置 -->
  29. <property>
  30. <name>dfs.client.read.shortcircuit</name>
  31. <value>true</value>
  32. <discription>开启HDFS短路读</discription>
  33. </property>
  34. <property>
  35. <name>dfs.domain.socket.path</name>
  36. <value>/var/lib/hadoop-hdfs/dn_socket</value>
  37. <discription>用于实现短路读的socket文件生成路径</discription>
  38. </property>
  39. <property>
  40. <name>dfs.datanode.data.dir.perm</name>
  41. <value>700</value>
  42. <discription>DataNode使用使用目录的权限</discription>
  43. </property>
  44. <property>
  45. <name>dfs.block.local-path-access.user</name>
  46. <value>root</value>
  47. <discription>允许访问dfs.domain.socket.path目录的用户列表,逗号分隔</discription>
  48. </property>
  49. <!-- HDFS高可用配置 -->
  50. <property>
  51. <name>dfs.nameservices</name>
  52. <value>hc-hdfs</value>
  53. <discription>HDFS文件系统的逻辑名称</discription>
  54. </property>
  55. <property>
  56. <name>dfs.ha.namenodes.hc-hdfs</name>
  57. <value>nn1,nn2</value>
  58. <discription>在dfs.nameservices中的NameNode节点列表</discription>
  59. </property>
  60. <property>
  61. <name>dfs.namenode.rpc-address.hc-hdfs.nn1</name>
  62. <value>master:8020</value>
  63. <discription>nn1节点上客户端请求的RPC地址</discription>
  64. </property>
  65. <property>
  66. <name>dfs.namenode.rpc-address.hc-hdfs.nn2</name>
  67. <value>backup:8020</value>
  68. <discription>nn2节点上客户端请求的RPC地址</discription>
  69. </property>
  70. <property>
  71. <name>dfs.namenode.http-address.hc-hdfs.nn1</name>
  72. <value>master:50070</value>
  73. <discription>nn1节点上的HDFS网页访问地址</discription>
  74. </property>
  75. <property>
  76. <name>dfs.namenode.http-address.hc-hdfs.nn2</name>
  77. <value>backup:50070</value>
  78. <discription>nn2节点上的HDFS网页访问地址</discription>
  79. </property>
  80. <property>
  81. <name>dfs.namenode.shared.edits.dir</name>
  82. <value>qjournal://master:8485;backup:8485;worker1:8485/hc-hdfs</value>
  83. <discription>共享元数据编辑日志存放的目录</discription>
  84. </property>
  85. <property>
  86. <name>dfs.ha.automatic-failover.enabled</name>
  87. <value>true</value>
  88. <discription>自动故障转移,需要在core-site.xml中配置ha.zookeeper.quorum参数</discription>
  89. </property>
  90. <property>
  91. <name>dfs.client.failover.proxy.provider.hc-hdfs</name>
  92. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  93. <discription>开启高可用的情况下,客户端访问Active NameNode的代理类</discription>
  94. </property>
  95. <property>
  96. <name>dfs.ha.fencing.methods</name>
  97. <value>sshfence</value>
  98. <discription>防止脑裂的方法</discription>
  99. </property>
  100. <property>
  101. <name>dfs.ha.fencing.ssh.private-key-files</name>
  102. <value>/root/.ssh/id_rsa</value>
  103. <discription>使用sshfence时ssh私钥的路径</discription>
  104. </property>
  105. <property>
  106. <name>ha.zookeeper.session-timeout.ms</name>
  107. <value>60000</value>
  108. <discription>高可用依赖的Zookeeper集群的会话超时时间,单位:ms</discription>
  109. </property>
  110. </configuration>

工作节点配置

修改${HADOOP_HOME}/etc/hadoop/workers文件,在其中添加工作节点的IP,每个IP占用一行,修改内容如下:

  1. ${worker1 ip or hostname}
  2. ${worker2 ip or hostname}
  3. ${worker3 ip or hostname}

目录分发

至此,HDFS的配置已经完成,可以将HADOOP_HOME目录复制到其他机器上,命令如下:

  1. # 其他机器上的HADOOP_HOME目录最好与当前机器保持一致,方便管理
  2. scp -r ${HADOOP_HOME path} ${other node}:${HADOOP_HOME path}

环境变量配置

每一台部署HDFS的机器上配置相关的环境变量,命令如下:

  1. # 为了避免覆盖环境变量文件,不建议直接分发环境变量文件
  2. # 在环境变量文件/etc/profile中增加如下内容
  3. export HADOOP_HOME=/opt/hadoop-3.2.2
  4. export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
  5. export HADOOP_CLASSPATH=`hadoop classpath`
  6. # 保存退出后,执行以下命令使环境变量生效
  7. source /etc/profile

初始化HDFS

HDFS在首次启动时需要进行初始化操作,初始化只能执行一次,多次执行会导致已存在数据丢失,具体步骤如下:

首先需要在zookeeper中注册HDFS节点,命令如下:

hdfs zkfc -formatZK

以上命令执行成功时如下图所示:

在master、backup、worker1机器上启动JournalNode进程,命令如下:

hdfs --daemon start journalnode

在任意NameNode机器上执行NameNode初始化操作,此处选择master机器,命令如下:

hdfs namenode -format

以上命令执行成功时如下图所示:

在这个成功初始化的NameNode机器上启动NameNode进程,命令如下:

hdfs --daemon start namenode

在backup机器上拷贝maser机器上已经初始化好的NameNode的元数据,命令如下:

hdfs namenode -bootstrapStandby

以上命令执行成功时如下图所示:

在backup机器上启动NameNode进程,命令如下:

hdfs --daemon start namenode

在master和backup机器上启动DFSZKFailoverController进程,使NameNode完成选举,命令如下:

hdfs --daemon start zkfc

在worker1、worker2、worker3机器上启动DataNode进程,命令如下:

hdfs --daemon start datanode

至此,HDFS的所有相关进程启动完毕,可以对集群进行简单的测试,命令如下:

  1. # 检查NameNode状态
  2. # 正常情况下两个NameNode分别有两种状态:active,standby
  3. # active状态:对外提供服务
  4. # standby状态:同步Active NameNode的元数据
  5. hdfs haadmin -getServiceState nn1
  6. hdfs haadmin -getServiceState nn2
  7. # 查看HDFS文件系统根目录
  8. hdfs dfs -ls /
  9. # 在HDFS的根目录下创建test目录,并上传文件到test目录中
  10. hdfs dfs -mkdir /test
  11. hdfs dfs -put ${local file} /test
  12. # 从HDFS上下载文件到本地
  13. hdfs dfs -get ${hdfs file path} ${local path}

在日常使用中,一般使用start-dfs.sh和stop-dfs.sh两个脚本来启停HDFS集群进程,但是当使用root用户执行时会报错,需要${HADOOP_HOME}/sbin目录下的start-dfs.sh和stop-dfs.sh脚本,命令如下:

  1. # 在脚本开头添加以下内容,指定进程的启动用户
  2. HDFS_NAMENODE_USER=root
  3. HDFS_DATANODE_USER=root
  4. HDFS_JOURNALNODE_USER=root
  5. HDFS_ZKFC_USER=root
  6. # 保存退出后,将修改的脚本分发到其他机器上
  7. scp ${HADOOP_HOME}/sbin/st*-dfs.sh ${other ip}:${HADOOP_HOME}/sbin

YARN安装部署

yarn-env.sh配置

在master机器上修改${HADOOP_HOME}/etc/hadoop/yarn-env.sh文件,增加或修改以下内容,命令如下:

  1. # 配置YARN进程日志的目录
  2. export YARN_LOG_DIR=/data/yarn/logs
  3. # 配置YARN进程pid文件保存目录
  4. export YARN_PID_DIR=/data/yarn/pids
  5. # 配置ResourceManager的JVM内存
  6. export YARN_RESOURCEMANAGER_OPTS="-Xms4096m -Xmx4096m $YARN_RESOURCEMANAGER_OPTS"
  7. # 配置NodeManager的JVM内存
  8. export YARN_NODEMANAGER_OPTS="-Xms2048m -Xmx2048m $YARN_NODEMANAGER_OPTS"
  9. # 保存退出后,将yarn-env.sh文件分发到其他机器上
  10. scp ${HADOOP_HOME}/etc/hadoop/yarn-env.sh ${other ip}:${HADOOP_HOME}/etc/hadoop/

yarn-site.xml配置

在master机器上修改${HADOOP_HOME}/etc/hadoop/yarn-site.xml文件,增加或修改以下内容:

  1. <configuration>
  2. <!-- ResourceManager配置项 -->
  3. <property>
  4. <name>yarn.resourcemanager.ha.enabled</name>
  5. <value>true</value>
  6. <description>开启RM高可用</description>
  7. </property>
  8. <property>
  9. <name>yarn.resourcemanager.zk-address</name>
  10. <value>master:2181,backup:2181,worker1:2181</value>
  11. <description>高可用使用的ZK集群,该参数已废弃,不推荐使用</description>
  12. </property>
  13. <property>
  14. <name>hadoop.zk.address</name>
  15. <value>master:2181,backup:2181,worker1:2181</value>
  16. <description>高可用使用的ZK集群</description>
  17. </property>
  18. <property>
  19. <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
  20. <value>true</value>
  21. <description>开启自动故障转移,默认情况下,仅在开启高可用时启用</description>
  22. </property>
  23. <property>
  24. <name>yarn.resourcemanager.recovery.enabled</name>
  25. <value>true</value>
  26. <description>启用任务自动恢复</description>
  27. </property>
  28. <property>
  29. <name>yarn.resourcemanager.store.class</name>
  30. <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  31. <description>指定任务状态存储的类,启用任务自动恢复时需要配置该参数</description>
  32. </property>
  33. <property>
  34. <name>yarn.resourcemanager.zk-state-store.parent-path</name>
  35. <value>/rmstore</value>
  36. <description>RM在ZK中的存储节点</description>
  37. </property>
  38. <property>
  39. <name>yarn.resourcemanager.cluster-id</name>
  40. <value>yarncluster</value>
  41. <description>集群名称</description>
  42. </property>
  43. <property>
  44. <name>yarn.resourcemanager.ha.rm-ids</name>
  45. <value>rm1,rm2</value>
  46. <description>参与高可用的RM的别称</description>
  47. </property>
  48. <property>
  49. <name>yarn.resourcemanager.hostname.rm1</name>
  50. <value>master</value>
  51. <description>指定别称rm1对应的RM节点主机名</description>
  52. </property>
  53. <property>
  54. <name>yarn.resourcemanager.hostname.rm2</name>
  55. <value>backup</value>
  56. <description>指定别称rm2对应的RM节点主机名</description>
  57. </property>
  58. <property>
  59. <name>yarn.resourcemanager.webapp.address.rm1</name>
  60. <value>master:8088</value>
  61. <description>指定别称rm1对应的Yarn web页面地址</description>
  62. </property>
  63. <property>
  64. <name>yarn.resourcemanager.webapp.address.rm2</name>
  65. <value>backup:8088</value>
  66. <description>指定别称rm2对应的Yarn web页面地址</description>
  67. </property>
  68. <!-- NodeManger配置项 -->
  69. <property>
  70. <name>yarn.nodemanager.aux-services</name>
  71. <value>mapreduce_shuffle,spark_shuffle</value>
  72. <description>辅助服务,mapreduce_shuffle用于运行MR,spark_shuffle用于支持spark动态资源管理</description>
  73. </property>
  74. <property>
  75. <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
  76. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  77. <description>指定mapreduce_shuffle使用的类</description>
  78. </property>
  79. <property>
  80. <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
  81. <value>org.apache.spark.network.yarn.YarnShuffleService</value>
  82. <description>指定spark_shuffle的类,需要把jar放到${HADOOP_HOME}/share/hadoop/yarn/lib目录</description>
  83. </property>
  84. <property>
  85. <name>yarn.nodemanager.resource.memory-mb</name>
  86. <value>32768</value>
  87. <description>当前节点可用于计算的内存大小</description>
  88. </property>
  89. <property>
  90. <name>yarn.nodemanager.resource.cpu-vcores</name>
  91. <value>32</value>
  92. <description>当前节点可用于计算的核心数量,非物理CPU核心数,该参数可以大于物理核心数</description>
  93. </property>
  94. <property>
  95. <name>yarn.nodemanager.vmem-pmem-ratio</name>
  96. <value>2.1</value>
  97. <description>虚拟内存和物理内存的比例,一般默认2.1即可</description>
  98. </property>
  99. <property>
  100. <name>yarn.scheduler.maximum-allocation-mb</name>
  101. <value>10240</value>
  102. <description>单个container允许的最大内存</description>
  103. </property>
  104. <property>
  105. <name>yarn.scheduler.maximum-allocation-vcores</name>
  106. <value>10</value>
  107. <description>单个container允许的最大核心数</description>
  108. </property>
  109. <property>
  110. <name>yarn.nodemanager.local-dirs</name>
  111. <value>/data/yarn/local</value>
  112. <description>任务本地数据目录</description>
  113. </property>
  114. <property>
  115. <name>yarn.nodemanager.log-dirs</name>
  116. <value>/data/yarn/log</value>
  117. <description>任务本地日志目录</description>
  118. </property>
  119. <property>
  120. <name>yarn.nodemanager.log.retain-seconds</name>
  121. <value>604800</value>
  122. <description>本地日志保留时间,开启日志聚合时该参数无效</description>
  123. </property>
  124. <!-- 日志聚合配置项 -->
  125. <property>
  126. <name>yarn.log-aggregation-enable</name>
  127. <value>true</value>
  128. <description>开启日志聚合</description>
  129. </property>
  130. <property>
  131. <name>yarn.nodemanager.delete.debug-delay-sec</name>
  132. <value>86400</value>
  133. <description>开启日志聚合后,本地日志删除延迟时间</description>
  134. </property>
  135. <property>
  136. <name>yarn.log-aggregation.retain-seconds</name>
  137. <value>604800</value>
  138. <description>HDFS上日志保留时间</description>
  139. </property>
  140. <property>
  141. <name>yarn.nodemanager.remote-app-log-dir</name>
  142. <value>/yarn/app-logs</value>
  143. <description>HDFS上日志保留目录,实际全路径为:该参数+${user}+子目录</description>
  144. </property>
  145. <property>
  146. <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
  147. <value>logs</value>
  148. <description>日志目录的子目录</description>
  149. </property>
  150. <property>
  151. <name>yarn.log.server.url</name>
  152. <value>http://backup:19888/jobhistory/logs</value>
  153. <description>日志服务器url</description>
  154. </property>
  155. <property>
  156. <name>yarn.application.classpath</name>
  157. <value>
  158. /opt/hadoop-3.2.2/etc/hadoop,
  159. /opt/hadoop-3.2.2/share/hadoop/common/lib/*,
  160. /opt/hadoop-3.2.2/share/hadoop/common/*,
  161. /opt/hadoop-3.2.2/share/hadoop/hdfs,
  162. /opt/hadoop-3.2.2/share/hadoop/hdfs/lib/*,
  163. /opt/hadoop-3.2.2/share/hadoop/hdfs/*,
  164. /opt/hadoop-3.2.2/share/hadoop/mapreduce/lib/*,
  165. /opt/hadoop-3.2.2/share/hadoop/mapreduce/*,
  166. /opt/hadoop-3.2.2/share/hadoop/yarn/*,
  167. /opt/hadoop-3.2.2/share/hadoop/yarn/lib/*
  168. </value>
  169. <description>Yarn任务的classpath</description>
  170. </property>
  171. </configuration>

配置完成后,将该文件分发到其他机器上,命令如下:

scp ${HADOOP_HOME}/etc/hadoop/yarn-site.xml ${other ip}:${HADOOP_HOME}/etc/hadoop

mapred-env.sh配置

在master机器上修改${HADOOP_HOME}/etc/hadoop/mapred-env.sh文件,增加或修改以下内容:

  1. # 历史服务器进程的JVM内存配置
  2. export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1024
  3. # 日志目录配置
  4. export HADOOP_LOG_DIR=/data/yarn/logs
  5. # 进程pid文件目录配置
  6. export HADOOP_PID_DIR=/data/yarn/pids
  7. # 保存退出后,将该文件分发到其他机器上
  8. scp ${HADOOP_HOME}/etc/hadoop/mapred-env.sh ${other ip}:${HADOOP_HOME}/etc/hadoop

mapred-site.xml配置

在master机器上修改${HADOOP_HOME}/etc/hadoop/mapred-site.xml文件,增加或修改以下内容:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. <description>MapReduce运行的资源调度框架</description>
  6. </property>
  7. <property>
  8. <name>mapreduce.jobhistory.address</name>
  9. <value>backup:10020</value>
  10. <description>任务历史服务器通信地址</description>
  11. </property>
  12. <property>
  13. <name>mapreduce.jobhistory.webapp.address</name>
  14. <value>backup:19888</value>
  15. <description>任务历史服务器web页面访问地址</description>
  16. </property>
  17. </configuration>

配置完成后,将该文件分发到其他机器上,命令如下:

scp ${HADOOP_HOME}/etc/hadoop/mapred-site.xml ${other ip}:${HADOOP_HOME}/etc/hadoop

启动YARN集群

在master和backup机器上启动ResourceManager进程,命令如下:

yarn --daemon start resourcemanager

在worker1、worker2、worker3机器上启动NodeManager进程,命令如下:

yarn --daemon start nodemanager

在backup机器上启动JobHistoryServer进程,命令如下:

mapred --daemon start historyserver

在日常使用中,一般使用start-yarn.sh和stop-yarn.sh两个脚本来启停YARN集群进程(JobHistoryServer需要单独启停,该进程属于非必要进程),但是当使用root用户执行时会报错,需要${HADOOP_HOME}/sbin目录下的start-yarn.sh和stop-yarn.sh脚本,命令如下:

  1. # 在脚本开头添加以下内容,指定进程的启动用户
  2. YARN_RESOURCEMANAGER_USER=root
  3. YARN_NODEMANAGER_USER=root
  4. # 保存退出后,将修改的脚本分发到其他机器上
  5. scp ${HADOOP_HOME}/sbin/st*-yarn.sh ${other ip}:${HADOOP_HOME}/sbin

向YARN集群提交MapReduce任务来测试YARN集群,运行Hadoop自带的WordCount测试用例,命令如下:

  1. # 在以下目录找到对应的测试用例jar文件
  2. cd ${HADOOP_HOME}/share/hadoop/mapreduce/
  3. # 运行WordCount任务
  4. # /test是HDFS目录,存放需要分析的文本文件
  5. # /output是HDFS目录,存放结果文件,运行任务时该目录必须不存在,由任务自动创建
  6. hadoop jar hadoop-mapreduce-examples-3.2.2.jar wordcount /test /output

任务运行成功之后如下图所示:

在HDFS查看结果目录,_SUCCESS文件是任务运行状态标志文件,part-r-00000文件中存放统计结果,如下图所示:

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

闽ICP备14008679号