基于Mysql的Hive0.13单机安装

一,安装环境 
硬件:虚拟机 
操作系统:Centos 6.4 64位 
IP:10.51.121.10 
主机名:datanode-4 
安装用户:root 
Hadoop:Hadoop2.6,Hadoop2.6的单机安装请见:http://www.cnblogs.com/zouzhongfan/p/4309405.html

二,安装Mysql 
1,到http://dev.mysql.com/downloads/repo/yum/ 
下载mysql-community-release-el6-5.noarch.rpm 
2, 增加mysql的Yum Repository,执行:

#yum localinstall mysql-community-release-el6-5.noarch.rpm

3,安装,#yum install mysql-community-server 
4,启动mysql服务,执行:#service mysqld start

# service mysqld
Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

5,查看启动状态

# service mysqld status
mysqld (pid  55977) is running...

6,修改root用户密码

#mysql -u root
mysql>use mysql;
mysql>update user set password = password(‘root‘) where user = ‘root‘;
mysql>flush privileges;

7,设置hive用户

#mysql -uroot -proot
mysql>create user ‘hive‘ identified by ‘hive‘;
mysql>grant all on *.* TO ‘hive‘@‘%‘ with grant option;
mysql>flush privileges;

8,新建hive_metastore数据库

#mysql -uhive -phive
mysql>create database hive_metastore;
mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive_metastore     |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.48 sec)

三,Hive安装 
1,到http://mirror.bit.edu.cn/apache/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gz 下载hive0.13。 
2,解压,# tar -zxvf apache-hive-0.13.1-bin.tar.gz 
这里解压到/root/hadoop目录, 
则Hive的安装路径为:/root/hadoop/apache-hive-0.13.1-bin 
3,配置~/.bash_profile环境变量 
1)在~/.bash_profile添加如下配置:

export HIVE_HOME=/root/hadoop/apache-hive-0.13.1-bin
export PATH=$JAVA_HOME/bin$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH

2)使环境变量生效,# source ~/.bash_profile

4,设置hive-env.sh配置文件 
进入/root/hadoop/apache-hive-0.13.1-bin/conf目录,执行如下命令:

# cp hive-env.sh.template hive-env.sh
# vi hive-env.sh
export HADOOP_HOME=/root/hadoop/hadoop-2.6.0
export HIVE_CONF_DIR=/root/hadoop/apache-hive-0.13.1-bin/conf

5,设置hive-site.xml配置文件 
1),执行,# cp hive-default.xml.template hive-site.xml 
2),编辑hive-site.xml文件,# vi hive-site.xml 
hive默认为derby数据库,需要把相关信息调整为mysql数据库,修改的配置信息如下:

<property>
   <name>hive.metastore.uris</name>
    <value>thrift://datanode-4:9083</value>
    <description>Thrift URI for theremote metastore. Used by metastore client to connect to remotemetastore.</description>
  </property>
<property>
   <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://10.51.121.10:3306/hive_metastore?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string fora JDBC metastore</description>
</property>
<property>
 <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for aJDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use againstmetastore database</description>
</property>
<property>
 <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use againstmetastore database</description>
</property>

6,下载mysql的JDBC驱动,并放到Hive安装路径下的lib目录下。 
这里下载的mysql驱动为:mysql-connector-java-5.1.34-bin.jar,并放在/root/hadoop/apache-hive-0.13.1-bin/lib目录下。因为Hive需要通过JDBC连接Mysql数据库。

7,启动metastore和hiveserver2,其中matestore服务是Hive连接Mysql的metastore数据库用,hiveserver2服务是通过JDBC访问Hive用,JDBC的默认端口是:10000

#hive --service metastore &
#hive --service hiveserver2 &  

8,安装验证 
执行jps命令,可以看到有两个RunJar服务进程

# jps
38907 RunJar
39030 RunJar
54679 NameNode
54774 DataNode
55214 NodeManager
55118 ResourceManager
16150 Jps
54965 SecondaryNameNode

执行#ps -ef |grep RunJar 可以看到如下进程:

# ps -ef |grep RunJar
root     16165 21232  0 05:56 pts/2    00:00:00 grep RunJar
root     38907 37136  0 Jan21 pts/1    00:01:45 /usr/lib/jdk1.6.0_45/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true -......org.apache.hadoop.util.RunJar /root/hadoop/apache-hive-0.13.1-bin/lib/hive-service-0.13.1.jar org.apache.hadoop.hive.metastore.HiveMetaStore
root     39030 37136  0 Jan21 pts/1    00:01:11 /usr/lib/jdk1.6.0_45/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true -......org.apache.hadoop.util.RunJar /root/hadoop/apache-hive-0.13.1-bin/lib/hive-service-0.13.1.jar org.apache.hive.service.server.HiveServer2

四,常见错误 
1,执行#hive命令进入Hive CLI时报如下错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

原因:因为没有正常启动Hive 的 Metastore Server服务进程。 
解决方法:启动Hive 的 Metastore Server服务进程,执行如下命令:

# hive --service metastore &
[1] 52460
Starting Hive Metastore Server
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/hadoop/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/hadoop/apache-hive-0.14.0-bin/lib/hive-jdbc-0.14.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

2,执行#hive命令进入Hive CLI时报如下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘OPTION SQL_SELECT_LIMIT=DEFAULT‘ at line 1
        at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:451)
        at org.datanucleus.api.jdo.JDOPersistenceManager.getDataStoreConnection(JDOPersistenceManager.java:2259)
        at org.apache.hadoop.hive.metastore.MetaStoreDirectSql.trySetAnsiQuotesForMysql(MetaStoreDirectSql.java:166)

原因:可能是因为Hive连接Mysql的JDBC驱动版本有问题。Mysql版本是5.6.23,用的JDBC驱动是mysql-connector-java-5.0.3-bin.jar。 
解决方法:把mysql-connector-java-5.0.3-bin.jar换成mysql-connector-java-5.1.34-bin.jar,问题解决。

时间: 2024-10-11 22:05:14

基于Mysql的Hive0.13单机安装的相关文章

hive0.13.1安装-mysql server作为hive的metastore

hive0.13.1在hadoop2.4.1伪分布式部署上安装过程 环境:redhat enterprice 6.5 +hadoop2.4.1+hive0.13.1+mysql单节点伪分布式部署 相关网址: hive官网安装指导:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallingHivefromaStableRelease hive之metastore的三种保存方式:h

基于MySQL元数据的Hive的安装和简单测试

引言: Hive是一种强大的数据仓库查询语言,类似SQL,本文将介绍如何搭建Hive的开发测试环境. 1. 什么是Hive? hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. 2.  按照Hive的准备条件 2.1  Hadoop集

Hive-0.13.1安装配置

Hive安装配置 参考网址 http://blog.yidooo.net/archives/apache-hive-installation.html http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html Hbase In Action(HBase实战)和Hbase:The Definitive Guide(HBase权威指南)两本书中,有很多入门级的代码,可以选择自己感兴趣的check out.地址分别为 https:/

Centos基于MySQL提供的Yum repository安装MySQL5.6

1.下载yum源 # wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 下载完成后,如下图所示: 2.安装yum包 2.1 查看此包要安装的文件 # rpm -qpl mysql80-community-release-el8-1.noarch.rpm 结果如下图所示: 2.2 安装 # rpm -ivh mysql80-community-release-el8-1.noarch.rpm 安装完成后

基于MySQL元数据的Hive的安装和简单測试

引言: Hive是一种强大的数据仓库查询语言,类似SQL,本文将介绍怎样搭建Hive的开发測试环境. 1. 什么是Hive? hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,能够将sql语句转换为MapReduce任务进行执行. 其长处是学习成本低,能够通过类SQL语句高速实现简单的MapReduce统计.不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. 2.  依照Hive的准备条件 2.1  Hadoop集

MySQL 8.0.13 二进制安装

MySQL 8.0 二进制安装大致与MySQL 5.7 类似 1.查询删除原有mysql使用rpm -qa | grep mysql 或mariadb 搜索 mysql,如果存在,使用rpm -e --nodeps mariadb-全部删除,或使用yum remove mysql mysql-server mysql-libs compat-mysql51全部删除:2.下载所需依赖包yum remove libnuma.so.1yum install make cmake libaio wget

mysql 5.7.13 winx32 安装步骤

很久之前卸载掉自己电脑上的数据库之后,今天重新装,感觉整个人都不好了,还是记录一下步骤,供今后参考. 1,下载(在官方网站下载即可): http://dev.mysql.com/downloads/mysql/ zip格式的下载就可以. --至于社区版和企业版的区别,顾名思义,就是企业版的更专业,提供的服务更多,能图像监控等等,如果是个人使用,用社区版就完全可以了. 2,解压缩到自己想放置的位置.(本文中放到了D:\mysql\mysql-5.7.13-win32) 3,在D:\mysql\my

基于Hadoop2.6的Spark1.2单机安装

一,安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:10.51.121.10 主机名:datanode-4 安装用户:root Hadoop:Hadoop2.6,Hadoop2.6的单机安装请见:http://www.cnblogs.com/zouzhongfan/p/4309405.htmlHive:Hive0.13,Hive0.13的安装请见:http://www.cnblogs.com/zouzhongfan/p/4309432.html 二,安装Scala 1,到h

Hadoop2.3、 Hbase0.98、 Hive0.13架构中Hive的安装部署配置以及数据测试

简介: Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. 1, 适用场景 Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销.因此,Hive 并不能够在大规模