安装HIVE

参考:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
1.下载hive安装包
    到apache官网或者其它地方下载hive压缩包,然后解压到/usr/local/hive-2.0.0

2.依赖
    hive依赖以下内容:
1)java 1.7或者更高版本
2)hadoop2.x,hadoop1.x(只支持hive1)
3)需要$HADOOP_HOME或者$HADOOP_PREFIX变量

3.配置元数据库
    hive的元数据可以三种方式存储。参考:http://duguyiren3476.iteye.com/blog/1632868
这里选择以derby来存储元数据。也可以用mysql或者postgreySql来存储
(1)使用内置的derby数据库做为元数据库
    使用derby的缺点是同一时刻只能有一个hive启动。并且在目录创建元数据库(metastore_db),十分的杂乱。
    首先修改conf/hive-site.xml为如下内容:
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. nfiguration>
  4. <property>
  5. <name>javax.jdo.option.ConnectionURL</name>
  6. <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
  7. </property>
  8. <property>
  9. <name>javax.jdo.option.ConnectionDriverName</name>
  10. <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  11. </property>
  12. <property>
  13. <name>hive.metastore.local</name>
  14. <value>true</value>
  15. </property>
  16. <property>
  17. <name>hive.metastore.warehouse.dir</name>
  18. <value>/user/hive/warehouse</value>
  19. </property>
  20. </configuration>
然后删除$HIVE_HOME下的metastore_db文件夹
  1. [root@node1 hive-2.0.0]# rm -rf metastore_db
然后初始化元数据库
  1. [root@node1 hive-2.0.0]# schematool -initSchema -dbType derby
测试:
  1. [root@node1 hive-2.0.0]# hive
  2. hive> show tables;
  3. OK
  4. Time taken: 1.154 seconds


(2)以数据库做为元数据库
  1. <configuration>
  2. <property>
  3. <name>javax.jdo.option.ConnectionURL</name>
  4. <value>jdbc:mysql://yangxw:3306/hive_meta</value>
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionDriverName</name>
  8. <value>com.mysql.jdbc.Driver</value>
  9. </property>
  10. <property>
  11. <name>hive.metastore.local</name>
  12. <value>false</value>
  13. </property>
  14. <property>
  15. <name>hive.metastore.warehouse.dir</name>
  16. <value>/user/hive/warehouse</value>
  17. </property>
  18. <property>
  19. <name>javax.jdo.option.ConnectionPassword</name>
  20. <value>root</value>
  21. <description>password to use against metastore database</description>
  22. </property>
  23. <property>
  24. <name>javax.jdo.option.ConnectionUserName</name>
  25. <value>root</value>
  26. <description>Username to use against metastore database</description>
  27. </property>
  28. <property>
  29. <name>hive.metastore.uris</name>
  30. <value>thrift://node1:9083</value>
  31. </property>
  32. </configuration>
如果想把客户端和服务端分开,把蓝色背景的单独放在客户端hive-site.xml中即可

然后执行初始化元数据库:
schematool -dbType mysql -initSchema

开启元数据服务(可选):
hive --service metastore -p 9083
后台启用服务执行:
 nohup bin/hive --service metastore -p 9083 >.metastore_log &
然后在客户端执行bin/hiv即可


关于metastore服务:
不启动metasotre服务的话,各个hive客户端分别连接到mysql数据库;启动后,客户端连接到metastore服务器,metastore服务器再连接mysql;所以一般情况下没必要启动metastore服务。CDH使用此种方式,因此必须启动metasotre服务.如果配置了:thrift://node1:9083 就必须启动metastore.
hive server是给hive之外的客户端用的,比如java。一般也不用启动。

































posted on 2017-08-30 23:11  月饼馅饺子  阅读(130)  评论(0编辑  收藏  举报

导航