Hadoop2.2.0 hive0.12 hbase0.94 配置问题记录

环境:centos6.2 Hadoop2.2.0 hive0.12 hbase0.94

1>hadoop配好之后,跑任务老失败,yarn失败,报out of memory错误,然后怎么调整内存大小都不行,后来发现是can’t create new thread

解决:在vi /etc/security/limits.conf 添加

hadoop - nofile 65535

hadoop - nproc  65535

2>yarn运行错误:mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid

yarn.nodemanager.aux-services.mapreduce_shuffle.class部分的错误

解决:yarn.site.xml参数配置的问题

http://blog.csdn.net/bamuta/article/details/12995139

改成下面的配置就好了:

<property>

<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

3> hbase0.96hive0.12整合的问题

一开始用hadoop2.2.0 + hbase 0.96 + hive 0.12 ,基本全部都配好了。只有在hive中查询hbase的表出错。以直报如下错误:

1

java.io.IOException: <span style="font-size: 15px;">java.lang.ClassCastException:</span> org.apache.hadoop.hbase.client.Result cannot be cast to org.apache.hadoop.io.Writabl

后来发现hbase0.96和hive0.12不兼容,hive-hbase-handle-0.12.0.jar不兼容hbase0.96,hive0.12还停留在hadoop1。于是乎采用hbase0.94测试。

鉴于hbase0.94不兼容hadoop2,大豪哥在网上找到一篇文章http://yanbohappy.sinaapp.com/?p=192 

在文中讲到用mvn clean package assembly:assembly -DskipTests -Dhadoop.profile=2.0 重编hbase-0.94.2.tar.gz,

1,将hbase-0.94.0.jar复制到每台hadoop的/hadoop_home/share/hadoop/common/lib/下重启hadoop,

2,将hbase-0.94.0.jar拷贝到hive/lib下,hbase-site.xml拷贝到hive/conf/下

3,将hive-hbase-handle-0.12.0.jar拷贝到hbase/lib下。

至于hbase整合hive的其他配置和hadoop1的时候一样。

http://www.open-open.com/lib/view/open1328413245124.html

4>hadoop0.20.2 搬迁到hadoop2.2.0

将老集群的所有ip,服务器名映射到新集群的/etc/hosts 中

让后用

./Hadoop distcp hftp://irt2:50070/user/hive/warehouse/webdata/   hdfs://irsadmin60:9000/user/hive/warehouse/webdata/

如果失败使用更新:./hadoop distcp –update hftp://irt2:50070/user/hive/warehouse/webdata/   hdfs://irsadmin60:9000/user/hive/warehouse/webdata/

5>最近导数据有时候少数据,查hadoop任务发现,mapfailed,报如下错误:

Container launch failed for container_1385017085286_4943_01_000053 : org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container.<br> This token is expired. current time is 1386900106527 found 138689999122 

datanode与namenode之间未设置时间同步,所以引起该异常。
解决方案:多个datanode与namenode进行时间同步。

时间同步:
在每台服务器的 /etc/crontab 中加入一行:
00 5 * * * root ntpdate cn.pool.ntp.org && hwclock -w

原文地址:https://www.cnblogs.com/tangtianfly/p/3482535.html