Hive 将元数据存储在 RDBMS 中,有三种模式可以连接到数据库:
1)ingle User Mode: 此模式连接到一个 In-memory 的数据库 Derby,一般用于 Unit Test。
2)Multi User Mode:通过网络连接到一个数据库中,是最经常使用到的模式。
3)Remote Server Mode:用于非 Java 客户端访问元数据库,在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据库。
Hive默认是采用Derby来存储其Meta信息的,
现在我们需要修改为mysql
1.在mysql专门为hive添加用户
mysql> CREATE USER 'hive'@'hive-mysql' IDENTIFIED BY 'hivepasswd';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'hive-mysql' WITH GRANT OPTION;
2.修改配置文件conf/hive-site.xml
<property>
<name>hive.metastore.local</name>
<value>true</value>
<description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hive-mysql: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>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepasswd</value>
<description>password to use against metastore database</description>
</property>
3.添加jdbc的jar包
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.11.tar.gz/from/http://mysql.he.net/
tar -xvzf mysql-connector-java-5.1.11.tar.gz
cp mysql-connector-java-5.1.11/*.jar /data/soft/hive/lib
4.启动hive
bin/hive
hive> show tables;
When using MySQL as a metastore I see the error "com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes".
* This is a known limitation of MySQL 5.0 and UTF8 databases. One option is to use another character set, such as 'latin1', which is known to work.
Hive用MySQL做元数据保存的数据库时,mySQL设置
http://running.iteye.com/blog/910277
分享到:
相关推荐
本地元数据存储将元数据保存在运行Hive Metastore服务的同一台服务器上,而远程元数据存储则允许在独立的数据库服务器上管理元数据。MySQL作为流行的开源关系型数据库管理系统,常被用作Hive的远程元数据存储。 ...
在Hive与MySQL集成的场景中,MySQL通常作为元数据存储,用于保存Hive表的信息,如表名、列名、分区等。 集成步骤如下: 1. **安装准备**:确保已安装了Linux操作系统,同时安装好Hadoop环境,因为Hive依赖于Hadoop...
在Hive中,我们通常会配置MySQL作为元数据存储,用来保存表信息、分区信息等元数据,因此这个驱动程序是搭建Hive环境的必要组件。 `apache-hive-3.1.2-bin.tar.gz`是Apache Hive 3.1.2的二进制发行版,包含了运行...
Client与用户交互,MetaStore保存元数据,Driver解析和编译SQL查询,Compiler生成执行计划,Executor负责执行,而HDFS则是数据的存储层。 2. **HQL(Hive Query Language)**: Hive提供了一种类似于SQL的查询语言,...
- **MetaStore**:元数据存储,保存表、分区、字段等信息,通常与MySQL或Derby数据库结合使用。 - **Driver**:驱动程序,负责解析HQL,生成执行计划。 - **Compiler**:编译器,将HQL转化为MapReduce任务。 - **...
3. **配置MySQL作为Hive的Metastore** - **检查MySQL是否已安装**:使用`rpm -qa | grep -i mysql`检查是否已安装MySQL。若已安装,可以通过`rpm -qa | grep -i mysql`查看具体版本。 - **安装MySQL**:若未...
Hive通常使用MySQL(或其他兼容的数据库如Derby或PostgreSQL)作为元数据存储,用来保存表的定义、分区信息等。此驱动文件用于连接Hive与MySQL服务器,确保Hive可以正确地读写元数据。 5. **hive-site.xml**:这是...
1. **元数据存储**:Hive存储关于表、列、分区等的元数据,这些信息通常保存在MySQL或Derby这样的关系型数据库中。 2. **编译器**:将HQL转换为MapReduce或Tez任务,对于Hive 3.1.2,它也支持Spark执行引擎。 3. **...
上述配置指定了Hive元数据存储所需的数据库连接字符串以及驱动程序名称,以MySQL为例。 综上所述,Hive通过灵活的数据存储模式和元数据管理机制,为大规模数据分析提供了强大的支持。理解Hive的数据存储模式对于...
- Hive Metastore:存储所有Hive对象的元数据,通常与关系型数据库(如MySQL)连接。 3. **Hive查询语言(HQL)** - HQL类似于SQL,支持创建表、插入数据、选择数据、联接操作、分组聚合、子查询等。 - 特有的...
4. **创建元数据数据库**:Hive需要一个元数据存储库来保存表结构和分区信息。可以选择MySQL、PostgreSQL或其他兼容的数据库来创建元数据数据库。 5. **启动Hive**:通过命令行启动Hive服务,包括Hive Metastore ...
- 元数据存储:Hive 有一个元数据存储服务(Metastore),保存关于表结构、分区等信息,通常存储在关系数据库中,如 MySQL 或 PostgreSQL。 1.2 Hive 架构 Hive 的架构包括以下部分: - 操作界面:用户可以通过...
设置Hive的 metastore数据库(通常使用MySQL或Derby),以及Hadoop相关配置,确保与Hadoop的配置一致。 3. **创建metastore数据库**:根据配置的数据库,创建Hive的metastore数据库和表。 4. **设置环境变量**:在...
MySQL 作为 MetaStore 服务器,用于存储 Hive 的元数据,如表结构、分区信息等。配置 Hive 参数,如设置 HiveServer2 的端口、MetaStore 的连接信息等,是确保 Hive 正常运行的关键步骤。 2. **Hive 库操作与表操作...
- 使用 tar 命令来解压 Hive 的压缩文件。 ```bash tar -zxvf apache-hive-3.1.2-bin.tar.gz ``` **3. 创建软链接** - 为了方便使用,创建一个指向 Hive 目录的软链接。 ```bash ln -s apache-hive-3.1.2-...
Hive是Apache Hadoop生态系统中的一个数据仓库工具,它允许用户使用SQL-like的语言(HQL,Hive Query Language)对大规模数据进行分析。本指南将详细阐述如何在Linux环境下安装Hive,包括创建目录、解压安装包、设置...
元数据存储通常在MySQL或Derby中,保存表、分区等信息;驱动器解析和优化查询;编译器将HQL转换为MapReduce任务;执行器负责在Hadoop集群上运行这些任务。 2. **HQL(Hive Query Language)**:HQL是Hive的SQL方言...