大數據系列之數據倉庫Hive安裝 大數據系列之Hadoop分佈式集羣部署 Linux學習之CentOS(十三)--CentOS6.4下Mysql數據庫的安裝與配置 使用MySQL命令行新建用戶並授予權

Hive系列博文,持續更新~~~html

大數據系列之數據倉庫Hive原理

大數據系列之數據倉庫Hive安裝

大數據系列之數據倉庫Hive中分區Partition如何使用

大數據系列之數據倉庫Hive命令使用及JDBC鏈接

 

Hive主要分爲如下幾個部分java

⽤戶接口
1.包括CLI,JDBC/ODBC,WebUI
元數據存儲(metastore)
1.默認存儲在⾃帶的數據庫derby中,線上使⽤時⼀般換爲MySQL
驅動器(Driver)
1.解釋器、編譯器、優化器、執⾏器
Hadoop
1.⽤MapReduce 進⾏計算,⽤HDFS 進⾏存儲node

 

前提部分:Hive的安裝須要在Hadoop已經成功安裝且成功啓動的基礎上進行安裝。若沒有安裝請移步至大數據系列之Hadoop分佈式集羣部署mysql

使用包: apache-hive-2.1.1-bin.tar.gz, mysql-connector-java-5.1.27-bin.jarsql

 雲盤,密碼:seni數據庫

本文將Hive安裝在Hadoop Master節點上,如下操做僅在master服務器上進行操做。apache

1. 切換至普通用戶 su mfz安全

2. 將gz包上傳至目錄下bash

  /home/mfz服務器

3.解壓

tar -xzvf apache-hive-2.1.1-bin.tar.gz

 4.目錄:

5.建立hive-site.xml

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>

        <name>hive.metastore.uris</name>

        <value>thrift://localhost:9083</value>

        <description>ThriftURIfor theremotemetastore. Usedbymetastoreclientto connectto remotemetastore.</description>

    </property>

    <property>

        <name>hive.server2.thrift.port</name>

        <value>10000</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://localhost:3306/hive_13?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>hadoop</value>

    </property>

    <property>

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

        <value>hadoop</value>

    </property>

    <property>

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

        <value>false</value>

    </property>

    <property>

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

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

        <description>locationofdefault databasefor thewarehouse</description>

    </property>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:9000</value>

    </property>

    <property>

        <name>datanucleus.autoCreateSchema</name>

        <value>true</value>

    </property>

    <property>

        <name>datanucleus.autoStartMechanism</name>

        <value>SchemaTable</value>

    </property>

    <property>

        <name>datanucleus.schema.autoCreateTables</name>

        <value>true</value>

    </property>

    <property>

        <name>beeline.hs2.connection.user</name>

        <value>mfz</value>

    </property>

    <property>

        <name>beeline.hs2.connection.password</name>

        <value>111111</value>

    </property>

</configuration>

   5.1由配置文件可看出,咱們須要mysql的數據庫hive_13,數據庫用戶名爲hadoop,數據庫密碼爲hadoop.

6.安裝mysql 

  6.1 安裝參考文章:Linux學習之CentOS(十三)--CentOS6.4下Mysql數據庫的安裝與配置

  6.2 創建mysql數據庫、用戶、權限 參考文章:使用MySQL命令行新建用戶並授予權限的方法

7.啓動驗證Mysql是否安裝配置成功 :使用hadoop用戶登陸  

 mysql -u hadoop -p 

 

8.配置hive環境變量:

vi /home/mfz/.bash_profile  
#Hive CONFIG
export HIVE_HOME=/home/mfz/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin

#wq .bash_profile
#生效配置
source /home/mfz/.bash_profile   
#驗證是否生效
echo $HIVE_HOME

[mfz@master apache-hive-2.1.1-bin]$ echo $HIVE_HOME                                                                                  
/home/mfz/apache-hive-2.1.1-bin 

9. 將mysql的java connector複製到依賴庫中

cp resources/msyql/mysql-connector-java-5.1.27-bin.jar apache-hive-2.1.1-bin/bin/

10.啓動hive,命令: hive;  若出現以下幾種錯誤請參照對應解決方案;

錯誤1:

  緣由:Hive metastore database is not initialized

  解決方案:執行命令

schematool -dbType mysql -initSchema

 錯誤2:

  緣由:hadoop 安全模式打開致使

  解決方案:執行命令

#關閉hadoop安全模式
hadoop dfsadmin -safemode leave

 11.啓動hive.

  A.方式1: hive命令

  B.方式2(重要):

  beeline

  !connect jdbc:hive2://master:10000/default mfz 111111

  說明default是database名稱,mfz是master服務器用戶,111111是用戶的登陸密碼.

  由於beeline是取代hive客戶端的新客戶端,它訪問HS2來發起hive操做,可是別急着敲下命令,繼續往下看:這裏涉及一個hadoop.proxy的概念:默認HS2是以user=anonymous身份訪問Hdfs的,咱們稱HS2是hadoop的一個代理服務。可是,咱們實際上但願以mfz身份去訪問hdfs,由於此前建立的hive數據目錄都是屬於mfz用戶的,anonymous是沒法訪問的,那麼此時就須要給hadoop配置一個proxyuser,意思是HS2代理能夠支持用戶以mfz身份訪問hdfs,而不是anonymous用戶。

爲了實現這個能力,須要修改hadoop項目的core-site.xml配置來實現(記得重啓namenode和datanode):

<property>
<name>hadoop.proxyuser.mfz.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.mfz.hosts</name>
<value>*</value>
</property>

10.hive 使用命令.

數據定義語句DDL
Create/Drop/Alter Database
Create/Drop/Truncate Table
Alter Table/Partition/Column
Create/Drop/Alter View
Create/Drop/Alter Index
Create/Drop Function
Create/Drop/Grant/Revoke Roles and Privileges
Show
Describe

完~ 關於Hive的Nosql操做命令與Jdbc訪問Hive方式見博文 大數據系列之數據倉庫Hive使用

 

轉載請註明出處:

做者:mengfanzhu

原文連接:http://www.cnblogs.com/cnmenglang/p/6661488.html

相關文章
相關標籤/搜索