如何在配置单元中添加jar文件

时间:2017-03-11 05:27:49

标签: hadoop jar hive hql

我尝试使用 ADD JAR hive-contrib-0.10.0.jar 命令在hive中添加hive-contrib-0.10.0.jar,但它总是说hive-contrib- 0.10.0.jar不存在。

我现在正在使用HDP 2.1版本。我还使用hue将此jar文件添加到/user/root文件夹中并运行命令

ADD JAR hdfs:///hive-contrib-0.10.0.jar

但它给了我同样的错误jar file doesn't exist

有没有办法解决这个问题。 我应该在哪里保留这个jar文件,以便它能够成功运行以及将要使用的命令是什么?

5 个答案:

答案 0 :(得分:4)

  1. 将JAR文件上传到hdfs路径
  2. 使用“添加”命令和“HDFS完整路径”
  3. 添加JAR文件

    示例:

    hadoop fs -put ~/Downloads/hive.jar /lib/
    

    打开蜂巢壳

    add jar hdfs:///lib/hive.jar
    

答案 1 :(得分:2)

如果您想永久添加罐子,您需要执行以下操作。 1. Hive-site.xml(/ etc / hive / conf)

<property>
  <name>hive.aux.jars.path</name>
  <value>file:///mnt1/hive-jars/hive-contrib-2.1.1.jar</value>
</property> 
  1. 将hive-contrib-2.1.1.jar添加到路径&#34; / mnt1 / hive-jars&#34;在hive-site.xml中配置
  2. 理想情况下,重启hive-server2后应该可以正常工作。 3. sudo stop hive-server2 4. sudo start hive-server2

    但有时它不起作用。我不知道为什么你可以使用以下肮脏的方式。

    将您的jar文件放在以下路径中,以便hive在重新启动时自动将其拾取。

    1. 将hive-contrib-2.1.1.jar添加到/ usr / lib / hive -hcatalog / share / hcatalog
    2. sudo stop hive-server2
    3. sudo start hive-server2

答案 2 :(得分:1)

我发现您的方法存在以下问题。在添加之前,请确保您能够在本地文件系统或hdfs上列出文件。

您尝试添加的jar默认位于hive类路径中,作为$ HIVE_HOME / lib的一部分(在本地文件系统上安装了hive客户端/服务)

另一方面关于如何在hive中添加jar的问题,我们可以使用本地文件系统或hadoop分布式文件系统(HDFS)添加

Add jar file:///root/hive-contrib-0.10.0.jar (Given that you copied this jar on LFS root directory)

Add jar hdfs://<namenode_hostname>:8020/user/root/hive-contrib-0.10.0.jar (Given that you copied to HDFS root home)

答案 3 :(得分:1)

我已经阅读了上面这些非常有用的答案。我把所有这些结合在了一个解决方案中:

  1. 将jar放入本地磁盘并提供读/写权限

    chmod -R 777 /tmp/json.jar  
    
  2. 上传到hdfs文件系统并授予权限:

    hdfs dfs -put /tmp/json.jar hdfs://1.1.1.1:8020/jars/   
    hdfs dfs -chmod -R 777 hdfs://1.1.1.1:8020/jars/
    
  3. 将jar添加到hive env中。

    add jar  hdfs://1.1.1.1:8020/jars/json.jar  
    

答案 4 :(得分:0)

  1. 您必须提供jar JAR的完整路径,而不仅仅是它的名称。
  2. 不要猜测位置。在尝试添加文件系统之前,请检查文件系统是否存在。