`
qindongliang1922
  • 浏览: 2188715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117664
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126072
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60032
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71401
社区版块
存档分类
最新评论

Hadoop集群搭建完毕后,如何测试是否正常工作?

阅读更多
最近,要在沙箱的环境装一个hadoop的集群,用来建索引所需,装hadoop已经没啥难的了,后面,散仙会把重要的配置信息,贴出来,本次装的hadoop版本是hadoop1.2的版本,如果不知道怎么装的,可以参考这篇文章,安装的具体步骤,散仙在这里不在重述,重点在于hadoop-nd,hadoop-dd,tmp目录的配置,下面是配置文件的示例:



core-site.xml的配置:
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://h1:8020</value>
        </property>
        <property>
                <name>io.compression.codecs</name>
                <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress
.SnappyCodec</value>
                <final>true</final>
        </property>
</configuration>
~                       


hdfs-site.xml的配置:
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://h1:8020</value>
        </property>
        <property>
                <name>dfs.block.size</name>
                <value>134217728</value>
        </property>
        <property>
                <name>dfs.namenode.handler.count</name>
                <value>10</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.name.dir</name>
                <value>/home/search/hadoop-nd</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/search/hadoop-dd</value>
        </property>
        <property>
                <name>dfs.tmp.dir</name>
                <value>/home/search/tmp</value>
        </property>
        <property>
                <name>dfs.web.ugi</name>
                <value>search,search</value>
        </property>
        <property>
                <name>dfs.balance.bandwidthPerSec</name>
                <value>10485760</value>
        </property>
        <property>
                <name>dfs.support.append</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>



mapred-site.xml的配置:
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>h1:8021</value>
        </property>
        <property>
                <name>mapred.tasktracker.map.tasks.maximum</name>
                <value>2</value>
        </property>
        <property>
                <name>mapred.tasktracker.reduce.tasks.maximum</name>
                <value>2</value>
        </property>
        <property>
                <name>mapred.map.child.java.opts</name>
                <value>-Xmx512M</value>
        </property>
        <property>
                <name>mapred.reduce.child.java.opts</name>
                <value>-Xmx512M</value>
        </property>
</configuration>
~                   



hadoop-env.sh,看情况配置,第一次安装需要配置JDK的路径

下面说重点问题:

集群,安装完毕后,
(1)先使用jps命令,查看所有的hadoop进程是否,启动正常,如果没有全部启动,需要查看,对应的log信息。
(2)如果进程都正常,可以访问对应的端口信息,在Web上查看集群页面信息
(3)如果页面上也正常,这时候,我们需要跑一个基准测试来真正的校验下,集群的计算情况,基准测试主要测试两个方面,一个是生成文件,测的是Map的运行情况,一个是排序输出,测的是Reduce的运行情况,针对hadoop1.2.x的版本我们可以使用如下的命令进行基准测试,注意需要进入到hadoop的根目录:

生成数据文件
1,hadoop jar hadoop-examples-1.2.1.jar teragen 10000000 input
排序输出
2, hadoop jar hadoop-examples-1.2.1.jar terasort  input output


如果是hadoop2.x,需要使用如下方式跑基准:
(1)./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter rand
(2)./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar sort rand sort-rand
第一个命令会在rand 目录的生成没有排序的数据。第二个命令会读数据,排序,然后写入rand-sort 目录


基准测试,正是验证hadoop集群是否工作正常的一个非常重要的手段,散仙,运行之后,发现生成文件时,没有问题,而使用排序的基准时,发现reduce卡死现象,map100%之后,reduce一直不动,内存,Cpu等资源是充足的,然后看查看log,发现读取的映射地址有问题,在web页面上查看reduce的执行情况,发现解析地址错误:




注意上图做下面的地址,正常的情况,这个链接应该是本机IP的某个地址下的,但现在解析成这样,肯定获取不到数据,在reduce阶段,要拉取所有节点上的数据,进行排序,如果拉取中,出现网络异常,那么程序一直阻塞,重试,导致reduce阶段,失败,或出现运行缓慢的情况下,找到大致原因后,回到linux上,查看主机名,/etc/hosts的配置
,并使用ping命令,ping自己的主机名,或者在hosts文件里,相对应的主机名,并查看DNS的解析名,是否正常,确定无误后,把hosts文件,同步到集群上的其他机器上,确保一致,然后关掉集群,重启格式化,重启,再跑次,基准测试,运行正常:
[search@apsaras-server5 ~/hadoop]$ hadoop jar hadoop-examples-1.2.1.jar terasort  input output 
14/10/28 15:23:29 INFO terasort.TeraSort: starting
14/10/28 15:23:29 INFO mapred.FileInputFormat: Total input paths to process : 2
14/10/28 15:23:29 WARN snappy.LoadSnappy: Snappy native library is available
14/10/28 15:23:29 INFO util.NativeCodeLoader: Loaded the native-hadoop library
14/10/28 15:23:29 INFO snappy.LoadSnappy: Snappy native library loaded
14/10/28 15:23:29 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
14/10/28 15:23:29 INFO compress.CodecPool: Got brand-new compressor
Making 1 from 100000 records
Step size is 100000.0
14/10/28 15:23:30 INFO mapred.FileInputFormat: Total input paths to process : 2
14/10/28 15:23:30 INFO mapred.JobClient: Running job: job_201410281520_0002
14/10/28 15:23:31 INFO mapred.JobClient:  map 0% reduce 0%
14/10/28 15:23:41 INFO mapred.JobClient:  map 25% reduce 0%
14/10/28 15:23:42 INFO mapred.JobClient:  map 75% reduce 0%
14/10/28 15:23:51 INFO mapred.JobClient:  map 100% reduce 0%
14/10/28 15:23:55 INFO mapred.JobClient:  map 100% reduce 16%
14/10/28 15:23:58 INFO mapred.JobClient:  map 100% reduce 66%
14/10/28 15:24:01 INFO mapred.JobClient:  map 100% reduce 72%
14/10/28 15:24:04 INFO mapred.JobClient:  map 100% reduce 75%
14/10/28 15:24:07 INFO mapred.JobClient:  map 100% reduce 79%
14/10/28 15:24:11 INFO mapred.JobClient:  map 100% reduce 82%
14/10/28 15:24:14 INFO mapred.JobClient:  map 100% reduce 86%
14/10/28 15:24:17 INFO mapred.JobClient:  map 100% reduce 89%
14/10/28 15:24:20 INFO mapred.JobClient:  map 100% reduce 92%
14/10/28 15:24:23 INFO mapred.JobClient:  map 100% reduce 96%
14/10/28 15:24:26 INFO mapred.JobClient:  map 100% reduce 99%
14/10/28 15:24:27 INFO mapred.JobClient:  map 100% reduce 100%
14/10/28 15:24:29 INFO mapred.JobClient: Job complete: job_201410281520_0002
14/10/28 15:24:29 INFO mapred.JobClient: Counters: 31
14/10/28 15:24:29 INFO mapred.JobClient:   Job Counters 
14/10/28 15:24:29 INFO mapred.JobClient:     Launched reduce tasks=1
14/10/28 15:24:29 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=74679
14/10/28 15:24:29 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
14/10/28 15:24:29 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
14/10/28 15:24:29 INFO mapred.JobClient:     Rack-local map tasks=3
14/10/28 15:24:29 INFO mapred.JobClient:     Launched map tasks=8
14/10/28 15:24:29 INFO mapred.JobClient:     Data-local map tasks=5
14/10/28 15:24:29 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=45667
14/10/28 15:24:29 INFO mapred.JobClient:   File Input Format Counters 
14/10/28 15:24:29 INFO mapred.JobClient:     Bytes Read=1000024576
14/10/28 15:24:29 INFO mapred.JobClient:   File Output Format Counters 
14/10/28 15:24:29 INFO mapred.JobClient:     Bytes Written=1000000000
14/10/28 15:24:29 INFO mapred.JobClient:   FileSystemCounters
14/10/28 15:24:29 INFO mapred.JobClient:     FILE_BYTES_READ=2040001344
14/10/28 15:24:29 INFO mapred.JobClient:     HDFS_BYTES_READ=1000025344
14/10/28 15:24:29 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=3060519016
14/10/28 15:24:29 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=1000000000
14/10/28 15:24:29 INFO mapred.JobClient:   Map-Reduce Framework
14/10/28 15:24:29 INFO mapred.JobClient:     Map output materialized bytes=1020000048
14/10/28 15:24:29 INFO mapred.JobClient:     Map input records=10000000
14/10/28 15:24:29 INFO mapred.JobClient:     Reduce shuffle bytes=1020000048
14/10/28 15:24:29 INFO mapred.JobClient:     Spilled Records=30000000
14/10/28 15:24:29 INFO mapred.JobClient:     Map output bytes=1000000000
14/10/28 15:24:29 INFO mapred.JobClient:     Total committed heap usage (bytes)=1232338944
14/10/28 15:24:29 INFO mapred.JobClient:     CPU time spent (ms)=79710
14/10/28 15:24:29 INFO mapred.JobClient:     Map input bytes=1000000000
14/10/28 15:24:29 INFO mapred.JobClient:     SPLIT_RAW_BYTES=768
14/10/28 15:24:29 INFO mapred.JobClient:     Combine input records=0
14/10/28 15:24:29 INFO mapred.JobClient:     Reduce input records=10000000
14/10/28 15:24:29 INFO mapred.JobClient:     Reduce input groups=10000000
14/10/28 15:24:29 INFO mapred.JobClient:     Combine output records=0
14/10/28 15:24:29 INFO mapred.JobClient:     Physical memory (bytes) snapshot=1721982976
14/10/28 15:24:29 INFO mapred.JobClient:     Reduce output records=10000000
14/10/28 15:24:29 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=10064424960
14/10/28 15:24:29 INFO mapred.JobClient:     Map output records=10000000
14/10/28 15:24:29 INFO terasort.TeraSort: done



hadoop的任务启动后,可使用hadoop job -list命令,来查看当前正在执行的MR任务,如果想要强制,停掉正在执行的MR任务,可以使用hadoop job -kill 任务名 即可

总结:

关于散仙这个异常的原因,就是因为hosts文件的配置的映射名,太多了,并且本机的host名没有配置,和其他的机器上的hosts文件也不大一致,导致了上述问题的发生,出现问题时,我们就从日志下手,找到相关的蛛丝马迹然后一点点解决,


如果关闭hadoop集群,关不掉,可以试试如下的命令,强制kill:
jps | grep NameNode | awk '{print $1}' | xargs kill $1
jps | grep SecondaryNameNode | awk '{print $1}' | xargs kill $1
jps | grep ResourceManager | awk '{print $1}' | xargs kill $1
jps | grep DataNode | awk '{print $1}' | xargs kill $1
jps | grep NodeManager  | awk '{print $1}' | xargs kill $1











  • 大小: 342.7 KB
0
0
分享到:
评论

相关推荐

    Hadoop集群搭建,hive数据仓文档.docx

    在本文档中,我们将详细介绍如何在虚拟机上搭建一个Hadoop集群,并配置Hive数据仓库。 首先,我们需要在本地计算机上安装虚拟机软件,如VMware Workstation Pro。这个软件可以从官方网站或者通过清华大学的镜像源...

    hadoop超级详细安装文档

    至此,你已经成功搭建了一个基础的Hadoop集群。但请注意,实际生产环境中还需要考虑其他因素,如安全性、监控、日志管理和性能优化等。此外,随着Hadoop生态系统的不断发展,还有许多高级特性如HBase、Spark、Hive等...

    Hadoop云计算环境搭建

    通过以上步骤,读者可以顺利地在本地环境中搭建起一个功能完备的Hadoop集群,为进一步学习和实践大数据处理技术打下坚实的基础。此外,文章还提到了一些常见的问题解决办法,如SSH服务的安装与配置、共享文件夹的...

    hadoop搭建

    在完成上述步骤后,你的单节点 Hadoop 伪分布式环境就已经搭建完毕。然而,这只是 Hadoop 的基础,实际上还需要格式化 NameNode、启动 Hadoop 服务以及测试 HDFS 和 MapReduce 功能。这通常包括以下步骤: - **格式...

    Hadoop-Eclipse开发环境配置经验

    安装完毕后,可以通过`java -version`和`jps`命令来检查Java和Hadoop的安装情况。`jps`命令可以显示当前运行的Java进程,帮助我们查看jobtracker、tasktracker、namenode、datanode等Hadoop进程的运行情况。 2. ...

    Cygwin+Eclipse搭建Hadoop单机开发环境-1

    Hadoop的单机模式是开发和测试Hadoop应用程序的理想选择,因为它不需要集群,只需在本地机器上运行。下载Hadoop的源代码或二进制发行版,解压到你电脑上的一个目录,然后更新Hadoop配置文件(如`conf/hadoop-env.sh`...

    Hadoop云计算平台搭建方案2..doc

    至此,一个完整的Hadoop云计算平台已搭建完毕,可用于进行大规模数据的处理和分析。企业可根据实际需求,调整集群规模,优化配置,以提升数据处理性能和效率。同时,随着业务的发展,可以考虑引入其他大数据工具,如...

    hadoop入门教程

    至此,Hadoop集群已经在Ubuntu下成功搭建完毕。 #### 三、使用Eclipse连接Hadoop进行开发 在完成Hadoop的安装与配置后,下一步是使用Eclipse进行Hadoop应用的开发。 1. **下载Hadoop插件**: Eclipse有一个名为...

    hadoop2.4.1伪分布式搭建

    ### Hadoop 2.4.1 伪分布式环境搭建详细步骤 #### 一、环境准备:Linux系统配置 在开始之前,确保您的开发环境中已经安装并配置好了虚拟机(如VMware),并且能够正常...至此,Hadoop 2.4.1伪分布式环境搭建完毕。

    Hadoop之高可用集群的安装.docx

    完成上述步骤后,Hadoop的高可用集群就已搭建完毕。所有相关服务进程应能正常启动,HDFS可以正常工作,MapReduce示例程序也能顺利运行。在实际操作中,务必注意每个步骤的细节,确保集群的稳定性和数据的可靠性。在...

    ubuntu上hadoop的安装及配置

    在本文中,我们将详细探讨如何在Ubuntu 10.10 ...你可以使用Hadoop命令进行数据操作和MapReduce任务测试,验证集群是否正常工作。在整个过程中,注意监控日志文件,排查可能遇到的问题,确保所有服务都能顺利运行。

    Ubuntu 1.04搭建hadoop单机版环境.pdf

    完成这些配置后,Hadoop的单机版环境基本搭建完毕。接下来,启动Hadoop服务,包括NameNode、DataNode、Secondary NameNode以及TaskTracker。然后,可以通过Hadoop提供的命令行工具进行数据操作和测试,如`hadoop fs ...

    hadoop大数据培训Hadoop安装配置每一小步都写得.doc

    在完成以上步骤后,一个基本的Hadoop集群就算搭建完毕,可以进行大数据的存储和处理。然而,实际的生产环境中,还会涉及到更复杂的配置,如安全性、性能优化、资源调度策略等,这些都是Hadoop管理员需要掌握的关键...

    详解Hadoop.2013

    读取完毕后,客户端调用FSDataInputStream实例的close()方法关闭连接。 在Hadoop的实际部署中,还需要考虑服务器信息管理,故障监控等业务需求。服务器信息管理主要是管理和维护服务器,确保服务器良好运行;故障...

Global site tag (gtag.js) - Google Analytics