![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
文章平均质量分 52
hive相关文章
当当是个程序员
回归csdn,以后都在这个站更新文章
展开
-
hive相关参数使用---持续更新
hive.fetch.task.conversion参数 可以在hive,jdbc连接中添加该参数。hive查询对应的底层可以是MR任务,也可以不是即直接读取存储在目录下的文件。决定这个行为的参数是 hive.fetch.task.conversion。 当设置为none时表示所有任务都是生成MR任务 当设置成minimal时,select *,分区列上的筛选(where 子句), limit才不会生成MR任务,其他都生成MR任务 当设置成more时,不限定列,简单的查找select filter lim原创 2021-10-27 16:15:26 · 1081 阅读 · 0 评论 -
hive查询时取消对应yarn任务
hive查询时取消对应yarn任务 主要有两种方式 一种是通过hive jdbc的hivestatement的getQueryLog方法获取yarn任务日志,解析日志内容,获取到application id,然后通过ssh的方式执行yarn application --kill 命令。 一种是通过设置hive查询时的任务名,如在使用mr引擎时,执行set mapred.task.name=jobname, 然后通过yarn rest api查询指定的任务名得到application id, 然后通过ss原创 2021-09-24 11:22:03 · 804 阅读 · 0 评论 -
hive 的架构
从上图中可以看到hive的架构组成,一般的DBMS主要分为存储和查询,而hive是做了查询,存储依赖于hdfs,hive的存储可以细分为meta data和real data,meta data存储表结构信息,存放在mysql中,real data表示真实的数据,存放在hdfs中,可以在hive的warehouse目录看到具体的数据库和表名。hive有自己查询语言hive QL,它是一种sql-like语言,hive自己会将hive查询解析成任务给执行引擎去做计算,具体支持的执行引擎包含mapReduce.原创 2021-09-17 16:32:54 · 201 阅读 · 0 评论 -
hive动态分区表的创建
hive分区表分为静态表和动态表,静态表就是插入数据时指定分区,动态分区不用指定分区,根据数据动态的写入不同的分区。关于动态分区表的建立也比较特殊。下面举一个例子,阐述动态分区表的创建。 首先在hive shell中设置开启动态分区功能 set hive.exec.dynamic.partition =true; set hive.exec.dynamic.partition.mode=nonstrict; 创建动态分区表 CREATE TABLE `event_car_pass_partiti原创 2021-08-26 23:02:59 · 2744 阅读 · 1 评论 -
spark 读取hive table时分区数由什么决定
spark 读取hive table时分区数由什么决定 这个话题比较复杂,他不是一个单一的指标的来决定。主要是取决于表存储的文件大小,hdfs的块文件大小,hive是否是分区表,如果是分区表一个hive表分区一个hadoopRDD, 最后会union成一个RDD,如果不是分区表就是一个HadoopRDD。如果hive底层存储单个文件大小超过块大小,这一个文件的读取就会被hdfs的块大小除以max(“mapreduce.job.maps”,2)来划分,如果块大于文件大小就使用文件大小除以max(“mapred原创 2021-07-15 11:26:47 · 999 阅读 · 0 评论