2011.12.20
1. hadoop 集群环境中对namenode,datanode,jobtracker,tasktracker的监控甚至是debug.
要修改hadoop-env.sh文件:
export HADOOP_TASKTRACKER_OPTS=" -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9051 -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9052 "
export HADOOP_TASKTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_TASKTRACKER_OPTS"
这样可以通过 jconsole远程连接 tasktracker_server_ip:9051 查看jvm的运行状态,包括线程,堆栈,运行参数等.
可以通过Eclipse Remote debug 连接tasktracker_server_ip:9052,打断点来跟踪TaskTracker的程序运行步骤.
2. 当设置 mapred.job.reuse.jvm.num.tasks 设置为-1时,只有属于同一个job的多个map(分配给一台同样的服务器)才会在同一个jvm中运行,对于属于同一个job的map,reduce还未知.
3. 对于map及reduce任务,都是由TaskController(默认为DefaultTaskController)生成一个taskjvm.sh 文件,然后由java的Process类来执行,通过process.waitFor()来返回exitCode,如果exitCode==0说明进程正常结束,如果返回非0,说明进程非正常退出,在taskjvm.sh可以看到所有的运行参数和变量(可以通过grep tasktracker.log日志找到),通过查看task日志来分析原因,每个task的日志在 ${hadoop.log.dir}/userlogs/${job_id}/${task_id}/ 目录下,有stderr 错误输出,stdout 标准输出,syslog 运行日志,log.index 前面三个文件的数据大小.
4. 如果jvm设置为重用,对于一个job的debug可以通过设置属性来对job进行jmx和debug
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=21000 -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=22000 </value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=10011 -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10012 </value>
</property>
2012.01.19
1. hadoop -D参数的设置位置:
hadoop jar hbase-json-test.jar -Dmapred.output.compress=true -Dmapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec /maxthon/mac_export/20120115/ duming/mac_hfile/20120121/
2012.05.11
1. hadoop distcp
hadoop distcp -Dmapred.map.child.java.opts=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=22000 " -skipcrccheck -update -m 1 hftp://namenode-bj.hadoop.maxthon.cn:50070/user/yangfeng/tttt.txt /user/hadoop/duming/
不版本间的数据迁移要注意:
a. source 用hftp协议.
b. 迁移到的hadoop集群版本比较高, 最好设置-skipcrccheck选项也-update选项, skipcrccheck忽略FileChecksum校验, 因为版本的升级可能带来Checksum值不一样, cdh4与cdh3就是这样.
2012.06.01
1. load数据到现有的partition 下, 报错误, 但最终还是能将数据转移过去, 最终原因是没有使用use views;
2012.06.09
org.apache.hadoop.hive.ql.parse.SemanticException: org.apache.hadoop.hive.ql.metadata.HiveException: Invalid partition for table chukwa
at org.apache.hadoop.hive.ql.optimizer.pcr.PcrOpProcFactory$FilterPCR.process(PcrOpProcFactory.java:122)
at org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:89)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:88)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:125)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:102)
at org.apache.hadoop.hive.ql.optimizer.pcr.PartitionConditionRemover.transform(PartitionConditionRemover.java:78)
at org.apache.hadoop.hive.ql.optimizer.Optimizer.optimize(Optimizer.java:87)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:7306)
at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:243)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:430)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:337)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:889)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:255)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:212)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:671)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:554)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:200)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: Invalid partition for table chukwa
at org.apache.hadoop.hive.ql.metadata.Hive.getPartitionsByNames(Hive.java:1696)
at org.apache.hadoop.hive.ql.optimizer.ppr.PartitionPruner.pruneBySequentialScan(PartitionPruner.java:376)
at org.apache.hadoop.hive.ql.optimizer.ppr.PartitionPruner.prune(PartitionPruner.java:233)
at org.apache.hadoop.hive.ql.optimizer.pcr.PcrOpProcFactory$FilterPCR.process(PcrOpProcFactory.java:112)
... 21 more
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Invalid partition for table chukwa
at org.apache.hadoop.hive.ql.metadata.Partition.initialize(Partition.java:207)
at org.apache.hadoop.hive.ql.metadata.Partition.<init>(Partition.java:106)
at org.apache.hadoop.hive.ql.metadata.Hive.getPartitionsByNames(Hive.java:1691)
... 24 more
Caused by: MetaException(message:Invalid partition key & values)
at org.apache.hadoop.hive.metastore.Warehouse.makePartName(Warehouse.java:407)
at org.apache.hadoop.hive.metastore.Warehouse.makePartName(Warehouse.java:392)
at org.apache.hadoop.hive.ql.metadata.Partition.initialize(Partition.java:190)
... 26 more
是因为数据库 PARTITION_KEY_VALS中对应某个PART_ID的分区数据少一个logType记录,
hive存储的meta信息位于数据库中, 类为ObjectStore,
2012.07.03
hadoop jar hbase-promote-0.0.1-SNAPSHOT.jar com.maxthon.hbase.promote.etl.EtlPromoteDriver -Dmapred.map.child.java.opts="-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y,address=22000 " /hive/warehouse/maxthon.db/chukwa/logtype=com_ios.g.maxthon.com/logday=20120630/loghour=00 /user/yangfeng/promote_ios/01
2012.07.04
mapred.min.split.size MxCombineFileInputFormatShim.getSplits
mapred.min.split.size.per.node MxCombineFileInputFormatShim.getSplits
mapred.max.split.size 256000000
mapreduce.input.fileinputformat.split.minsize.per.node 1
mapreduce.input.fileinputformat.split.maxsize 256000000 每个block块的大小 MxCombineFileInputFormatNew.getSplits, MxCombineFileInputFormatNew.OneFileInfo判断
2012.07.10
1. 通过-D更改参数, main方法调用, 参考DistCp
JobConf job = new JobConf(DistCp.class);
DistCp distcp = new DistCp(job);
int res = ToolRunner.run(distcp, args);
分享到:
相关推荐
hadoop用于解析lzo的包,这个问题在使用presto的时候需要将此包添加到presto的工具包中,以支持lzo格式文件的查询。
在Windows环境下,使用Eclipse进行Hadoop 2.2.0分布式集群的调试是一项重要的技能,这可以帮助开发者更好地理解和优化Hadoop程序。以下是一些关键的知识点,将指导你完成这个过程。 首先,Hadoop是一个开源的分布式...
然后,通过配置Eclipse的Run/Debug Configuration,设置正确的Java运行参数,如HADOOP_HOME指向Hadoop的安装目录。 在使用winutils.exe和hadoop.dll时,可能会遇到一些常见问题,如找不到相关文件的错误、权限问题...
2. **hadoop.dll**: 这是Windows系统下的Hadoop动态链接库文件,用于Windows环境下Hadoop本地库的调用。在Windows上运行Hadoop时,这个文件是必需的,它实现了某些系统级别的功能,如文件系统的操作。 3. **...
* hdfs debug recoverLease -path 文件位置 -retries 重试次数:修复指定路径的 HDFS 文件 六、自动修复 HDFS HDFS 自动修复可以通过 directoryscan 和 blockreport 机制来实现。当数据块损坏后,DN 节点会执行 ...
3. **使用 DebugFlag**:在提交作业时,可以设置 `-Dmapred.map.task.debug.script` 和 `-Dmapred.reduce.task.debug.script` 参数,使得 Map 或 Reduce 任务在完成时生成一个脚本,用于进一步分析。 4. **使用可视...
6. **运行和调试**:写好代码后,右键点击项目,选择"Hadoop" > "Run on Cluster"或"Debug on Cluster",Eclipse会自动将你的程序提交到Hadoop集群上运行。你可以在"Console"视图中查看运行日志,也可以在...
2. 调试MapReduce任务:通过"Debug As" -> "Hadoop Job",Eclipse提供了调试功能,可以在Mapper和Reducer中设置断点,逐步执行代码,查看变量状态,帮助找出问题所在。 六、优化与维护 Hadoop2x-eclipse-plugin还...
- 运行和调试:通过Eclipse的Run或Debug配置,可以直接提交MapReduce任务到Hadoop集群,并实时查看日志和结果。 5. **插件功能扩展**: 一些插件还可能包含其他有用的功能,如HDFS浏览器,用于可视化查看Hadoop...
在Windows环境下搭建Eclipse与Hadoop 2.6.4的开发环境是一项具有挑战性的任务,因为Hadoop最初是为Linux设计的,但在Windows上运行则需要额外的配置步骤。以下是一些关键知识点,帮助你理解和解决在这个过程中可能...
将下载的`hadoop-eclipse-plugin-2.7.1.jar`文件复制到Eclipse的`plugins`目录下。重启Eclipse后,插件会被自动加载。如果在Eclipse的“帮助”菜单中看到“Hadoop Map/Reduce视图”,则表示插件安装成功。 2. **...
《Hadoop2x-Eclipse-Plugin:掌握大数据开发利器》 在大数据技术领域,Hadoop作为开源分布式计算框架,已经成为处理海量数据的核心工具。而Eclipse作为Java开发者的常用集成开发环境(IDE),其功能强大,深受...
5. **项目结构**:在Eclipse中,你需要创建一个Maven项目,并在`src/main/java`目录下编写Hadoop程序。在`src/main/resources`下放置配置文件,如Hadoop的配置XML。`pom.xml`文件中应包含Hadoop相关的依赖,如`...
在IDEA中,你可以创建一个新的Run/Debug Configuration,选择“Application”类型,设置Main Class为你的Job类,添加VM options来模拟Hadoop环境,例如`-Dmapreduce.jobtracker.address=localhost:8021`。...
对于`hadoop-common`模块,可以进入`/usr/local/hadoop-2.10.0-src/hadoop-common-project/hadoop-common/target/`目录,将生成的`hadoop-common-2.10.0.jar`替换到Hadoop安装目录的`share/hadoop/common/`下。...
此外,确保Hadoop的JVM允许远程调试,如在`mapred-site.xml`中添加`<property><name>mapreduce.map.debug.port</name><value>5005</value></property>`,指定调试端口。 12. **测试远程调试**: 在你的IDE(如...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的出现主要解决了大数据处理的难题。"hadoop-0.20.2-cdh3u6"是Cloudera公司基于Hadoop的一个发行版本,名为CDH(Cloudera Distribution Including Apache ...
这个插件使得开发人员能在熟悉的IDE环境下进行Hadoop编程,提高了开发效率,减少了在命令行操作的繁琐过程。然而,要注意的是,随着Hadoop的发展,新版本的Hadoop可能不再兼容旧版插件,因此在实际开发中,应尽量...
【标题】: "win7环境下Hadoop安装及Eclipse调试MapReduce配置教程" 【描述】: "本教程详细讲解在Windows 7操作系统中如何安装Hadoop,并配置Eclipse进行MapReduce程序的调试,涵盖可能出现的问题及其解决方案。" ...
1. 在`/mnt`目录下创建`cdrom`目录,然后挂载光驱到该目录,以便安装中文包。 2. 使用`mount -t auto /dev/cdrom /mnt/cdrom`命令挂载光驱,注意光驱可能是只读的。 3. 按照指定顺序通过`rpm -ivh`命令安装中文包。 ...