所以我想尝试使用Hive MAP和REDUCE自定义mapper reducer查询。
我已经将自定义映射器和reducer编写并导出到jar文件,并尝试从Hive CLI添加它。我得到了"不存在"错误无论我在哪里复制jar。我尝试了以下内容。
我将文件复制到/ usr / local / hive / lib /,/ usr / local / hive / conf /和/ tmp /然后在hdfs中我也将其复制到/,/ user / hive /和/ user /蜂房/仓库/
我尝试提供完整路径然后我得到URL语法异常
hive> add jar 'hdfs://srimanthpc:9000/SpaceTravel.jar';
Illegal character in scheme name at index 0: 'hdfs://srimanthpc:9000/SpaceTravel.jar'
Query returned non-zero code: 1, cause: java.net.URISyntaxException: Illegal character in scheme name at index 0: 'hdfs://srimanthpc:9000/SpaceTravel.jar'
hive> add jar 'file:///home/anil/Desktop/SpaceTravel.jar';
Illegal character in scheme name at index 0: 'file:///home/anil/Desktop/SpaceTravel.jar'
Query returned non-zero code: 1, cause: java.net.URISyntaxException: Illegal character in scheme name at index 0: 'file:///home/anil/Desktop/SpaceTravel.jar'
如果我给出没有任何架构的路径,它说它不存在。我尝试了添加文件而不是添加jar 。
我的hive-site.xml将 hive.aux.jars.path 设置为/ usr / local / hive / lib /。我尝试将其更改为file:/// hdfs:// localhost:9000 /但没有更改:(
所有在线文档都说 ADD JAR |文件路径。但是没有人提到那条路。 :(
我被困在这里过去4个小时请帮助我。我错过了什么?
其他信息: 我的.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
答案 0 :(得分:6)
从查询中删除'
hive> add jar hdfs://srimanthpc:9000/SpaceTravel.jar;
万一,master在localhost上
hive> add jar hdfs://localhost:9000/SpaceTravel.jar;
确保SpaceTravel.jar
应该在hdfs中。
使用命令
hdfs dfs -ls /