安装配置hive

环境与条件

  • 操作系统是ubuntu16.04
  • hadoop版本是 2.7.3,(我的是完全分布式并配置了ha),按照官方文档里面的说明,hadoop2.*版本及以上的hadoop需要hive2.*版本
  • mysql是直接apt-get安装的版本5.7.17
  • 注意安装hive的时候,hive只需要在master节点上面放就可以了,mysql也只需要装在master节点上面

安装步骤

首先下载正确版本的hive(我下载的版本是2.1.1),解压到${HIVE_HOME}下,如果以后不想看到很长的文件夹名称或者为了以后方便升级的话,可以设置一个软连接hive -> apache-hive-2.1.1-bin。然后就是进行配置。
在hive/conf文件夹里面有很多template文件,全部都copy一份,把.template去掉。然后是自己建一个文件,名字叫做hive-site.xml。我的配置内容:

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useSSL=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>hive</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>1234</value>
<description>password to use against metastore database</description>
</property>

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>

其中hive.metastore.warehouse.dir是在hdfs里面存放hive文件的目录。
最后一条hive.metastore.schema.verification是为了解决Caused by: MetaException(message:Version information not found in metastore. )的异常。
在第一条里面jdbc:mysql://localhost:3306/hive?useSSL=true,我的名称节点是master,如果把Localhost换成master就会报错。useSSL=true是在启动hive的时候会有一大堆warning Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set.,加上useSSL=true来去掉warning。

接下来是在hdfs里面建文件夹/user/hive/warehouse并修改权限,一定要修改权限!

配置hive的环境变量,主要是HIVE_HOME,HADOOP_HOME一类的变量。按照hive官网给出来的配就可以了

不要忘了下载mysql的驱动包mysql-connector-java-5.1.40-bin.jar。在百度上找这个包就可以。从mysql官网上下来的是一个tar.gz的压缩文件。不要看错了。我第一次下完了没解压直接扔${HIVE_HOME}/lib下面了。

然后是mysql。要新建一个用户hive,新建完用户以后在新建hive数据库,然后一定要用usedatabase hive;,要不然会一直说数据库连接不上The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema.的时候,按照它的说法,执行schematool -initSchema -dbType mysql就可以了

Operation category READ is not supported in state standby这个错误是由于我设置了ha,ha启动的时候默认是将两个namenode都变成standby状态,这样就无法读取文件系统。所以将master节点给激活就可以了hdfs haadmin -transitionToActive nn1

发布了267 篇原创文章 · 获赞 12 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u010734277/article/details/60333391