1. 程式人生 > 其它 >Hive系列(二)安裝部署

Hive系列(二)安裝部署

技術標籤:Hive

Hive系列(二)安裝部署

一、環境準備

1.1 JDK

JDK1.8

1.2 Haoop

hadoop2.7.3

1.3 MySQL

建立hive使用者

mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive_123';

給hive使用者授權

mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive_123';

二、安裝

2.1 解壓安裝包

[[email protected] ~]# tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /usr/local/

2.2 配置環境變數

[[email protected]
~]# vim /etc/profile

新增以下內容:

export HIVE_HOME=/usr/local/hive-2.3.6 
export PATH=$PATH:$HIVE_HOME/bin 

儲存:

[[email protected] ~]# source /etc/profile

2.3 修改配置檔案

2.3.1 將conf目錄下帶有template的檔案複製一份

[[email protected] conf]# cp hive-default.xml hive-site.xml
[[email protected] conf]# cp hive-env.sh.template hive-env.sh
[
[email protected]
conf]# cp hive-log4j2.properties.template hive-log4j2.properties [[email protected] conf]# cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

2.3.2 修改conf/hive-env.sh檔案

# jdk路經
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
# hadoop路經
export HADOOP_HOME=/usr/local/hadoop-2.7.3
# hive路經
export HIVE_HOME=/usr/local/hive-2.3.6
# hive配置檔案路經
export HIVE_CONF_DIR=/usr/local/hive-2.3.6/conf

2.3.3 建立以下目錄並授權

[[email protected] conf]# hdfs dfs -mkdir -p /hive/warehouse
[[email protected] conf]# hdfs dfs -mkdir -p /hive/tmp
[[email protected] conf]# hdfs dfs -mkdir -p /hive/log
[[email protected] conf]# hdfs dfs -chmod -R 777 /hive/warehouse
[[email protected] conf]# hdfs dfs -chmod -R 777 /hive/tmp
[[email protected] conf]# hdfs dfs -chmod -R 777 /hive/log

2.3.4 修改conf/hive-site.xml檔案

<property>
    <name>hive.exec.scratchdir</name>
    <value>/hive/tmp</value>
  </property>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hive/warehouse</value>
  </property>
<property>
    <name>hive.querylog.location</name>
    <value>/hive/log</value>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
  </property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
  </property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>        
    <value>hive_123</value>      
  </property> 

建立mkdir /opt/hive/tmp
在配置檔案 hive-site.xml 裡面
把$ {system:java.io.tmpdir} 改成 /opt/hive/tmp (一共有3處)
把$ {system:user.name} 改成 {user.name} (一共有2處)

2.3.5 將下載的jdbc驅動jar包放到lib目錄下

[[email protected] mirrors]# cp mysql-connector-java-5.1.47.tar.gz /usr/local/hive-2.3.6/lib/

2.3.6 初始化Hive

[[email protected] lib]# schematool -dbType mysql -initSchema

出現了一個錯誤:

Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
Use --verbose for detailed stacktrace.
*** schemaTool failed ***

這個錯誤是因為之前你的資料庫名字或者表的名字已經存在啦,需要你把之前的刪了或者在重新建立一個新的

三、啟動hive

[[email protected] conf]# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive-2.3.6/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in file:/usr/local/hive-2.3.6/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> show databases;
OK
default
Time taken: 2.859 seconds, Fetched: 1 row(s)

查詢資料庫, Hive中有一個預設的資料庫default,出現以上資訊表示安裝配置好了