有什么方法可以永久添加hive jar而不是在hive shell中添加会话级别?
任何帮助将不胜感激
答案 0 :(得分:9)
在hiveserver2主机中,创建一个类似/ var / lib / hive的位置,并在该文件夹中添加所有必需的jar。编辑 hive-site.xml 并在属性中提及所有这些jar hive.aux.jars.path
例如:
ADD JAR /home/amal/hive/amaludf.jar
ADD JAR /home/amal/hive/amaludf2.jar
您可以为所有会话定义上述命令,而不是在每个会话中使用上述命令。
创建一个位置,用于在hiveserver主机中存储这些jar。
mkdir /var/lib/hive
将所有这些罐子添加到该目录
在 hive-site.xml
中设置属性<property>
<name>hive.aux.jars.path</name>
<value>/var/lib/hive</value>
</property>
执行此修改后重新启动hiveserver2。
您可以指定单个罐子的路径,而不是创建目录并放置所有罐子。唯一的条件是所有这些罐子都应该存在于hiveserver主机中。
例如:
<property>
<name>hive.aux.jars.path </name>
<value>file:///home/amal/hive/udf1.jar,file:///usr/lib/hive/lib/hive-hbase-handler.jar</value>
</property>
答案 1 :(得分:0)
您必须将jar放在hadoop或hive的 lib 文件夹中 all 您的节点。
答案 2 :(得分:0)
这些可以通过两个步骤完成
- Hive客户端应该在所有节点中都可用。
- Hive Live位置应在hadoop-env.sh CLASSPATH中定义,同一文件应在已退休的Hadoop Clueter中更新。
醇>
{hadoop-env.sh应该使用hive的CLASSPATH和其他位置更新用户定义的自定义jar和整个群集中可用的公共位置}
你还需要重新启动hive / hadoop才能在更改后才能生效。
答案 3 :(得分:0)
在$ HIVE_HOME中创建名为auxlib
的目录,将所有jar放入此目录中,然后重新启动配置单元服务器。运行ps -ef | grep hive
来列出配置单元进程,搜索hive.aux.jars.path
,您将看到所有jar都将针对该配置单元列出。