参考:《Hive编程指南》第一版,Hive官方wiki,https://bbs.huaweicloud.com/blogs/197920
《Hive编程指南》第一版出版于2013年,此时hive2尚未发布,如今hive3已经普及,很多知识已经过时,这里仅为学习
Hive是一个开源的数据仓库框架,基于Hadoop生态系统,用于处理和分析大量的结构化和半结构化数据。
Hive提供了一个类似于SQL的查询语言,称为HiveQL(Hive Query Language),允许用户编写查询来分析存储在Hadoop分布式文件系统(HDFS)或其他兼容的存储系统(如Amazon S3)中的数据。HiveQL查询会被转换成一系列的MapReduce作业,然后在Hadoop集群上执行。Hive还支持其他执行引擎,如Apache Tez和Apache Spark。
Hive发行版中附带的模块有CLI,一个成为Hive网页界面(HWI)的简单网页界面,以及可通过JDBC、ODBC和一个Thrift服务器(参考第16章)进行编程访问的几个模块
所有的命令和查询都会进入到Driver(驱动模块),通过该模块对输入进行解析编译,对需求的计算进行优化,然后按照指定的步骤执行。当需要生成MR任务(job)时,Hive通过一个表示”job执行计划“的XML文件驱动执行内置的、原生的Mapper和Reducer模块。
Hive通过和JobTracker通信来初始化MR任务,而不必部署在JobTracker所在节点
Metastore是一个独立的关系型数据库,Hive会在其中保存表模式和其它系统源数据
单节点安装和使用HIVE
准备
java 1.8
hadoop 3.4.0
hive安装包https://dlcdn.apache.org/hive/,版本3.1.3
wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
tar -xzvf apache-hive-3.1.3-bin.tar.gz
MySQL安装与配置
hive的使用metastore保存数据元信息,这里使用mysql
卸载机器自带mysql:
yum remove mariadb mariadb-libs
安装:
yum install TXSQL-client.x86_64
启动mysql:
# 启动mysql
sudo service mysql start
# 测试登录,mysql5.7默认root用户初始密码为空
mysql -u root
此时有权限问题无法登录,进行如下步骤:
# 停止mysql服务
sudo service mysql stop
# 以安全模式启动MySQL
sudo mysqld_safe --skip-grant-tables &
# 登录mysql
mysql -u root
修改root用户密码
update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';
flush privileges;
重启服务