# !/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
fi
...
if [ -z "${HADOOP_CLASSPATH}" ]; then
export HADOOP_CLASSPATH=${HCATALOG_JAR_PATH}
else
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${HCATALOG_JAR_PATH}
fi
####### Prints hadoop classpath
echo "Classpath=$HADOOP_CLASSPATH"
exec "${HIVE_HOME}/bin/hive.distro" "$@"
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属性并查找物理路径。