submitting_target满满干货
我帮你呀
序言 大数据的生态包含各种各样的组件,hive是其中之一,hive主要是作为数据仓库的工具,简化相关人员的代码工作,只要编写简单的SQL就可以实现mapreduce效果 hive是建立在hadoop之上的,也就是将海量的数据存储在HDFS之中,而对于数据的分析和计算则是借助mapreduce。
HIVE1 hive的作用及组成部分 hive主要是将用户编写的SQL语句,进行词法分析,语法解析,最后将SQL转变成mapreduce程序在hadoop之中执行,最后拿到结果返回给用户 hive将hdfs中的结构化文件映射成数据库,表,从而需要一个元数据中心保存相关的信息,一般保存在mysql中,这部分主要就是metastore;hive的服务端提供提供编译器,执行器,根据mr的模板程序将sql转变为mr程序,然后由执行器将job提交给yarn进行调度,读取hdfs的数据,运行mapreduce程序。
hive本身是不提供计算引擎,在低版本中,主要是mapreduce来负责,不过这个map阶段,shuffle阶段,reduce阶段都是需要大量的磁盘读写,性能不高,从而有了tez计算框架,使用DAG有向无环图的方式来进行各个阶段的复用,从而能提升部分性能,比较推荐的是使用spark的计算引擎,这种全部都是内存的操作,从而能大大提升性能。
hive主要适合于离线数据的批量计算,也就是通常所说的batch computing,适合于数据的转换处理。
hive的高可用架构比较简单,也就是后端同时运行几个hive服务,反正自己也不用保存啥数据,因为需要保存的数据都是元数据,持久化存储在mysql中。
2 hive的配置 hive首先需要一个metstore,也就是元数据存储的地方,一般使用mysql主从来实现,可以查看保存在其中的元数据信息mysql> use hive;Reading table information 。
for completion of table and column namesYou can turn off this feature to get a quicker startup with -A
Database changedmysql> SELECT * FROM VERSION;+--------+----------------+----------------------------+
| VER_ID | SCHEMA_VERSION | VERSION_COMMENT |+--------+----------------+----------------------------+
| 1 |1.2.0| Hive release version 1.2.0 |+--------+----------------+----------------------------+
1 row in set (0.00 sec)mysql> SELECT * FROM DBS;+-------+-----------------------+--------------------------------------+---------+------------+------------+
| DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER_NAME | OWNER_TYPE
|+-------+-----------------------+--------------------------------------+---------+------------+------------+
|1| Default Hive database |hdfs://ns/user/hive/warehouse| default | public | ROLE || 2 |
NULL | hdfs://ns/user/hive/warehouse/kel.db | kel | root | USER |+-------+-----------------------+--------------------------------------+---------+------------+------------+
2 rows in set (0.01 sec)mysql> SELECT * FROM PARTITIONS;+---------+-------------+------------------+---------------------------+-------+--------+----------------+
| PART_ID | CREATE_TIME | LAST_ACCESS_TIME | PART_NAME | SD_ID | TBL_ID | LINK_TARGET_ID
|+---------+-------------+------------------+---------------------------+-------+--------+----------------+
|1| 1613477304 |0| country=CHINA |13| 12 | NULL ||2| 1613477401 |0| country=USA |
14| 12 | NULL ||3| 1613478060 |0| dt=2021%2F02%2F16/hour=12 |16| 13 | NULL
||4| 1613478129 |0| dt=2021%2F02%2F16/hour=11 |17| 13 | NULL ||5| 1613478134 |0| dt=2021%2F02%2F17/hour=11 |
18| 13 | NULL |+---------+-------------+------------------+---------------------------+-------+--------+----------------+
5 rows in set (0.00 sec)在安装hive的时候,会自动初始化这个元数据库,各个表之间的关系可以在官网上查看到//hive和hadoop的联系[root@KEL1 conf]# grep hadoop hive-env.sh。
# Set HADOOP_HOME to point to a specific hadoop install directoryHADOOP_HOME=/opt/module/hadoop-2.7.2
//hive连接元数据库配置[root@KEL1 conf]# cat hive-site.xml javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
>javax.jdo.option.ConnectionDriverNamecom.mysql.cj.jdbc.Driver
javax.jdo.option.ConnectionUserNameroot
>javax.jdo.option.ConnectionPasswordroot//防止远程会话超时断开
hive.server2.idle.session.timeout0hive.server2.idle.operation.timeout
0hive.server2.session.check.interval0
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186