- 系统:WSL2 + ubuntu 20.04。
- Metastore数据库管理器:MySQL8,库名:hive,帐户名:hive 。需要自己下载对应版本的java-connector,将jar放到hive的lib目录中。
- Hadoop是伪分布模式。
- $HIVE_HOME/conf/hive-site.xml:
<configuration>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
</property>
</configuration>
- $HIVE_HOME/conf/hive-env.xml:
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/app/hadoop330
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/app/hive312/conf
export TEZ_HOME=/app/apache-tez-0.9.2-bin
for jar in `ls $TEZ_HOME |grep jar`; do
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
done
注意Classpath的问题,Tez中有许多与Hadoop重复的jar,但版本不一样,放在$TEZ_HOME/lib中,不要将它们加入Classpath!
- $HIVE_HOME/conf/tez.xml:
<configuration>
<property>
<name>tez.lib.uris</name>
<value>hdfs://localhost:9000/tez/apache-tez-0.9.2-bin.tar.gz</value>
</property>
<property>
<name>tez.use.cluster.hadoop-libs</name>
<value>true</value>
</property>
<property>
<name>tez.history.logging.service.class</name>
<value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property>
</configuration>
注意第一条配置,表示需要将tez二进制包上传到hdfs的某个目录下。