前言
集羣我們已經弄好了,本章開始搭建hive。
1.hive介紹
1.Hive是什麼?
官方解釋:Hive是基於Hadoop的數據倉庫解決方案。由於Hadoop本身在數據存儲和計算方面有很好的可擴展性和高容錯性,因此使用Hive構建的數據倉庫也秉承了這些特性。
簡單來說,Hive就是在Hadoop上架了一層SQL接口,可以將SQL翻譯成MapReduce去Hadoop上執行,這樣就使得數據開發和分析人員很方便的使用SQL來完成海量數據的統計和分析,而不必使用編程語言開發MapReduce那麼麻煩。
2.hive經典架構圖
如圖中所示,Hive通過給用戶提供的一系列交互接口,接收到用戶的指令(SQL),使用自己的Driver,結合元數據(MetaStore),將這些指令翻譯成MapReduce,提交到Hadoop中執行,最後,將執行返回的結果輸出到用戶交互接口。
在使用過程中,至需要將Hive看做是一個數據庫就行,本身Hive也具備了數據庫的很多特性和功能。
Hive擅長的是非實時的、離線的、對響應及時性要求不高的海量數據批量計算,即席查詢,統計分析。
2. centos7安裝mysql
目的:爲了存儲hive的元數據表,如果用hive自帶的Derby庫,起一個hive shell連接就要單獨創建一個庫,不能夠共享元數據表。
1.直接yum安裝沒有源,所以先下載rpm包
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2.查看當前可用的mysql安裝資源
yum repolist enabled | grep “mysql.-community.”
3.yum方式安裝mysql
yum -y install mysql-community-server
4.開機啓動
systemctl enable mysqld
5.啓動mysql服務進程
systemctl start mysqld
6.重置密碼
mysql_secure_installation
7.進入mysql命令行,mysql -uroot -p123
執行下面的語句 ( .:所有庫下的所有表 %:任何IP地址或主機都可以連接 root 和 123是mysql的用戶密碼):
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;
FLUSH PRIVILEGES; //權限立即生效
3.安裝hive
1.將下載好的tar包(版本別下錯,前面章節已經介紹版本)上傳到hadoop203
2.tar -zxvf 解壓,將hive加入環境變量
vim /etc/profile
export HIVE_HOME=/home/hadoop/hive
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
source /etc/profile
3.新增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>/hivedata/warehouse/</value>
<description>Hive在HDFS上的根目錄,內部表的hdfs目錄</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.8.203:3306/hive?createDatabaseIfNotExist=true</value>
<description>Hive元數據庫的連接串,紅色爲數據庫名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Hive元數據庫JDBC驅動</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Hive元數據庫用戶名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
<description>Hive元數據庫密碼</description>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
<description>不存在時,自動創建Hive元數據表</description>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
<description>不存在時,自動創建Hive元數據列</description>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoStartMechanism</name>
<value>SchemaTable</value>
</property>
</configuration>
至此,hive配置就基本完成!