hive元数据库配置、metadata
一、什么是hive元数据? hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下 (1)hive表的数据库名、表名、字段名称与类型、分区字段与类型 (2)表的分区,分区的属性location等 (3)serdeproperties, tblproperties等等 可以通过 desc
一、什么是hive元数据? hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下 (1)hive表的数据库名、表名、字段名称与类型、分区字段与类型 (2)表的分区,分区的属性location等 (3)serdeproperties, tblproperties等等 可以通过 desc formatted tablename 查看表有哪些属性 二、hive默认元数据库Derby(嵌入模式) hive-default.xml通过如下配置设置<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.apache.derby.jdbc.EmbeddedDriver</value> <description>Driver class name for a JDBC metastore</description>
property> Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。所以hive采用了Derby作为一个内嵌的元数据库,可以完成hive安装的简单测试。 hive安装完成之后,就可以在hive shell中执行一些基本的操作,创建表、查询等等。如果你细心的话,就会发现一个问题: 当在某个目录下启动终端,进入hive shell时,hive默认会在当前目录下生成一个derby文件和一个metastore_db目录,这两个文件主要保存刚刚在shell中操作的一些sql的结果,比如新建的表、添加的分区等等 这种存储方式的带来弊端 1.在同一个目录下同时只能有一个hive客户端能使用数据库 2.切换目录启动新的shell,无法查看之前创建的表,不能实现表数据的共享 三、使用mysql作为元数据库 由于使用默认的元数据库有些弊端,所以采用mysql保存hive元数据解决上面的问题。hive所有的元数据都保存在同一个库里,这样不同开发者创建的表可以实现共享。
mysql配置又分为几种情况: (1)mysql部署在hive服务器,使用本地服务(测试、学习使用)

(2)mysql部署在其他机器,hive服务器开启metadata服务,在hive服务器上操作hive

(3)mysql部署在其他机器,hive服务器开启metadata服务,在hive客户端访问hive的metadata服务

配置mysql: 配置mysql时,首先要把mysql-jdbc-driver.jar拷贝到$HIVE_HOME/lib目录下,修改hive-default.xml名字为hive-site.xml 第一种情况,hive-site.xml配置如下
<property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</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>password</value> </property> 第二种情况,hive-site.xml配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.0.1:3306/hive?createDatabaseIfNotExist=true</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>password</value> </property> <property> <name>hive.metastore.local</name> <value>false</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.0.101:9083</value> </property> 第三种情况,hive-site.xml配置 1、 服务端配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.1.214:3306/hive?createDatabaseIfNotExist=true</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>password</value> </property> 2、客户端配置 <property> <name>hive.metastore.local</name> <value>false</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.0.101:9083</value> </property> 在使用hive开始前,如果mysql是部署在远端且 hive.metastore.local=false 则需要启动hive的metadata服务 $ hive --service metastore 客户端使用hive命令即可 root@local:~$ hive hive> show tables; OK Time taken: 0.7 seconds hive>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

In 2025, global digital virtual currency trading platforms are fiercely competitive. This article authoritatively releases the top ten digital virtual currency trading platforms in the world in 2025 based on indicators such as transaction volume, security, and user experience. OKX ranks first with its strong technical strength and global operation strategy, and Binance follows closely with high liquidity and low fees. Platforms such as Gate.io, Coinbase, and Kraken are at the forefront with their respective advantages. The list covers trading platforms such as Huobi, KuCoin, Bitfinex, Crypto.com and Gemini, each with its own characteristics, but investment should be cautious. To choose a platform, you need to consider factors such as security, liquidity, fees, user experience, currency selection and regulatory compliance, and invest rationally

Use the DataAccessObjects (DAO) library in C++ to connect and operate the database, including establishing database connections, executing SQL queries, inserting new records and updating existing records. The specific steps are: 1. Include necessary library statements; 2. Open the database file; 3. Create a Recordset object to execute SQL queries or manipulate data; 4. Traverse the results or update records according to specific needs.

PHP database connection guide: MySQL: Install the MySQLi extension and create a connection (servername, username, password, dbname). PostgreSQL: Install the PgSQL extension and create a connection (host, dbname, user, password). Oracle: Install the OracleOCI8 extension and create a connection (servername, username, password). Practical case: Obtain MySQL data, PostgreSQL query, OracleOCI8 update record.
