我需要检查配置单元服务的类路径,以查看它在运行配置单元查询时加载的jar的位置。我想更新配置单元的Parquet罐到最新的Parquet罐以读取新的Parquet格式数据。我已经更新了hivelib位置(/usr/hdp/2.5.xx/hive/lib/)中的jar,但是它仍然使用其他位置的旧jar。我尝试在下面的命令中列出jar,但没有输出。配置单元>列表jar;我试着用添加jar<'jar文件>但它仍在挑选旧jar。有没有办法找出用于配置单元服务的类路径或jar?
dced5bon1#
运行下面的命令以获取配置单元命令位置
which hive
打开/usr/bin/(您的配置单元位置)下的“配置单元”文件
vi /usr/bin/hive
你应该看到下面这样的东西。对配置单元文件进行备份,并在exec之前的末尾为hadoop\u类路径添加echo命令,如下所示。
# !/bin/bashif [ -d "/usr/hdp/2.5.0.0-1245/atlas/hook/hive" ]; then if [ -z "${HADOOP_CLASSPATH}" ]; then export HADOOP_CLASSPATH=/usr/hdp/2.5.0.0-1245/atlas/hook/hive/* else export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/usr/hdp/2.5.0.0-1245/atlas/hook/hive/* fifi...if [ -z "${HADOOP_CLASSPATH}" ]; then export HADOOP_CLASSPATH=${HCATALOG_JAR_PATH}else export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${HCATALOG_JAR_PATH}fi####### Prints hadoop classpathecho "Classpath=$HADOOP_CLASSPATH"exec "${HIVE_HOME}/bin/hive.distro" "$@"
# !/bin/bash
if [ -d "/usr/hdp/2.5.0.0-1245/atlas/hook/hive" ]; then
if [ -z "${HADOOP_CLASSPATH}" ]; then
export HADOOP_CLASSPATH=/usr/hdp/2.5.0.0-1245/atlas/hook/hive/*
else
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/usr/hdp/2.5.0.0-1245/atlas/hook/hive/*
fi
...
export HADOOP_CLASSPATH=${HCATALOG_JAR_PATH}
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${HCATALOG_JAR_PATH}
####### Prints hadoop classpath
echo "Classpath=$HADOOP_CLASSPATH"
exec "${HIVE_HOME}/bin/hive.distro" "$@"
运行hive命令以显示类路径。通过向环境变量'hadoop\u classpath'添加新的Parquetjar位置,解决了Parquet问题
y53ybaqx2#
如果您确定它使用的是旧版本的parquet,那么它必须存在于计算机上,因此您可以在文件系统中查找所有parquet jar: find / -name 'parquet-*.jar' 如果您想从计算机上可用的jar中检查它使用的特定jar,您可以尝试使用 lsof 为此目的。我会从 lsof | grep parquet | grep jar 如果需要,进一步微调过滤。
find / -name 'parquet-*.jar'
lsof
lsof | grep parquet | grep jar
1aaf6o9v3#
要列出jar路径,请使用命令list jarsmore details;并将jar添加到hive-site.xml中的hive.aux.jars.path位置(add auxiliary jar)hive-site.xml示例
<property><name>hive.aux.jars.path</name><value>file://localpath/yourjar.jar</value></property>
<property>
<name>hive.aux.jars.path</name>
<value>file://localpath/yourjar.jar</value>
</property>
更新检查hive hive.aux.jars.path属性并查找物理路径。
Add <jar> full path.
3条答案
按热度按时间dced5bon1#
运行下面的命令以获取配置单元命令位置
打开/usr/bin/(您的配置单元位置)下的“配置单元”文件
你应该看到下面这样的东西。对配置单元文件进行备份,并在exec之前的末尾为hadoop\u类路径添加echo命令,如下所示。
运行hive命令以显示类路径。
通过向环境变量'hadoop\u classpath'添加新的Parquetjar位置,解决了Parquet问题
y53ybaqx2#
如果您确定它使用的是旧版本的parquet,那么它必须存在于计算机上,因此您可以在文件系统中查找所有parquet jar:
find / -name 'parquet-*.jar'
如果您想从计算机上可用的jar中检查它使用的特定jar,您可以尝试使用lsof
为此目的。我会从lsof | grep parquet | grep jar
如果需要,进一步微调过滤。1aaf6o9v3#
要列出jar路径,请使用命令list jarsmore details;
并将jar添加到hive-site.xml中的hive.aux.jars.path位置(add auxiliary jar)
hive-site.xml示例
更新
检查hive hive.aux.jars.path属性并查找物理路径。