Hive的安裝部署及測試

![Uploading hive6_786401.png . . .]
](http://upload-images.jianshu.io/upload_images/3068725-de9d189c6ac9218c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

啟動Hadoop各個進程并測試

  1. 啟動各個進程


    hive2.png
  2. 查看hdfs和resourcemanager的web管理界面


    hive3.png

    hive4.png
  3. 向Hadoop上傳文件進行測試

[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -ls /
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -mkdir /test
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -put /etc/hosts /test
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -ls /test
Found 1 items
-rw-r--r-- 3 wulei supergroup 237 2016-10-22 17:22 /test/hosts

安裝Hive

  1. 解壓Hive

[wulei@bigdata-00 softwares]$ tar zxf apache-hive-0.13.1-bin.tar.gz -C /opt/modules/

  1. 配置Hive。需要把conf目錄下的模板配置文件hive-env.sh.template拷貝并重命名為hive-env.sh。并修改文件中的下面兩行,指定hadoop的目錄和加載配置文件的目錄。

HADOOP_HOME=/opt/modules/hadoop-2.5.0
export HIVE_CONF_DIR=/opt/modules/hive-0.13.1/conf

  1. 在hdfs上創(chuàng)建數(shù)據(jù)倉庫目錄和臨時存儲文件的目錄,并且賦予寫的權(quán)限

[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -mkdir /tmp
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /user/hive/warehouse
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -chmod g+w /tmp
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -chmod g+w /user/hive/warehouse

  1. 進入交互式命令,并簡單測試。


    hive5.png

安裝Mysql并與Hive建立連接

由于hive默認的derby數(shù)據(jù)庫不能多實例(不能多個客戶端),所以選擇Mysql來存儲Hive中的元數(shù)據(jù)。

  1. yum安裝mysql-server并啟動進程

[wulei@bigdata-00 ~]$ yum install -y mysql-server
[wulei@bigdata-00 ~]$ sudo /etc/init.d/mysqld start
[wulei@bigdata-00 ~]$ /etc/init.d/mysqld status
mysqld (pid 26011) is running...

  1. 設置mysql登陸密碼

[wulei@bigdata-00 ~]$ mysqladmin -u root password '123456'

  1. 進入mysql設置用戶連接權(quán)限,最后重啟服務。

[wulei@bigdata-00 ~]$ mysql -u root -p
Enter password:
mysql> use mysql;
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> delete from user where user='root' and host'127.0.0.1';
....
mysql> flush privileges;

  1. Hive配置文件修改
    需要在conf目錄下手動創(chuàng)建hive-site.xml文件。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/metasotre?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>
<property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>123456</value>
</property>
</configuration>
  1. 拷貝mysql驅(qū)動包
    把mysql驅(qū)動jar包放到Hive安裝目錄的lib下

[wulei@bigdata-00 hive-0.13.1]$ cp /opt/softwares/mysql-connector-java-5.1.27-bin.jar /opt/modules/hive-0.13.1/lib/

  1. 連接測試
    在成功建立連接后,進入mysql數(shù)據(jù)庫,會發(fā)現(xiàn)多了一個metastore數(shù)據(jù)庫,這個數(shù)據(jù)庫就是用來存儲hive的元數(shù)據(jù)信息。
hive6.png
  1. 其他常用配置
  • 在hive-site.xml中配置cli命令顯示數(shù)據(jù)庫名稱和列標題名。
<property>
        <name>hive.cli.print.header</name>
        <value>true</value>
</property>
<property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
</property>
  • hive默認的日志目錄是在linux本地目錄/tmp/user_name中,為了方便管理,修改日志存放的目錄。把conf目錄下面的hive-log4j.properties.template重命名為hive-log4j.properties,并修改hive.log.dir的值。
hive.log.threshold=ALL
hive.root.logger=INFO,DRFA
hive.log.dir=/opt/modules/hive-0.13.1/logs
hive.log.file=hive.log

8.使用HQL

  • 創(chuàng)建數(shù)據(jù)庫以及相關(guān)的操作。創(chuàng)建完一個數(shù)據(jù)庫后會發(fā)現(xiàn)一個數(shù)據(jù)庫對應hadoop上的一個目錄。

hive (default)> show databases;
hive (default)> create database test_db;
hive (default)> use test_db;
hive (test_db)> show tables;

hive7.png
  • 創(chuàng)建表并向表中導入數(shù)據(jù)

hive (test_db)> create table student(id int,name string) row format delimited fields terminated by '\t';
hive (test_db)> load data local inpath '/opt/datas/student.txt' into table student;

其中row format delimited fields terminated by '\t'是用來指定表中列與列之間的分隔符。


hive8.png
  • 查看表信息
  1. desc student; 只能查看表的字段和字段類型
  2. desc extended student; 查看表的完整信息
  3. desc formatted student; 格式化輸出表的完整信息
  • 基本查詢語句。可以發(fā)現(xiàn)在第二條查詢語句本質(zhì)是生成map和reduce任務并執(zhí)行。


    hive9.png

    hive10.png
  • 查看函數(shù)和函數(shù)用途.

hive (test_db)> show functions;
hive (test_db)> desc function count;

  • 在mysql的metastore數(shù)據(jù)庫中查看元數(shù)據(jù)信息


    hive11.png

    hive12.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前的有點忘記了,這里在云筆記拿出來再玩玩.看不懂的可以留言 大家可以嘗試下Ambari來配置Hadoop的相關(guān)環(huán)...
    HT_Jonson閱讀 3,200評論 0 50
  • 1 目的將hadoop 2.7.1 安裝到 166、167、168 三臺機器上2 提供環(huán)境練習環(huán)境192.168....
    灼灼2015閱讀 3,639評論 4 40
  • HIVE是一個基于Hadoop的數(shù)據(jù)倉庫,適用于一些高延遲性的應用。如果對延遲性要求比較高,則可以選擇Hbase。...
    夏無憂陽閱讀 5,228評論 0 12
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,556評論 0 85
  • 在感情中痛不欲生的人,常犯兩個錯誤:或者在未來的幻想中沉溺,或者在過去的痛苦中無法自拔。 所以,放下執(zhí)念,活在當下...
    沉靜與喧囂閱讀 157評論 0 0

友情鏈接更多精彩內(nèi)容