mysql问题
-
mysql datetime 不支持值0000-00-00 00:00:00
装载hive数据到mysql数据中报错,无法插入0000...date值,就是由于
mysql不支持0000为datetime的值.不要在table中或在数据中将datetime的默认值设置成0000..的形式
-
mysql query默认会fetch所有的数据到内存中
生产环境数据量非常大的时候,会导致OutOfMemoryError.
解决方法为设置mysql每次获取一个block的数据而不是所有。
stmt.setFetchSize(num);
hadoop作业查错
-
根据作业名或id找到对应的作业
打开yarn RM对应的web地址,根据作业名搜索对应作业.
作业在running状态时可以在RM web查看job状态,mr job执行结束日志会被收集到jobhistory server.
-
查看作业的具体配置
在jobhistory界面可查看job的具体配置。点击左侧边栏job下的configuration链接,
可查看job具体的参数配置,包括hadoop相关配置参数及用户自己配置的一些参数。其中source chain一栏指出了参数的来源,是来自于配置文件还是在程序中设置的(programatically)。
-
查看counters
有job级别的counters,也有task级别的counters。 counters被分为多个group,
有默认的统计group,也可看到用户自定义的group.通过查看counters的统计情况,可以确认读入写出的数据量,读入写出的记录数, task的执行时间等,可以帮助我们
从宏观上判断作业的执行结果是否合理. -
查看日志的时候一定要view full log
开始展示的部分日志可能不是真实错误,一定要review full log查看错误.
关于日志查看的非常好的文章
https://discuss.pivotal.io/hc/en-us/articles/201925118-How-to-Find-and-Review-Logs-for-Yarn-MapReduce-Jobs
hadoop1 to hadoop2 drawbacks and improve
http://stackoverflow.com/questions/12992743/what-additional-benefit-does-yarn-bring-to-the-existing-map-reduce/35479769#35479769
四个方面分别是:scalable, avalability, resource utilization, multiple job types support