2013年(15)
分类: 大数据
2013-11-07 14:32:28
总结1:package的名字和结构必须和相关的目录名一致,包括大小写也要一致。
问题描述:在Eclipse中,由于一般是先新建包,eclipse创建package的时候自动帮你创建了目录了,所以不会不一致。Eclipse会在对应testproject\bin目录下生成org\it\目录,并且在org\it\目录下生成TestPackage.class文件,但是实际上此class的名称为org.it.TestPackage.class。当然,在Eclipse中可以直接运行,但是在dos命令下,一定要注意实质上的编译和运行实际路径和类名等问题。
总结2:查看某个可执行程序是哪个路径下的,使用which命令。
问题描述:
[hadoop@hadoop hive]$ hive
/usr/local/hadoop/hive/bin/hive: line 72: [: /usr/local/hadoop/hive/lib/hive-exec-0.8.1.jar: binary operator expected
/usr/local/hadoop/hive/bin/hive: line 82: [: /usr/local/hadoop/hive/lib/hive-metastore-0.8.1.jar: binary operator expected
/usr/local/hadoop/hive/bin/hive: line 88: [: /usr/local/hadoop/hive/lib/hive-cli-0.8.1.jar: binary operator expected
/usr/local/hadoop/hive/bin/ext/util/execHiveCmd.sh: line 21: [: /usr/local/hadoop/hive/lib/hive-cli-0.8.1.jar: binary operator expected
Exception in thread "main" java.lang.ClassNotFoundException: /usr/local/hadoop/hive/lib/hive-cli-0/9/0-SNAPSHOT/jar
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
解决方法
在Hive的Lib目录下多拷贝了一下名称前缀相同的Jar文件,导致hive脚本中if语句判断出错,删除多余的jar包后,解决。网上找到的原因
thats because /myfilelocationpath/temp/bingofile* will return more than one file name and if can't test all at once.. so its better go for for loop..
总结4:[Hive-user] hive hbase handler metadata NullPointerException
问题描述:
我遇到的问题和网上描述的一样,更换了新编译的hive-hbase-handler之后,创建表是成功的,但是向表中加入数据失败,
解决方法
参考官方文档的描述,带参数启动hive,注意中划线—的使用
$HIVE_HOME/bin/hive --auxpath $HIVE_HOME/lib/hive-hbase-handler-0.9.0.jar, $HIVE_HOME/lib/hbase-0.92.0.jar, $HIVE_HOME/lib/zookeeper-3.3.1.jar -hiveconf hbase.master=localhost:60000