Hive的初始化和架构

Hive的初始化:

1.Hive是一个构建数据库的工具
2.两份数据 源数据 和 元数据(其中包括行的分隔符和字段的分隔符字段类型和字段名称,用来将来映射成表的时候可以明确有多少行和多少列)
3.mysql是把数据存储到本地磁盘,hive把源数据存放在HFDS上,把元数据存在了数据库中
4.Hive支持sql语句进行数据的处理

5.hive操作从sql到MR的过程

在这里插入图片描述

HIVE架构:

在这里插入图片描述

### 如何在 Hive初始化数据库 #### 准备工作 为了成功完成 Hive 数据库的初始化操作,需要确保环境已经配置好 MySQL 或其他支持的 RDBMS 来存储元数据[^1]。这通常涉及安装并启动 Hadoop Hive 的必要组件。 #### 登录到 MySQL 数据库 通过命令行或其他工具连接至已安装好的 MySQL 实例。假设 MySQL 已经运行正常,则可以执行如下 SQL 命令来验证连接状态: ```sql mysql -u root -p ``` 输入密码后进入 MySQL 控制台[^1]。 #### 创建用于 Hive 存储元数据的数据库 一旦成功登录到 MySQL 后端服务,下一步就是创建一个新的数据库实例供 Hive 使用作为其内部结构定义的位置保存区。以下是具体实现方法之一: ```sql CREATE DATABASE hive_db; USE hive_db; ``` 这里 `hive_db` 是新建立起来专门服务于 Apache Hive 应用程序需求的一个独立逻辑单元名称;当然也可以替换为自己喜欢的名字只要不与其他现有对象冲突即可[^1]。 #### 配置 Hive 客户端指向新建好的 MySQL 数据源地址 编辑位于 `$HIVE_HOME/conf/hive-site.xml` 文件,在其中添加或者修改下面几项参数设置以便让 Hive 知道去哪里寻找它的外部依赖关系——即刚才手工构建出来的那个叫作 “hive_db” 的地方: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_db?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>YourMysqlRootPasswordHere</value> </property> ``` 注意将 `<value>` 字段中的内容替换成实际环境中对应的值,比如主机名、端口号以及认证凭证等信息[^1]。 #### 初始化 Hive 元数据仓库 当所有的前期准备都完成后就可以正式开始初始化过程了。切换回终端窗口然后简单地调用以下指令触发整个流程自动完成: ```bash schematool -dbType mysql -initSchema ``` 这条语句会依据当前系统所指定的目标位置(也就是之前提到过的那个名为 `hive_db` 的特殊区域),按照官方默认模式填充必要的基础架构描述资料进去形成完整的功能框架体系。 #### 查看 Hive 元数据仓库的内容 如果一切顺利的话现在应该能够看到一些预设的基础表单列表被正确加载到了目标容器之中。可以通过开启 Beeline CLI 并尝试查询这些资源来进行确认: ```bash beeline -u jdbc:hive2:// !connect jdbc:hive2:// localhost:10000 default $username $password SHOW TABLES IN system; DESCRIBE FORMATTED system.metadata_table_example; ``` 以上步骤展示了如何利用 Beeline 查询语言探索刚刚生成的数据字典组成部分情况。 #### 测试 Hive 是否能正常使用新的元数据仓储设施 最后一步也是至关重要的环节就是要检验整体解决方案是否达到了预期效果。为此可以从头再来一遍常规的任务提交演练看看是否存在异常现象发生: ```sql CREATE EXTERNAL TABLE IF NOT EXISTS test_init ( id INT, name STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/tmp/test_hive_init'; SELECT * FROM test_init LIMIT 5; DROP TABLE test_init; ``` 这样就完成了从零起步直至最终交付可用成果的一整套标准化作业指导手册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值