设为首页 收藏本站
查看: 1370|回复: 0

[经验分享] Hadoop运维记录系列(三)

[复制链接]

尚未签到

发表于 2018-11-1 06:56:57 | 显示全部楼层 |阅读模式
  Hive 0.10发布了,修正了一些bug,搞了一些新特性,对提高工作效率很有帮助,于是尝试升级了一下,然后遇到了一些问题,记录一下。
  主要是看上了下面几个feature,打算换上看看。


  • 1. Allow SELECT  without a mapreduce job
  • 2. Implement "show create table"
  • 3. Skewed Join Optimization,optimize union sub-queries
  • 4. hiveserver bug fix.
  0.10.0版本还规范了JSON的使用,Hive中的数据如果包含json,则json里必须使用双引号,以前的版本json是可以使用单引号的。


  首先要吐槽一下,Apache这活干的太糙了。发布的0.10,默认情况下没法用。hive-default.xml.template复制成hive-site.xml,里面有几个地方没有写xml的封口标签,需要自己写上去。还有个地方是在注释里面用了,结果hive解析的时候当成了xml标签。
  这都不是大问题,比较大的问题是部署上去以后,发现没法使用。不走map/reduce的查询都没问题。只要走map/red就报错。主要错误是报No LZO Codec found,cannot run.其他报错信息如下。
  


  • at com.hadoop.mapred.DeprecatedLzoLineRecordReader.next(DeprecatedLzoLineRecordReader.java:35)
  • at com.hadoop.mapred.DeprecatedLzoLineRecordReader.next(DeprecatedLzoLineRecordReader.java:85)
  • at org.apache.hadoop.util.LineReader.readLine(LineReader.java:187)
  • at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
  • at java.io.InputStream.read(InputStream.java:85)
  • at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:76)
  • at com.hadoop.compression.lzo.LzopInputStream.decompress(LzopInputStream.java:255)
  • at com.hadoop.compression.lzo.LzopInputStream.getCompressedData(LzopInputStream.java:319)
  • at com.hadoop.compression.lzo.LzopDecompressor.setInput(LzopDecompressor.java:116)
  • at com.hadoop.compression.lzo.LzoDecompressor.setInput(LzoDecompressor.java:208)
  • Caused by: java.lang.ArrayIndexOutOfBoundsException
  • ... 11 more
  • at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:326)
  • at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.next(HiveContextAwareRecordReader.java:108)
  • at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:41)
  • at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:101)
  • at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:276)
  • at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77)
  • at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121)
  • Caused by: java.io.IOException: java.lang.ArrayIndexOutOfBoundsException
  • at org.apache.hadoop.mapred.Child.main(Child.java:249)
  • at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
  • at javax.security.auth.Subject.doAs(Subject.java:396)
  • at java.security.AccessController.doPrivileged(Native Method)
  • at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
  • at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
  • at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
  • at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:48)
  • at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.next(MapTask.java:216)
  • at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.moveToNext(MapTask.java:236)
  • at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.next(HadoopShimsSecure.java:244)
  • at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:328)
  • at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77)
  • at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121)
  • java.io.IOException: java.io.IOException: java.lang.ArrayIndexOutOfBoundsException
  

  尝试了一下,将HIVE_HOME指向到0.9.0,则0.10.0使用正常。而将HIVE_HOME指向到0.10.0则0.9.0也会报找不到LZO库的问题。
  看来是lzo解码器的问题,但是0.9.0的hive就没有这个问题,于是用lsof抓一下进程加载的链接库。发现0.9.0会加载一个/usr/lib/liblzo2.so.2的文件,而0.10.0则没有。看来是lzo库文件的问题。重新安装一下lzo2.06的两个rpm包,并把hadoop-gpl-packing升级到最新的0.5.4-1,问题解决,map/red正常完成。
  另:记录一下tasktracker重启以后的假死问题,Tasktracker重启之后,一切正常,但jobtracker中很长时间无法获取tasktracker的主机信息。主要是由于tasktracker在重启后,会删除mrlocal文件夹下面的distcache,如果运行了一段时间重启,删除文件需要很长时间。所以,先手动删除这些distcache,再重启TT,一切就正常了。
  源码在src/mapred/org/apache/hadoop/mapred/TaskTracker.java
  


  • // NB: deleteLocalFiles uses the configured local dirs, but does not
  •     // fail if a local directory has failed.
  •     fConf.deleteLocalFiles(SUBDIR);
  •     final FsPermission ttdir = FsPermission.createImmutable((short) 0755);
  •     for (String s : localStorage.getDirs()) {
  •       localFs.mkdirs(new Path(s, SUBDIR), ttdir);
  •     }
  •     fConf.deleteLocalFiles(TT_PRIVATE_DIR);
  •     final FsPermission priv = FsPermission.createImmutable((short) 0700);
  •     for (String s : localStorage.getDirs()) {
  •       localFs.mkdirs(new Path(s, TT_PRIVATE_DIR), priv);
  •     }
  •     fConf.deleteLocalFiles(TT_LOG_TMP_DIR);
  •     final FsPermission pub = FsPermission.createImmutable((short) 0755);
  •     for (String s : localStorage.getDirs()) {
  •       localFs.mkdirs(new Path(s, TT_LOG_TMP_DIR), pub);
  •     }
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-629096-1-1.html 上篇帖子: 生产环境下Hadoop大集群安装与配置+DNS+NFS 下篇帖子: Spring for Apache Hadoop
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表