hive 与mysql集成安装

Hive集成Mysql作为元数据

默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤:

第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务。
此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942497.html

第二步:安装Hive
此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html

第三步:为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:

[email protected]:~$ mysql -uroot -pmysql
mysql> CREATE USER ‘hive‘ IDENTIFIED BY ‘hive‘; 
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘hive‘@‘%‘ WITH GRANT OPTION; 
mysql> flush privileges;

重启mysql服务:

sudo service mysql restart

第四步:建立 Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。

mysql> create database hive;

第五步:在Hive的conf目录下的文件“hive-site.xml”中增加如下配置:

cd $HIVE_HOME/conf
cp hive-default.xml.template hive-default.xml
cp hive-default.xml.template hive-site.xml

从前面我们知道我们的“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参 数非常之 多,但是并不是我们都需要的,我们知道,Hive 系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另一个就是用户自定义文件“hive-site.xml”。当 “hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的 参数都删除掉,只留下上面所示的内容。
备注:其实修改这里的配置文件如果在Linux下面进行则非常麻烦,尽然我们都建立了FTP了,为何不 用, 所以把Master.Hadoop上面的这个配置文件下载下来,按照要求进行修改,这样的文件在Windows进行操作是非常方便的,弄好之后在上传上 去,覆盖原来的即可。

所以在此可将hive-site.xml中

<configuration>

内容清空
</configuration>

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.1.78:3306/hive?characterEncoding=UTF-8</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hive</value>
    </property>
</configuration>

将hive配置到etc/profile中 将$HIVE_HOME/bin配置到PATH中方便使用

将mysql-connector-java-5.1.32.jar拷贝到$HIVE_HOME/lib即可

在bash中执行hive

执行hive遇到一堆问题

Terminal initialization failed; falling back to unsupported

java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
    at jline.TerminalFactory.create(TerminalFactory.java:101)
    at jline.TerminalFactory.get(TerminalFactory.java:158)
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
    at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
    at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
    at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

解决方法:在/etc/profile中添加

export HADOOP_USER_CLASSPATH_FIRST=true

FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user ‘hive‘@‘eidlink‘ (using password: YES)

NestedThrowables:

java.sql.SQLException: Access denied for user ‘hive‘@‘eidlink‘ (using password: YES)

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

解决方案:

在bash中执行查看hostname 为eidlink

hostname

登陆mysql

mysql -uhive -phive

mysql> grant all on hive.* to [email protected]‘eidlink‘ identified by ‘hive‘;
mysql>exit;
service mysql restart

执行hive 即可成功 hive默认启动的日志文件目录为/tmp/登陆用户/hive.log

在192.168.1.78:3306/hive库中将自动创建如下表

hive> show tables;
OK
Time taken: 1.279 seconds

1)在Hive上建立数据表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t‘;
2)从 MySQL 数据库上查看元数据信息
用到的 SQL 语句:
use hive; //使用 hive 数据库库
show tables;//显示 hive 数据库中的数据表
select * from TBLS;//查看 hive 的元数据信息
到此Hive集成Mysql作为元数据已完成。

success!

时间: 2024-09-30 06:34:19

hive 与mysql集成安装的相关文章

新闻网大数据实时分析可视化系统项目——12、Hive与HBase集成进行数据分析

(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的Hive. Cloudera版本的Hive. 这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至bigdata-pro03.kfk.com节点的/opt/softwares/目录下. 2.解压安装hive tar -zxf apache-hive-0.

新闻实时分析系统Hive与HBase集成进行数据分析

(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的Hive. Cloudera版本的Hive. 这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至bigdata-pro03.kfk.com节点的/opt/softwares/目录下. 2.解压安装hive tar -zxf apache-hive-0.

mysql集成部署

经常听说mysql数据库是集成在系统中,也一直不太明白集成的概念.今天才明白集成的概念就是将mysql所有的文件放到一个文件夹下放到系统中,也就是将mysql采用目录迁移部署的方式进行安装.在上一篇研究了mysql的数据存储结构之后,也研究了mysql作为目录部署以及安装为mysql服务的方法. 1.mysql目录安装 mysql目录安装也就是将mysql必须的一些文件放到一起,然后通过配置文件的配置即可实现. mysql主要的目录也就是data目录以及bin(存mysql的可执行文件).lib

hive与mysql安装 以及使用

hive:类似一个数据仓库,管理hadoop的数据,同时可以查看hadoop数据,hive类似一个sql的解析引擎,hive可以把sql的操作转换为MR的作业,所以hive操作语言 也叫HSQL,数据的存放一般放在derby 和 mysql中.derby 默认 ,由于其局限性,不予使用,笔者采用mysql数据库. 版本: hadoop1.2.1: apache-hive-0.13.1-bin.tar.gz mysql-5.5-server mysql-5.5-client mysql-conne

将MySQL集成打包成安装程序,实现一键安装

前言 实现原理: 集成一个已经配置好的MySQL文件夹,然后通过.bat文件配置MySQL的服务.实现免安装MySQL数据库 缺陷:  由于是集成一个已经安装好的MySQL文件夹,类似于安装一个绿色版的MySQL.所在在卸载的时候MySQL的服务不会被卸载,需要手动去删除.目前暂时没有什么好的解决办法. 将MySQL集成打包安装程序.先将一个已经安装好MySQL的程序的文件夹,完整备份出来,用来集成成安装程序. 在MySQL的bin文件夹下新建一个MySQLStart.bat文件 里面写入以下内

Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》

一.Hive的简单使用 基本的命令和MySQL的命令差不多 首先在 /opt/datas 下创建数据  students.txt 1001 zhangsan 1002 lisi 1003 wangwu 显示有多少数据库: show databases; 使用某个数据库: use 数据库名称; 显示当前数据库下的表: show tables; 创建数据表 : create table student (id int,name string) ROW FORMAT DELIMITED FIELDS

Hive的mysql安装配置

一.MySQL的安装 Hive的数据,是存在HDFS里的.此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息. 元数据信息不存在HDFS,而是存在关系型数据库里,hive默认用的是derby数据库来存储.即hive工作时,除了要依赖Hadoop,还要依赖关系型数据库. 注意:虽然我们能通过HDFS查看到hive有哪些数据库,有哪些表,以及表里的数据,但是,这不是元数据信息.HDFS最主要的是存储hive的数据信息. 之前遇到的问题:当退出后,切换到不同的目录来进

新闻实时分析系统Hive与HBase集成进行数据分析 Cloudera HUE大数据可视化分析

1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的.通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等. 2)下载 CDH版本下载 官网下载 2.编译安装 1)解压 tar -zxf hue-3.9.0-cdh5.5.0.

HIVE配置mysql metastore

HIVE配置mysql metastore    hive中除了保存真正的数据以外还要额外保存用来描述库.表.数据的数据,称为hive的元数据.这些元数据又存放在何处呢?    如果不修改配置hive默认使用内置的derby数据库存储元数据.    derby是apache开发的基于java的文件型数据库.    可以检查之前执行命令的目录,会发现其中产生了一个metastore.db的文件,这就是derby产生的用来保存元数据的数据库文件. derby数据库仅仅用来进行测试,真正使用时会有很多