我的系统下:
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