Hive —— 安裝部署

 

1、安裝Hive

1.1 下載並解壓

下載所需版本的Hive,這裏我下載版本爲cdh5.15.2。下載地址:http://archive.cloudera.com/cdh5/cdh/5/html

# 下載後進行解壓
 tar -zxvf hive-1.1.0-cdh5.15.2.tar.gz

1.2 配置環境變量

# vim /etc/profile

添加環境變量:java

export HIVE_HOME=/usr/app/hive-1.1.0-cdh5.15.2
export PATH=$HIVE_HOME/bin:$PATH

使得配置的環境變量當即生效:mysql

# source /etc/profile

1.3 修改配置

1. hive-env.shgit

進入安裝目錄下的conf/目錄,拷貝Hive的環境配置模板flume-env.sh.template程序員

cp hive-env.sh.template hive-env.sh

修改hive-env.sh,指定Hadoop的安裝路徑:github

HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2

2. hive-site.xmlsql

新建hive-site.xml 文件,內容以下,主要是配置存放元數據的MySQL的地址、驅動、用戶名和密碼等信息:shell

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

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop001:3306/hadoop_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>
  
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
  </property>

</configuration>

1.4 拷貝數據庫驅動

將MySQL驅動包拷貝到Hive安裝目錄的lib目錄下, MySQL驅動的下載地址爲:https://dev.mysql.com/downloads/connector/j/ , 在本倉庫的resources目錄下我也上傳了一份,有須要的能夠自行下載。數據庫

1.5 初始化元數據庫

  • 當使用的 hive 是1.x版本時,能夠不進行初始化操做,Hive會在第一次啓動的時候會自動進行初始化,但不會生成全部的元數據信息表,只會初始化必要的一部分,在以後的使用中用到其他表時會自動建立;apache

  • 當使用的 hive 是2.x版本時,必須手動初始化元數據庫。初始化命令:

    # schematool 命令在安裝目錄的bin目錄下,因爲上面已經配置過環境變量,在任意位置執行便可
    schematool -dbType mysql -initSchema

這裏我使用的是CDH的hive-1.1.0-cdh5.15.2.tar.gz,對應Hive 1.1.0 版本,能夠跳過這一步。

1.6 啓動

因爲已經將Hive的bin目錄配置到環境變量,直接使用如下命令啓動,成功進入交互式命令行後執行show databases命令,無異常則表明搭建成功。

# hive

在Mysql中也能看到Hive建立的庫和存放元數據信息的表

2、HiveServer2/beeline

Hive內置了HiveServer和HiveServer2服務,二者都容許客戶端使用多種編程語言進行鏈接,可是HiveServer不能處理多個客戶端的併發請求,所以產生了HiveServer2。HiveServer2(HS2)容許遠程客戶端可使用各類編程語言向Hive提交請求並檢索結果,支持多客戶端併發訪問和身份驗證。HS2是由多個服務組成的單個進程,其包括基於Thrift的Hive服務(TCP或HTTP)和用於Web UI的Jetty Web服務。

HiveServer2擁有本身的CLI工具——Beeline。Beeline是一個基於SQLLine的JDBC客戶端。因爲目前HiveServer2是Hive開發維護的重點,因此官方更加推薦使用Beeline而不是Hive CLI。如下主要講解Beeline的配置方式。

2.1 修改Hadoop配置

修改 hadoop 集羣的 core-site.xml 配置文件,增長以下配置,指定hadoop的root用戶能夠代理本機上全部的用戶。

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

之因此要配置這一步,是由於hadoop 2.0之後引入了安全假裝機制,使得hadoop不容許上層系統(如hive)直接將實際用戶傳遞到hadoop層,而應該將實際用戶傳遞給一個超級代理,由該代理在hadoop上執行操做,以免任意客戶端隨意操做hadoop。若是不配置這一步,在以後的鏈接中可能會拋出AuthorizationException異常。

關於Hadoop的用戶代理機制,能夠參考:hadoop的用戶代理機制Superusers Acting On Behalf Of Other Users

2.2 啓動hiveserver2

因爲上面已經配置過環境變量,這裏直接啓動便可:

# nohup hiveserver2 &

2.3 使用beeline

可使用如下命令進入beeline交互式命令行,出現Connected則表明鏈接成功。

# beeline -u jdbc:hive2://hadoop001:10000 -n root

更多大數據系列文章能夠參見我的 GitHub 開源項目: 程序員大數據入門指南

相關文章
相關標籤/搜索