Hive通过已有表来创建新表时出现一些列错误

我的系统下:

Hadoop的安装目录为:/home/hbase/install/hadoop-2.3.0-cdh5.1.0

Hive的安装目录为:/home/hbase/install/hive-0.12.0-cdh5.1.0


在hive中已经创建表ht_persons,既然可以建表,说明我的系统安装是成功的,至少有一半是成功的。

但是在通过已有表来创建新表时出现如下错误。

hive>  create table ht_p2 as select * from ht_persons;
Total MapReduce jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
java.io.FileNotFoundException: File file:/home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar does not exist
        ……(此处省略多行)
Job Submission failed with exception 'java.io.FileNotFoundException(File file:/home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar does not exist)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

/home/hbase/install/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar
从错误中可以看到错误类型为java.io.FileNotFoundException。它找到的路径为/home/hbase/cmri...。可以看到其大致路径是正确的,但是找错了,很明显,肯定是我配置的时候出的问题。

于是我打开$HIVE_HOME/conf/hive_site.xml找到我配置的文件时,果然发现我配置有问题,我以前的配置是:

<property>
    <name>hive.aux.jars.path</name>
    <value>file:///home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar,file:///home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar,file:///home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/zookeeper-3.4.5-cdh5.1.0.jar,file:///home/hbase/cmri/hive-0.12.0-cdh5.1.0/lib/guava-14.0.jar</value>
</property>

修改后的设置为:

<property>
    <name>hive.aux.jars.path</name>
    <value>file:///home/hbase/install/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar,file:///home/hbase/install/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar,file:///home/hbase/install/hive-0.12.0-cdh5.1.0/lib/zookeeper-3.4.5-cdh5.1.0.jar,file:///home/hbase/install/hive-0.12.0-cdh5.1.0/lib/guava-14.0.jar</value>
</property>

然后再启动hive,运行SQL语句,又出现另一种类型的错误:

hive> create table ht_p2 as select * from ht_persons;
Total MapReduce jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
java.io.FileNotFoundException: File file:/home/hbase/install/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar does not exist
        ……(此处省略多行)
Job Submission failed with exception 'java.io.FileNotFoundException(File file:/home/hbase/install/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar does not exist)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
根据错误可以看到,hbase-common-0.98.1-cdh5.1.0.jar没有找到。

通过find命令在整个系统中寻找hbase-common-0.98.1-cdh5.1.0.jar,如下:

[root@compute-24-13 lib]# find / -name hbase-common-0.98.1-cdh5.1.0.jar
/home/hbase/install/hbase-0.98.1-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar
找到了。只需要将该文件拷贝到/home/hbase/install/hive-0.12.0-cdh5.1.0/lib目录下即可,拷贝的命令为cp,具体如下:

[root@compute-24-13 lib]# cp /home/hbase/install/hbase-0.98.1-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar /home/hbase/install/hive-0.12.0-cdh5.1.0/libhbase-common-0.98.1-cdh5.1.0.jar
拷贝的格式为:

cp 原文件 目标文件

按照上述方式,如果还有jar包找不到,按照同样的方式找即可。



全文完。转载请注明出处:http://blog.csdn.net/ghuil/article/details/45170993

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值