環境如下
linux版本:CentOS 7.5.1804
jdk版本:jdk1.8.0_201
hadoop版本:hadoop-2.6.0-cdh5.10.0
hive版本:hive-1.1.0-cdh5.10.0
一、JDK
請參考文章 JDK1.8安裝
二、安裝Hadoop
請參考文章 安裝hadoop2.6.0(僞分佈式)
三、Mysql安裝
本質上,hive只是個工具,包括它的數據分析,依賴於mapreduce,它的數據管理,依賴於外部系統。
這一步其實不是必須的,因爲Hive默認的metadata(元數據)是存儲在Derby裏面的,但是有一個弊端就是同一時間只能有一個Hive實例訪問,這僅適合做開發程序時做本地測試,無法多用戶同時訪問。
爲此,Hive提供了增強配置,可將數據庫替換成mysql等關係型數據庫,將存儲數據獨立出來在多個服務示例之間共享。
具體安裝步驟請參考文章 Centos7 Yum安裝 MySQL 5.7
四、Hive安裝
Hive我選用了hive-1.1.0-cdh5.10.0的版本
下載地址直接去官方下載就行
官方地址:https://archive.cloudera.com/cdh5/cdh/5/
或是直接點擊此鏈接進行下載 hive-1.1.0-cdh5.10.0.tar.gz
下載後將壓縮包上傳到服務器的制定路徑(如果不清楚如何操作的可查看文章:通過 Xshell 上傳文件到服務器 rzsz)
解壓
tar -zxvf hive-1.1.0-cdh5.10.0.tar.gz
配置環境變量
修改 /etc/profile
文件:
vim /etc/profile
在文件中加入以下內容:
export HIVE_HOME=~/lib/hive-1.1.0-cdh5.10.0
修改 PATH,添加hive操作路徑
例如:
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
注:HIVE_HOME是你的 hive安裝的根目錄
跟新配置
source /etc/profile
上傳JDBC包
cp mysql-connector-java-5.1.40-bin.jar ~/lib/hive-1.1.0-cdh5.10.0/lib
配置Hive
進入apache-hive-1.0.1-bin/conf目錄
1. 根據模板文件創建 hive-env.sh
文件
cp hive-env.sh.template hive-env.sh
2. 修改 hive-env.sh
文件
新增:
export HADOOP_HOME=~/lib/
export HIVE_CONF_DIR=/root/apache-hive-1.0.1-bin/conf
3. 設置 hive-site.xml
文件
創建文件
touch hive-site.xml
配置文件
vim hive-site.xml
設置爲
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<!--172.16.12.160是Hive部署節點的IP,不是Hadoop集羣master的IP -->
<value>172.16.12.160</value>
</property>
<property>
<name>hive.server2.long.polling.timeout</name>
<value>5000</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.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value><!-- 數據庫連接用戶名 -->
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value><!-- 數據庫連接密碼 -->
</property>
<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.hwi.war.port</name>
<value>9999</value>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>/lib/hive-hwi-1.0.1.war</value>
</property>
</configuration>
注:如果你的數據庫不和hive在同一節點,請配置mysql遠程連接用戶的賬號和密碼
驗證hive
在命令行輸入 hive
hive
(1). 建表
create table t1(a int, b int, c int) row format delimited fields terminated by '\t';
查看錶信息
desc t1;
注:還可以通過mysql查看t1表的meta信息
(2). 加載本地數據
load data local inpath '/soft/t1.txt' overwrite into table t1;
沒有報錯,顯示正常,安裝完成
青冥有曉月