hadoop上搭建hive(遠程模式+hive服務(wù)端、客戶端)

環(huán)境

hadoop2.7.1+ubuntu 14.04
hive 2.0.1
集群環(huán)境
namenode節(jié)點:master (hive服務(wù)端)
datanode 節(jié)點:slave1,slave2(hive客戶端)
hive建立在hadoop的HDFS上,搭建hive前,先需搭建hadoop,可參考我的上一篇hadoop_cluster搭建文檔
遠程模式:
101.201.81.34(Mysql server meta server安裝位置。我使用的windows系統(tǒng),你也可以使用ubuntu)

一、101.201.81.43

該主機上安裝好mysql,并且建立一個hive數(shù)據(jù)庫
(如果在ubuntu上,要開啟遠程訪問)

二、在master上安裝hive

1.安裝hive

1)在apache官網(wǎng)上下載hive-2.1.0包
2)sudo tar -zxvf apache-hive-2.1.0-bin.tar.gz
3)sudo cp -R apache-hive-2.1.0-bin /home/cms/hive
4)chmod -R 775 /home/cms/hive
5)sudo chown -R cms /home/cms/hive

2.修改/etc/profile加入HIVE_HOME的變量

HIVE_HOME/PATH/CLASSPATH
我粘貼的是我所有的配置

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=$HOME/hadoop-2.7.1
export HIVE_HOME=$HOME/hive
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$HIVE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH
export HADOOP_MAPARED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop```

source /etc/profile

#####3.修改hive/conf下的幾個template模板并重命名為其他
```cp hive-env.sh.template hive-env.sh```
```cp hive-default.xml.template hive-site.xml```
配置hive-env.sh文件,指定HADOOP_HOME安裝位置
```HADOOP_HOME=$HADOOP_HOME/hadoop-2.7.1```
#####4.修改hive-site.xml文件,指定MySQL數(shù)據(jù)庫驅(qū)動、數(shù)據(jù)庫名、用戶名及密碼,修改的內(nèi)容如下所示
```<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://101.201.81.34:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>admin</value>
  <description>password to use against metastore database</description>
</property>
<property> ```
其中:
javax.jdo.option.ConnectionURL參數(shù)指定的是Hive連接數(shù)據(jù)庫的連接字符串;
javax.jdo.option.ConnectionDriverName參數(shù)指定的是驅(qū)動的類入口名稱;
javax.jdo.option.ConnectionUserName參數(shù)指定了數(shù)據(jù)庫的用戶名;
javax.jdo.option.ConnectionPassword參數(shù)指定了數(shù)據(jù)庫的密碼。
#####5.緩存目錄的問題,如果不配置也會出錯的

<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/hivetmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/opt/hivetmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>并且需要對目錄進行權(quán)限設(shè)定mkdir -p /opt/hivetmp chmod -R 775 /opt/hivetmp ```

6.下載mysql-connector-java-5.1.30-bin.jar文件,并放到$HIVE_HOME/lib目錄下

可以從Mysql的官方網(wǎng)站下載,但是記得一定要解壓呀,下載的是一個tar.gz文件,解壓后為jarwenjian
7.hive表存儲在在HDFS中的/user/hive/warehouse中

三、slave2建立hive客戶端

1.將master上的整個hive目錄移至slave2上
scp -r hive slave2:/home/cms
注意要關(guān)閉防火墻
sudo ufw disable
2.修改slave2下的hive-site配置文件,內(nèi)容如下:

<configuration>
         <!-- thrift://<host_name>:<port> 默認端口是9083 -->
<property>
 <name>hive.metastore.uris</name>
 <value>thrift://master:9083</value>
 <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
 
<!-- hive表的默認存儲路徑 -->
<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>hdfs://hive/warehouse</value>
</property>
</configuration>```
修改/etc/profile,與master配置一致

#####四、啟動
1.進入之前要初始化數(shù)據(jù)庫(master節(jié)點)
```schematool -initSchema -dbType mysql```

```cms@master:~$ schematool -initSchema -dbType mysql 
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Metastore connection URL: jdbc:mysql://101.201.81.34:3306/hive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.mysql.sql
Initialization script completed
schemaTool completed```
2.hive啟動
要啟動metastore服務(wù)
在master上執(zhí)行
```hive --service metastore &```
```[cms@master ~]$ jps
10288 RunJar  #多了一個進程
9365 NameNode
9670 SecondaryNameNode
11096 Jps
9944 NodeManager
9838 ResourceManager
9471 DataNod```
3.測試hive shell(服務(wù)端,客戶端都可)
```hive
show databases;
show tables;```
查看hive表
``` dfs -lsr /user/hive/warehouse```
####參考文檔
[Hadoop2.7實戰(zhàn)v1.0之Hive-2.0.0+MySQL遠程模式安裝](http://blog.itpub.net/30089851/viewspace-2082805/)
[Hive的安裝](https://chu888chu888.gitbooks.io/hadoopstudy/content/Content/8/chapter0807.html)
[Hadoop集群之Hive安裝配置](http://yanliu.org/2015/08/13/Hadoop%E9%9B%86%E7%BE%A4%E4%B9%8BHive%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 介紹 Hive是運行在Hadoop之上的數(shù)據(jù)倉庫,將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,提供簡單類SQL查詢語言,...
    syncwt閱讀 4,797評論 0 7
  • HIVE是一個基于Hadoop的數(shù)據(jù)倉庫,適用于一些高延遲性的應(yīng)用。如果對延遲性要求比較高,則可以選擇Hbase。...
    夏無憂陽閱讀 5,222評論 0 12
  • 1、運行環(huán)境 主機IP 主機名 2、配置主機名(分別在五臺機器上執(zhí)行) hostname +主機名例如: h...
    獻給記性不好的自己閱讀 3,783評論 0 6
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx閱讀 8,468評論 0 16
  • 特討厭被人稱為萌妹子,我只想說萌你妹!我是王子好嗎!我愛撒嬌?!你能不能不要鬧了,就你?!我會和你撒嬌嗎?不要逗我...
    玫瑰花的小王子閱讀 234評論 1 1

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