安装和体验hive

本文详细介绍了在CentOS 7.5环境下,如何安装配置Hive 1.2.2,包括依赖的Hadoop 2.7.7环境,使用MySQL 5.7.27作为元数据存储,以及初始化、启动Hive和验证过程。
摘要由CSDN通过智能技术生成

Hive是种基于Hadoop的数据仓库工具,将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

环境信息

本文对应的环境信息如下:

  1. CentOS Linux release 7.5.1804

  2. JDK:1.8.0_191

  3. hadoop:2.7.7

  4. hive:1.2.2

hadoop的部署和启动

  1. hadoop环境的部署和启动请参考《Linux部署hadoop2.7.7集群》

  2. 注意:确保环境变量中有HADOOP_HOME的配置;

安装和配置MySQL(5.7.27版本)

  1. MySQL用来存储元数据,我这里为了简化操作是在docker环境下部署的,一行命令即可:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=888888 -idt mysql:5.7.27

  1. 进入mysql容器:

docker exec -it mysql /bin/bash

  1. 进入容器后连接mysql,密码是888888:

mysql -h127.0.0.1 -uroot -p

  1. 新建名为hive的mysql账号:

CREATE USER ‘hive’ IDENTIFIED BY ‘888888’;

  1. 给hive账号授权访问(并且hvie账号还有权给其他账号授权):

GRANT ALL PRIVILEGES ON . TO ‘hive’@‘%’ WITH GRANT OPTION;

  1. 刷新权限数据:

flush privileges;

  1. 在宿主机的终端执行以下命令重启mysql服务:

docker exec mysql service mysql restart

  1. 再次进入mysql容器,以hive账号的身份登录mysql:

mysql -uhive -p

  1. 创建名为hive的数据库:

CREATE DATABASE hive;

安装hive

  1. 去hive官网下载,地址是:http://mirror.bit.edu.cn/apache/hive/ ,选择合适的版本,如下图:

在这里插入图片描述

注意:接下来的操作用的账号都不是root,而是hadoop

  1. 在hadoop账号的家目录下解压刚刚下载的apache-hive-1.2.2-bin.tar.gz文件,是个名为apache-hive-1.2.2-bin的目录;

  2. 编辑hadoop账号的.bash_profile文件,增加一个环境变量,就是将刚刚解压出来的apache-hive-1.2.2-bin文件夹的完整路径:

export HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin

  1. 修改完毕后,重新打开一个ssh连接,或者执行source ~/.bash_profile让环境变量立即生效;

  2. 进入目录apache-hive-1.2.2-bin/conf/,用模板文件复制一份配置文件:

cp hive-default.xml.template hive-default.xml

  1. 在此目录创建名为hive-site.xml的文件,内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

javax.jdo.option.ConnectionURL

jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

hive

javax.jdo.option.ConnectionPassword

888888

  1. 将mysql的JDBC包放在此目录:/home/hadoop/apache-hive-1.2.2-bin/lib/,我这里用的是mysql-connector-java-5.1.47.jar,您可以在此下载:https://download.csdn.net/download/boling_cavalry/11834367

设置工作已经完成了,接下来是启动和初始化;

初始化和启动hive

  1. 进入目录apache-hive-1.2.2-bin/bin,执行以下命令初始化:

./schematool -initSchema -dbType mysql

操作成功后,控制台提示:

[hadoop@node0 bin]$ ./schematool -initSchema -dbType mysql

Metastore connection URL: jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true

Metastore Connection Driver : com.mysql.jdbc.Driver

Metastore connection User: hive

Starting metastore schema initialization to 1.2.0

Initialization script hive-schema-1.2.0.mysql.sql

Initialization script completed

schemaTool completed

  1. 在mysql上看一下,数据库hvie下建了多个表:

mysql> show tables;

±--------------------------+

| Tables_in_hive |

±--------------------------+

| BUCKETING_COLS |

| CDS |

| COLUMNS_V2 |

| COMPACTION_QUEUE |

| COMPLETED_TXN_COMPONENTS |

| DATABASE_PARAMS |

| DBS |

| DB_PRIVS |

| DELEGATION_TOKENS |

| FUNCS |

| FUNC_RU |

| GLOBAL_PRIVS |

| HIVE_LOCKS |

| IDXS |

| INDEX_PARAMS |

| MASTER_KEYS |

| NEXT_COMPACTION_QUEUE_ID |

| NEXT_LOCK_ID |

| NEXT_TXN_ID |

| NOTIFICATION_LOG |

| NOTIFICATION_SEQUENCE |

| NUCLEUS_TABLES |

| PARTITIONS |

| PARTITION_EVENTS |

| PARTITION_KEYS |

| PARTITION_KEY_VALS |

| PARTITION_PARAMS |

| PART_COL_PRIVS |

| PART_COL_STATS |

| PART_PRIVS |

| ROLES |

| ROLE_MAP |

| SDS |

| SD_PARAMS |

| SEQUENCE_TABLE |

| SERDES |

| SERDE_PARAMS |

| SKEWED_COL_NAMES |

| SKEWED_COL_VALUE_LOC_MAP |

| SKEWED_STRING_LIST |

| SKEWED_STRING_LIST_VALUES |

| SKEWED_VALUES |

| SORT_COLS |

| TABLE_PARAMS |

| TAB_COL_STATS |

| TBLS |

| TBL_COL_PRIVS |

| TBL_PRIVS |

| TXNS |

| TXN_COMPONENTS |

| TYPES |

| TYPE_FIELDS |

| VERSION |

±--------------------------+

53 rows in set (0.00 sec)

  1. 在目录/home/hadoop/apache-hive-1.2.2-bin/bin执行命令./hive即可启动;

初始化和启动已经完成,接下来验证hive;

验证

  1. 前面执行./hive之后,已进入了对话模式,输入以下命令创建名为test001的数据库:

CREATE database test001;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

MySQL50道高频面试题整理:

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

MySQL50道高频面试题整理:

[外链图片转存中…(img-EsDlro19-1713642889324)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值