1.背景
问题1:hive依赖检查出现问题,没有通过检查
错误如下:
find: -printf: unknown primary or operator
Current HIVE_LIB is not valid, please export HIVE_LIB='YOUR_LOCAL_HIVE_LIB'
错误原因:mac 下面 find 查找文件命令行不支持 -printf ‘%p:’ ,出错位置是在find-hive-dependency.sh 大概201行的位置。错误代码如下:
hive_lib=`find -L ${hive_lib_dir} -name '*.jar' ! -name '*druid*' ! -name '*slf4j*' ! -name '*avatica*' ! -name '*calcite*' ! -name '*jackson-datatype-joda*' ! -name '*derby*' -printf '%p:' | sed 's/:$//'`
这段命令的意思就是查找相关的jar包,并用冒号把jar包的绝对地址连接起来。
解决办法:用awk代替,修改如下:
hive_lib=`find -L ${hive_lib_dir} -name '*.jar' ! -name '*druid*' ! -name '*slf4j*' ! -name '*avatica*' ! -name '*calcite*' ! -name '*jackson-datatype-joda*' ! -name '*derby*' | awk '{printf "%s:", $1}'|sed 's/:$//'`