1. 程式人生 > >hive安裝簡要指南

hive安裝簡要指南

這裡記錄一下hive安裝的步驟,主要參考 https://blog.csdn.net/jssg_tzw/article/details/72354470

hive需要把元資料儲存在資料庫中,預設的derby不能多程序訪問,因此這裡使用mysql來儲存。centos2.7 預設是沒有mysql的,需要手動安裝mysql。可以使用wget方式安裝:

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y install mysql mysql-server mysql-devel

啟用服務並修改密碼:

systemctl start mysqld.service
mysql -uroort

mysql>set password for [email protected] = password('123');

下載hive,上傳到namenode伺服器上,解壓,同時建立一個/home/deploy/hive/tmp資料夾用於存放臨時檔案。在叢集上建立如下資料夾:

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/

修改/etc/profile,增加兩行:

export HIVE_HOME=/home/deploy/apache-hive-2.1.1-bin
export HIVE_CONF_DIR=${HIVE_HOME}/conf 

執行source /etc/profile使其生效。
進入conf資料夾,執行:

cp hive-default.xml.template hive-site.xml

將hive-site.xml中的${system:java.io.tmpdir}替換為hive的臨時目錄,將${system:user.name}都替換為root。
搜尋javax.jdo.option.ConnectionURL,將該name對應的value修改為MySQL的地址,例如我修改後是:

<name>javax.jdo.option.ConnectionURL</name>  
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

搜尋javax.jdo.option.ConnectionDriverName,將該name對應的value修改為MySQL驅動類路徑,例如我的修改後是:

<name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> 

搜尋javax.jdo.option.ConnectionUserName,將對應的value修改為MySQL資料庫登入名:

<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>

搜尋javax.jdo.option.ConnectionPassword,將對應的value修改為MySQL資料庫的登入密碼:

<name>javax.jdo.option.ConnectionPassword</name>
 <value>123</value>

搜尋hive.metastore.schema.verification,將對應的value修改為false:

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

下載mysql驅動 https://pan.baidu.com/s/1pLsA48F
上傳到hive的lib資料夾下。
開啟防火牆,新增3306埠:

systemctl start firewalld
firewall-cmd --permanent --add-port=3306/tcp

這樣就能使用hive了。

如果要用spark連線hive,則將hive-site.xml放到spark的conf資料夾下,並新增

<property>
   <name>hive.metastore.uris</name>
   <value>thrift://IP:9083</value>
</property>

然後hive --service metastore&啟用後臺服務。
接著將mysql驅動放到spark的jars目錄下,在pyspark中輸入:

hive = SparkSession.builder.enableHiveSupport().getOrCreate()

即可在pyspark中使用hive。