当前位置:Gxlcms > mysql > Hadoop2.0配置

Hadoop2.0配置

时间:2021-07-01 10:21:17 帮助过:25人阅读

最近要做一次关于yarn的分享,于是想搭建一个Hadoop环境。Hadoop 2.0较之前的Hadoop 0.1x变化比较大,折腾了好久了,终于把环境搞好了。我搭建了一个两节点的集群,只配置了一些必须的参数,让集群勉强跑起来。 1、core-site.xml configurationpropertynamef

最近要做一次关于yarn的分享,于是想搭建一个Hadoop环境。Hadoop 2.0较之前的Hadoop 0.1x变化比较大,折腾了好久了,终于把环境搞好了。我搭建了一个两节点的集群,只配置了一些必须的参数,让集群勉强跑起来。

1、core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://10.232.42.91:19000/</value>
  5. </property>
  6. </configuration>

2、mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

3、yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.address</name>
  4. <value>hdfs://10.232.42.91:19001/</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.resource-tracker.address</name>
  8. <value>hdfs://10.232.42.91:19002/</value>
  9. </property>
  10. <property>
  11. <name>yarn.nodemanager.aux-services</name>
  12. <value>mapreduce.shuffle</value>
  13. </property>
  14. <property>
  15. <name>yarn.resourcemanager.scheduler.address</name>
  16. <value>10.232.42.91:8030</value>
  17. </property>
  18. </configuration>

把JAVA_HOME、HADOOP_HOME都设置到.bashrc里面去,然后运行sbin/start-all.sh。使用jps可以看到两个节点下运行的进程如下。

  1. [master] jps
  2. 31318 ResourceManager
  3. 28981 DataNode
  4. 11580 JobHistoryServer
  5. 28858 NameNode
  6. 29155 SecondaryNameNode
  7. 31426 NodeManager
  8. 11016 Jps
  9. [slave] jps
  10. 12592 NodeManager
  11. 11711 DataNode
  12. 17699 Jps

上面这个JobHistoryServer需要单独启动,通过它可以看到每个application的详细日志。启动命令如下。

  1. sbin/mr-jobhistory-daemon.sh start historyserver

打开http://10.232.42.91:8088/cluster/cluster这个地址可以看到cluster的介绍信息。这里再也看不到slot相关的数据了。

Snip20130307_49

万事俱备。放点文本数据到hdfs://10.232.42.91:19000/input这个目录下,运行wordcount看看效果。

  1. $ cd hadoop/share/hadoop/mapreduce
  2. $ hadoop jar hadoop-mapreduce-examples-2.0.3-alpha.jar wordcount hdfs://10.232.42.91:19000/input hdfs://10.232.42.91:19000/output
  3. 13/03/07 21:08:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  4. 13/03/07 21:08:26 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is inited.
  5. 13/03/07 21:08:26 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is started.
  6. 13/03/07 21:08:26 INFO input.FileInputFormat: Total input paths to process : 3
  7. 13/03/07 21:08:26 INFO mapreduce.JobSubmitter: number of splits:3
  8. 13/03/07 21:08:26 WARN conf.Configuration: mapred.jar is deprecated. Instead, use mapreduce.job.jar
  9. 13/03/07 21:08:26 WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
  10. 13/03/07 21:08:26 WARN conf.Configuration: mapreduce.combine.class is deprecated. Instead, use mapreduce.job.combine.class
  11. 13/03/07 21:08:26 WARN conf.Configuration: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
  12. 13/03/07 21:08:26 WARN conf.Configuration: mapred.job.name is deprecated. Instead, use mapreduce.job.name
  13. 13/03/07 21:08:26 WARN conf.Configuration: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
  14. 13/03/07 21:08:26 WARN conf.Configuration: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
  15. 13/03/07 21:08:26 WARN conf.Configuration: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
  16. 13/03/07 21:08:26 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
  17. 13/03/07 21:08:26 WARN conf.Configuration: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
  18. 13/03/07 21:08:26 WARN conf.Configuration: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
  19. 13/03/07 21:08:26 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1362658309553_0019
  20. 13/03/07 21:08:26 INFO client.YarnClientImpl: Submitted application application_1362658309553_0019 to ResourceManager at /10.232.42.91:19001
  21. 13/03/07 21:08:26 INFO mapreduce.Job: The url to track the job: http://search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0019/
  22. 13/03/07 21:08:26 INFO mapreduce.Job: Running job: job_1362658309553_0019
  23. 13/03/07 21:08:33 INFO mapreduce.Job: Job job_1362658309553_0019 running in uber mode : false
  24. 13/03/07 21:08:33 INFO mapreduce.Job: map 0% reduce 0%
  25. 13/03/07 21:08:39 INFO mapreduce.Job: map 100% reduce 0%
  26. 13/03/07 21:08:44 INFO mapreduce.Job: map 100% reduce 100%
  27. 13/03/07 21:08:44 INFO mapreduce.Job: Job job_1362658309553_0019 completed successfully
  28. 13/03/07 21:08:44 INFO mapreduce.Job: Counters: 43
  29. File System Counters
  30. FILE: Number of bytes read=12698
  31. FILE: Number of bytes written=312593
  32. FILE: Number of read operations=0
  33. FILE: Number of large read operations=0
  34. FILE: Number of write operations=0
  35. HDFS: Number of bytes read=16947
  36. HDFS: Number of bytes written=8739
  37. HDFS: Number of read operations=12
  38. HDFS: Number of large read operations=0
  39. HDFS: Number of write operations=2
  40. Job Counters
  41. Launched map tasks=3
  42. Launched reduce tasks=1
  43. Rack-local map tasks=3
  44. Total time spent by all maps in occupied slots (ms)=10750
  45. Total time spent by all reduces in occupied slots (ms)=4221
  46. Map-Reduce Framework
  47. Map input records=317
  48. Map output records=2324
  49. Map output bytes=24586
  50. Map output materialized bytes=12710
  51. Input split bytes=316
  52. Combine input records=2324
  53. Combine output records=885
  54. Reduce input groups=828
  55. Reduce shuffle bytes=12710
  56. Reduce input records=885
  57. Reduce output records=828
  58. Spilled Records=1770
  59. Shuffled Maps =3
  60. Failed Shuffles=0
  61. Merged Map outputs=3
  62. GC time elapsed (ms)=376
  63. CPU time spent (ms)=4480
  64. Physical memory (bytes) snapshot=557428736
  65. Virtual memory (bytes) snapshot=2105122816
  66. Total committed heap usage (bytes)=254607360
  67. Shuffle Errors
  68. BAD_ID=0
  69. CONNECTION=0
  70. IO_ERROR=0
  71. WRONG_LENGTH=0
  72. WRONG_MAP=0
  73. WRONG_REDUCE=0
  74. File Input Format Counters
  75. Bytes Read=16631
  76. File Output Format Counters
  77. Bytes Written=8739

接下来玩玩yarn吧。Hadoop官方文档那篇WritingYarnApplications太让人蛋碎了,好在我领悟到distributedshell就是使用yarn编写的。要研究yarn的话,直接去Hadoop source里面找相应的代码研究即可。

  1. $ hadoop jar hadoop-yarn-applications-distributedshell-2.0.3-alpha.jar --jar hadoop-yarn-applications-distributedshell-2.0.3-alpha.jar org.apache.hadoop.yarn.applications.distributedshell.Client --shell_command uname --shell_args '-a'
  2. 13/03/07 21:42:44 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is inited.
  3. 13/03/07 21:42:44 INFO distributedshell.Client: Initializing Client
  4. 13/03/07 21:42:44 INFO distributedshell.Client: Running Client
  5. 13/03/07 21:42:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  6. 13/03/07 21:42:44 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.YarnClientImpl is started.
  7. 13/03/07 21:42:44 INFO distributedshell.Client: Got Cluster metric info from ASM, numNodeManagers=2
  8. 13/03/07 21:42:44 INFO distributedshell.Client: Got Cluster node info from ASM
  9. 13/03/07 21:42:44 INFO distributedshell.Client: Got node report from ASM for, nodeId=search042091.sqa.cm4:39557, nodeAddresssearch042091.sqa.cm4:8042, nodeRackName/default-rack, nodeNumContainers0, nodeHealthStatusis_node_healthy: true, health_report: "", last_health_report_time: 1362663711950,
  10. 13/03/07 21:42:44 INFO distributedshell.Client: Got node report from ASM for, nodeId=search041134.sqa.cm4:49313, nodeAddresssearch041134.sqa.cm4:8042, nodeRackName/default-rack, nodeNumContainers0, nodeHealthStatusis_node_healthy: true, health_report: "", last_health_report_time: 1362663712038,
  11. 13/03/07 21:42:44 INFO distributedshell.Client: Queue info, queueName=default, queueCurrentCapacity=0.0, queueMaxCapacity=1.0, queueApplicationCount=17, queueChildQueueCount=0
  12. 13/03/07 21:42:44 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=SUBMIT_APPLICATIONS
  13. 13/03/07 21:42:44 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=ADMINISTER_QUEUE
  14. 13/03/07 21:42:44 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=SUBMIT_APPLICATIONS
  15. 13/03/07 21:42:44 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=ADMINISTER_QUEUE
  16. 13/03/07 21:42:44 INFO distributedshell.Client: Min mem capabililty of resources in this cluster 1024
  17. 13/03/07 21:42:44 INFO distributedshell.Client: Max mem capabililty of resources in this cluster 8192
  18. 13/03/07 21:42:44 INFO distributedshell.Client: AM memory specified below min threshold of cluster. Using min value., specified=10, min=1024
  19. 13/03/07 21:42:44 INFO distributedshell.Client: Setting up application submission context for ASM
  20. 13/03/07 21:42:44 INFO distributedshell.Client: Copy App Master jar from local filesystem and add to local environment
  21. 13/03/07 21:42:45 INFO distributedshell.Client: Set the environment for the application master
  22. 13/03/07 21:42:45 INFO distributedshell.Client: Setting up app master command
  23. 13/03/07 21:42:45 INFO distributedshell.Client: Completed setting up app master command ${JAVA_HOME}/bin/java -Xmx1024m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 10 --num_containers 1 --priority 0 --shell_command uname --shell_args -a --debug 1><log_dir>/AppMaster.stdout 2><log_dir>/AppMaster.stderr
  24. 13/03/07 21:42:45 INFO distributedshell.Client: Submitting application to ASM
  25. 13/03/07 21:42:45 INFO client.YarnClientImpl: Submitted application application_1362658309553_0020 to ResourceManager at /10.232.42.91:19001
  26. 13/03/07 21:42:46 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  27. 13/03/07 21:42:47 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  28. 13/03/07 21:42:48 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  29. 13/03/07 21:42:49 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  30. 13/03/07 21:42:50 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  31. 13/03/07 21:42:51 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  32. 13/03/07 21:42:52 INFO distributedshell.Client: Got application report from ASM for, appId=20, clientToken=null, appDiagnostics=, appMasterHost=, appQueue=default, appMasterRpcPort=0, appStartTime=1362663765373, yarnAppState=FINISHED, distributedFinalState=SUCCEEDED, appTrackingUrl=search042091.sqa.cm4.tbsite.net:8088/proxy/application_1362658309553_0020/, appUser=henshao
  33. 13/03/07 21:42:52 INFO distributedshell.Client: Application has completed successfully. Breaking monitoring loop
  34. 13/03/07 21:42:52 INFO distributedshell.Client: Application completed successfully
  35. </log_dir></log_dir>

运行完成之后,找不到输出在哪儿,费了好大的劲,终于在hadoop/logs/userlogs下面找到输出了。不知道为何运行了两个container。

  1. $ tree hadoop/logs/userlogs/application_1362658309553_0018
  2. application_1362658309553_0018
  3. |-- container_1362658309553_0018_01_000001
  4. | |-- AppMaster.stderr
  5. | `-- AppMaster.stdout
  6. `-- container_1362658309553_0018_01_000002
  7. |-- stderr
  8. `-- stdout
  9. $ cat hadoop/logs/userlogs/application_1362658309553_0018/container_1362658309553_0018_01_000002/stdout
  10. Linux search042091.sqa.cm4 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

好,开始用yarn调度一个程序。我写了一个脚本,里面启动了服务器。

  1. $ cat ~/start_sp.sh
  2. #!/bin/env bash
  3. source /home/admin/.bashrc
  4. /home/admin/sp/bin/sap_server -c /home/admin/sp/sp_worker/etc/sap_server_app.cfg -l /home/admin/sp/sp_worker/etc/sap_server_log.cfg -k restart

启动起来之后,进程关系图如下。

Snip20130308_58

接着我把脚本直接kill掉,期待yarn给我重启脚本。发现application运行结束了,AppMaster.stderr日志里面有如下内容。

  1. 13/03/08 21:40:02 INFO distributedshell.ApplicationMaster: Got response from RM for container ask, completedCnt=1
  2. 13/03/08 21:40:02 INFO distributedshell.ApplicationMaster: Got container status for containerID=container_1362747551045_0017_01_000002, state=COMPLETE, exitStatus=137, diagnostics=
  3. Killed by external signal
  4. 13/03/08 21:40:02 INFO distributedshell.ApplicationMaster: Current application state: loop=464, appDone=true, total=1, requested=1, completed=1, failed=1, currentAllocated=1
  5. 13/03/08 21:40:02 INFO distributedshell.ApplicationMaster: Application completed. Signalling finish to RM
  6. 13/03/08 21:40:02 INFO service.AbstractService: Service:org.apache.hadoop.yarn.client.AMRMClientImpl is stopped.
  7. 13/03/08 21:40:02 INFO distributedshell.ApplicationMaster: Application Master failed. exiting

人气教程排行