天天看點

hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署

文章目錄

  • 一.什麼是Hive?
  • 二.Hive與傳統資料庫比對
  • 三.Hive部署
    • 1.下載下傳與安裝
    • 2.Hive需要提前裝好MySQL
    • 3.Hive配置檔案修改
    • 4.啟動(需要先啟動hdfs)

一.什麼是Hive?

  • Hive是建立在Hadoop上的工具.能夠幫助使用者屏蔽掉複雜的MapReduce邏輯,隻需要使用者使用簡單的SQL語句即可完成一定的查詢功能
  • Hive利用HDFS存儲資料,利用MapReduce查詢資料

二.Hive與傳統資料庫比對

Hive RDMS
查詢語言 HQL SQL
資料存儲 HDFS Raw Device or Local FS
執行 MapReduce Executor
執行延遲
處理資料規模
索引 0.8版本後加入 複雜索引機制
  • 注:Hive具有SQL資料庫的很多類似功能,但應用場景不同,隻适合做批量資料統計分析

三.Hive部署

1.下載下傳與安裝

  • 1)下載下傳連結: https://pan.baidu.com/s/1ktOAPcRuctId60m_38tcQg 提取碼: mk39
  • 2)将hive安裝包拖入opt目錄下解壓安裝:

    tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz

  • 3)改名:

    mv hive-1.1.0-cdh5.14.2/ hive

  • 4)删除安裝包:

    rm -rf hive-1.1.0-cdh5.14.2.tar.gz

  • 5)配置環境變量:

    vi /etc/profile

    ,添加以下内容:
export HIVE_PATH=/opt/hive
export PATH=$PATH:$HIVE_PATH/bin
           
  • 6)輸入:

    source /etc/profile

    ,使其生效

2.Hive需要提前裝好MySQL

安裝MySQL

  • 安裝完成後需要給root使用者賦權;
grant all on *.* to root@'hadoop110';
flush privileges;
           

3.Hive配置檔案修改

  • 1.進入配置檔案目錄: cd /opt/hive/conf/
  • 2)建立

    hive-site.xml

    檔案:

    vi hive-site.xml

    ,添加如下内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>hdfs://hadoop110:9000/hive/warehouse</value>
               <description>管理表存儲的位置,可以是linux中的目錄,也可以是相對于fs.default.name有關的目錄</description>
        </property>
        <property>
                <name>hive.metastore.local</name>
                <value>true</value>
        </property>
        <!-- 指定hive中繼資料存儲的MySQL位址 -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://127.0.0.1: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>root</value>
        </property>
        <!-- 中繼資料存儲資料庫的密碼,(注:這裡是mysql自己root使用者的密碼) -->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>ok</value>
        </property>
        <property>
                <name>hive.server2.authentication</name>
                <value>NONE</value>
        </property>
        <property>
                <name>hive.server2.thrift.client.user</name>
                <value>root</value>
         </property>
         <property>
                <name>hive.server2.thrift.client.password</name>
                <value>ok</value>
         </property>
</configuration>
           
  • 3)建立

    hive-env.sh

    檔案:

    vi hive-env.sh

    ,添加如下内容:
export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.14.2
export HIVE_HOME=/opt/hive
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_AUX_JARS_PATH=/opt/hive/lib
export JAVA_HOME=/opt/jdk1.8.0_221
export HIVE_CONF_DIR=/opt/hive/conf
           
  • 4)修改hive-log4j.properties,配置hive的log,先改名,

    mv hive-log4j.properties.template hive-log4j.properties

  • 進入檔案:

    vi hive-log4j.properties

    ,之後按20gg快速定位,修改為如下内容:
hive.log.dir=/opt/hive/logs
           
  • 5)建立配置檔案需要的目錄:

    mkdir /opt/hive/warehouse

    ,

    mkdir /opt/hive/logs

  • 6)将mysql-connector-java-5.1.0-bin.jar包拖到$HIVE_HOME/lib目錄下
  • 7)給hive檔案賦權:

    chmod -R 777 /opt/hive

4.啟動(需要先啟動hdfs)

  • 1)初始化mysql資料庫:

    schematool -initSchema -dbType mysql

    ,效果如下:
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署
  • 2)輸入:

    hive

    ,進入hive指令行模式,效果如下:
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署
  • 3)使用SQLyog可發現已建立hive資料庫,如下:
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署
  • 4)輸入:

    show tables;

    效果如下(剛開始沒有表):
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署
  • 5)建立一個再檢視,效果如下:
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署
  • 6)輸入:

    exit;

    退出hive指令行
  • 7)如果warehouse目錄存儲在hdfs上可以去50070端口檢視建立的表,如下:
    hadoop元件之hive環境搭建一.什麼是Hive?二.Hive與傳統資料庫比對三.Hive部署