hive on tez,为了这个配置今天是第四天了,MLGB的!!!
################################环境配置如下##########################################
###################################################################################################
这个报错是在启动hive客户端的时候触发了。
######################################下面是解决方案#####################################
直接说解决方案:
~/.bashrc中加入(应该也可以是$HADOOP_HOME/etc/hadoop/hadoop-env.sh,根据自己喜好即可)
export TEZ_HOME=/home/appleyuchi/bigdata/apache-tez-0.9.2-binfor jar in `ls $TEZ_HOME |grep jar`; doexport HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jardonefor jar in `ls $TEZ_HOME/lib`; doexport HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jardone
然后source ~/.bashrc
不用重启任何集群
重新启动hive客户端,就会发现报错消失。
##############################下面是错误配置的分析(可以跳过不看)##############################
注意:
有些同学非常自信(我一开始也是这样),
写成如下:
export TEZ_CONF_DIR=$TEZ_HOME/confexport TEZ_JARS=$TEZ_HOME/*:$TEZ_HOME/lib/*export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_CONF_DIR:$TEZ_JARSexport HIVE_AUX_JARS_PATH=$HADOOP_HOME/share/hadoop/common/hadoop-lzo-0.4.13.jar:$TEZ_JARS
上述写法写法会导致报错
②ERROR [main] common.FileUtils: The jar file path file:///home/appleyuchi/bigdata/apache-tez-0.9.2-bin/* doesn't exist
然后无论你写成:
export TEZ_JARS=$TEZ_HOME/*
export TEZ_JARS=$TEZ_HOME/*.jar
export TEZ_JARS=$TEZ_HOME
都会报类似②的错误
有人反驳:
但是我以前写别的环境变量的时候明明就是这么写的啊(例如CLASSPATH),为什么设置TEZ环境变量的时候不是这么写?
因为TEZ对环境变量的处理方式比较特殊,所以你就老老实实照着写吧
你要注意,这个环境变量是被TEZ的脚本获取之后进行处理,不同软件在获取环境变量后的处理方式不同,处理方式的不同也就意味着你的环境变量的写法可能不同。
你可以回想下,你用python读取数据的时候,这个数据是有特定格式要求的。
###################################################################################################
Reference:
/A/q4zVWZexJK/