1. 程式人生 > >Linux Hadoop2.7.2 Hive2.3.2 安裝

Linux Hadoop2.7.2 Hive2.3.2 安裝

Hive 是一個數據倉庫工具,曾經ETL是資料倉庫必備工具,DB2、ORACLE、SqlServer等資料庫廠商提供各種資料倉庫工具,網際網路的到來使這些資料庫工具略顯老態。


1.Hadoop環境


伺服器
主機名 IP地址 JDK 使用者
Master 10.116.33.109 1.8.0_65 root
slave1 10.27.185.72 1.8.0_65 root
slave2 10.25.203.67 1.8.0_65 root

2.下載Hive

http://hive.apache.org/downloads.html

apache-hive-2.3.2-bin.tar.gz


3.安裝

3.1解壓

cd    /data/spark
tar  -zxvf  apache-hive-2.3.2-bin.tar.gz

3.2配置環境變數

vim ~/.bash_profile
配置項
export  HIVE_HOME=/data/spark/apache-hive-2.3.2-bin
export  HIVE_CONF_DIR=$HIVE_HOME/conf 
export  HIVE_CLASSPATH=$HIVE_HOME/lib
export  PATH=$HIVE_HOME/bin:$PATH 

執行 source ~/.bash_profile使環境變數生效

完整的配置項

 export HADOOP_HOME=/data/spark/hadoop-2.7.2
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export YARN_HOME=$HADOOP_HOME
 export HADOOP_ROOT_LOGGER=INFO,console
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export HBASE_HOME=/data/spark/hbase-2.0.0-alpha4
export PATH=$HBASE_HOME/bin:$PATH  
export HBASE_CLASSPATH=/data/spark/hbase-2.0.0-alpha4/conf

export  HIVE_HOME=/data/spark/apache-hive-2.3.2-bin
export  HIVE_CONF_DIR=$HIVE_HOME/conf
export  HIVE_CLASSPATH=$HIVE_HOME/lib
export  PATH=$HIVE_HOME/bin:$PATH


3.3Hive配置

配置hive-site.xml檔案

cd /data/spark/apache-hive-2.3.2-bin/conf
cp   hive-default.xml.template   hive-site.xml

3.4建立hdf目錄

hive-site.xml目錄配置hive目錄

<name>hive.metastore.warehouse.dir</name>

  <value>/user/hive/warehouse</value>

   <name>hive.exec.scratchdir</name>

  <value>/tmp/hive</value>

通過hadoop 建立目錄,授權、檢視目錄
hadoop   fs   -mkdir   -p   /user/hive/warehouse
hadoop   fs   -chmod   777   /user/hive/warehouse 

hadoop   fs   -mkdir  -p   /tmp/hive/
hadoop   fs   -chmod  777   /tmp/hive

hadoop   fs   -ls   /user/hive/
hadoop   fs   -ls   /tmp/


3.5建立Hive臨時目錄,修改Hive-site.xml

1.hive.downloaded.resources.dir 項改為/data/hive/tmp
讀寫許可權:chmod 777 -R /data/hive/tmp
2.hive.server2.logging.operation.log.location 項修改引數 將${system:user.name}都替換為root
<property>
<name>hive.exec.scratchdir</name>
<value>/data/hive/tmp/</value>
<description>指定了Hive資料在HDFS上的臨時檔案目錄</description>
</property>

<property>
<name>hive.querylog.location</name>
<value>/data/hive/log</value>
<description>Location of Hive run time structured log file</description>
</property>

3.6配置資料庫,修改hive-site.xml

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.139.200:3306/hive?useSSL=false&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8</value>
<description>通過jdbc協議連線mysql的hive庫</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>jdbc的mysql驅動</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>mysql使用者名稱</description>
</property>
  
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>mysql使用者密碼</description>
</property>

<property>    
<name>hive.metastore.schema.verification</name>    
<value>false</value>    
<description>   </description>    
</property>

<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-1.2.1.war</value>
<description>hive的web頁面</description>
</property>

3.7  hive-env.sh配置

cd /data/spark/apache-hive-2.3.2-bin/conf
cp    hive-env.sh.template    hive-env.sh
vim hive-env.sh
export  HADOOP_HOME=/data/spark/hadoop-2.7.2
export  HIVE_CONF_DIR=/data/spark/apache-hive-2.3.2-bin/conf
export  HIVE_AUX_JARS_PATH=/data/spark/apache-hive-2.3.2-bin/lib
避免出現:hive Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be i報錯

4.啟動和測試

4.1.MYSQL資料庫初始化

cd   /data/spark/apache-hive-2.3.2-bin/bin
schematool   -initSchema  -dbType  mysql
檢視輸出日誌,檢查是否正確建立表結構。

4.2.啟動Hive

啟動hive的cli服務
執行 hive ,如果後臺執行Hive nohup hive > hive.log 2>&1 & 啟動服務以下2種方式:
nohup hiveserver2> hiveserver2.log 2>&1 &
nohup hive --service hiveserver2> hiveserver2.log 2>&1 &

5.常用命令

--執行檢視函式的命令:
show  functions;

--執行檢視sum函式的詳細資訊的命令:
desc function  sum;

--執行新建資料庫的hive命令:
create database  db_hive_test;

--建立資料表
use  db_hive_test;
create  table  student(id int,name string)  row  format  delimited  fields   terminated  by  '\t';

--手動指定儲存位置
create database hive02 location '/hive/hive02';

--新增其他資訊(建立時間及資料庫備註)
create database hive03 comment 'it is my first database' with dbproperties('creator'='kafka','date'='2015-08-08');

--檢視資料庫的詳細資訊
describe database hive03;
--更詳細的檢視
describe database extended hive03;

--最優的檢視資料庫結構的命令
describe database formatted hive03;

--database只能修改dbproperties裡面內容
alter database hive03 set dbproperties('edited-by'='hanmeimei');