Linux Hadoop2.7.2 Hive2.3.2 安裝
阿新 • • 發佈:2018-11-15
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
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');