博主学习Hadoop学习到Hive,一开始跟着资料去安装Hive 1.x一点问题也没有,方便快捷啊,但是看了一下官方文档,上面好像说Hive 2.0修复了很多bug,那么我想,我还是用Hive2.0好了。于是我开始按照原来的流程配置Hive2.0,遇到了各种问题,而且由于版本太新,国内网站上的解决方案基本上没有用。查阅各种资料,现在终于配置好了。所以写这篇博文分享,希望减少跟我一样的新手在使用Hive2.0的时候遇到的阻力。



Hive 1.x与2.x

As of June 2015, Hive has two “main lines”, master and branch-1. 
All new feature work and bug fixes in Hive are contributed to the master branch. As of June 2015, releases from master are numbered 2.x. The 2.x versions are not necessarily backwards compatible with 1.x versions. 
branch-1 is used to build stable, backward compatible releases. Releases from this branch are numbered 1.x (where 1.3 will be the first release from it, as 1.2 was released from master prior to the creation of branch-1). Until at least June 2016 all critical bug fixes (crashes, wrong results, security issues) applied to master must also be applied to branch-1. The decision to port a feature from master to branch-1 is at the discretion of the contributor and committer. However no features that break backwards compatibility will be accepted on branch-1.

Requirements

Java 1.7 
Note: Hive versions 1.2 onward require Java 1.7 or newer. Hive versions 0.14 to 1.1 work with Java 1.6 as well. Users are strongly advised to start moving to Java 1.8 (see HIVE-8607). 
Hadoop 2.x (preferred), 1.x (not supported by Hive 2.0.0 onward). 
Hive versions up to 0.13 also supported Hadoop 0.20.x, 0.23.x. 
Hive is commonly used in production Linux and Windows environment. Mac is a commonly used development environment. The instructions in this document are applicable to Linux and Mac. Using it on Windows would require slightly different steps.



上面只是一些了解材料,我就从官方文档上贴了过来,下面进入正题。

1 下载解压

第一步当然是和老版本一样,在官网上下载Hive的最新的稳定版压缩包,在Linux系统下解压。如果你只使用这一个版本的Hive,可以把HIVE_HOME和其bin目录添加到环境变量PATH中去。安装过Hadoop的朋友对这个应该相当熟悉。像我的话,由于想要Hive 1.x和2.x一起使用,所以我没有配置环境变量,这样每次要使用Hive的时候就cd到对应的bin目录下执行就行了。



2 mysql metastore

Hive的元数据是需要一个关系型数据库保存的,它内置了一个deby,但是最好用的无疑还是MySQL,而且安装配置也简单。所以博主建议使用mysql。这一步的详细过程请参考博主的另一篇博文:http://blog.csdn.net/cds86333774/article/details/51132532

然后Hive要连接mysql啊,这个时候熟悉mysql的朋友就一定会意识到:哦!驱动!

对的,安装好mysql并配置好了之后,还要将连接mysql的驱动:mysql-connector-java-5.1.28.jar 拷贝到HiveHome 目录下的lib文件夹中,这样Hive才可能成功连接mysql。



3 配置hive-site.xml

在hive的目录下有一个conf文件夹,里面全是配置文件。

cp hive-default.xml.template hive-site.xml 
  • 1
  • 1

将模板复制并命名为 hive-site.xml,我们要做的配置就是在这个文件中修改一些参数。这一点也和Hadoop类似。

在这个文件中,查找到如下属性,然后修改其中的value到与你的主机相符的配置,例如mysql所在的主机? 端口一般都是3306;hive是用来存元数据的数据库名称;username和password要与你在上一步设置mysql时的一致:

    <property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop00: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>123</value>
<description>password to use against metastore database</description>
</property>

注意事项:

如果你在使用mysql之前启动过Hive,注意使用下面的命令将元数据同步到mysql,不然会报错:

schematool -dbType mysql -initSchema



4 错误1

错误1:忘记启动Hadoop集群了。



5 错误2

这个问题卡得我有点久,因为在百度上没有找到解决方案。后来在stackoverflow上找到了完美解答:

解决后反思一下,我发现自己有一个问题,就是很不喜欢认真看错误信息,其实只要认真看了错误信息,然后到hive-site.xml文件去找出特定字段,然后看description,是可以自己找出解决方案的。国内的网站上还没有出现这个问题的解答,是因为版本太新。而每当一个全新的问题出现,总有一些大牛可以为我们这些小白解决问题,而这种解决全新问题的能力也是我所欠缺的。简单总结为一句话,对我自己说的:【请认真分析错误信息,不要嫌麻烦,不要一遇到问题就百度,不要一看到别人贴出的解决方案,看都不看清楚就直接复制粘贴】。



6 成功

安装HIVE 过程中要注意

1,MySQL 是否正常运行

2.   创建好mysql 用户并分配好相应的访问权限以及数据库端口号等

3.   mysql-connector-java-5.1.26-bin.jar  是否放到hive/lib 目录下 建议修改权限为777 (chmod 777 mysql-connector-java-5.1.26-bin.jar)

4. 修改conf/hive-site.xml 中的 “hive.metastore.schema.verification”  值为 false  即可解决 “Caused by: MetaException(message:Version information not found in metastore. )”

5. 调试 模式命令  hive -hiveconf hive.root.logger=DEBUG,console

最新文章

  1. Pro HTML5 Programming(Second Edition)2.Canvas API(2)
  2. openstack-lanch an instance and nova compute log analysis
  3. Swift:属性观察器
  4. iOS drawRect 和 awakeFromNib
  5. C语言内存分布之数据段
  6. [Java] Java 打包成jar包 和 解压jar包
  7. 8、C#基础整理(数组和冒泡排序)
  8. linux 访问ntfs分区
  9. 理解Node.js事件驱动编程
  10. GAN
  11. iOS处理XMl提供GDataXMLNode下载的链接
  12. HDU1686:Oulipo
  13. media query(媒体查询)和media type(媒体类型)
  14. HTTP协议中PUT和POST使用区别
  15. poj 1845 (逆元 + 约数和)
  16. java核心技术-(总结自杨晓峰-java核心技术36讲)
  17. Factorized Hidden Variability Learning For Adaptation Of Short Duration Language Identification Models
  18. 清理xcode
  19. 《Oracle 11g 入门到精通.明日科技.pdf》学习笔记
  20. mybatis中sql标签、where标签、foreach标签用法

热门文章

  1. 【agc006C】Rabbit Exercise
  2. CodeChef DGCD
  3. 如何在Linux系统上安装QQ
  4. Codeforces 830B - Cards Sorting 树状数组
  5. 手脱ACProtect v1.35(无Stolen Code)之二
  6. [DeeplearningAI笔记]卷积神经网络1.4-1.5Padding与卷积步长
  7. 理解PV操作和信号量
  8. 跟我一起写Makefile(六)
  9. Vue DatePicker和不可用
  10. 重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)