機器:
10.211.55.67 master
10.211.55.68 slave1
10.211.55.69 slave2
hive官網下載地址:http://mirror.bit.edu.cn/apache/hive/
配置環境變量
#hive
export HIVE_HOME=/home/apache-hive-3.1.2/
export PATH=$PATH:$HIVE_HOME/bin
進入conf,拷貝配置文件
cp hive-default.xml.template hive-site.xml
修改以下配置-mysql
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- mysql 連接URL 如果hive和mysql在同一服務器上,使用localhost -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://10.211.55.70:3306/myhive</value>
</property>
<!-- mysql 連接用戶名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- mysql 連接密碼 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root!</value>
</property>
<!-- mysql 連接驅動 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
</configuration>
下載mysql-connector-java/5.1.6 放在hive/lib 目錄下
mysql創建hive database
執行
schematool -initSchema -dbType mysql
遇到的問題解決
1、
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
解決
<property>
<name>system:java.io.tmpdir</name>
<value>/home/root/hdp/tmpdir</value>
</property>
<property>
<name>system:user.name</name>
<value>hive</value>
</property>
2、
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5099)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
解決
查看hadoop安裝目錄下share/hadoop/common/lib內guava.jar版本
查看hive安裝目錄下lib內guava.jar的版本 如果兩者不一致,刪除版本低的,並拷貝高版本的 問題解決!