当前位置: 首页 > news >正文

福建省建设执业资格管理注册中心网站找程序员的网站

福建省建设执业资格管理注册中心网站,找程序员的网站,网店推广策略,不死鸟分享友情链接hive原理 Hive 内部表和外部表的区别Hive 有索引吗运维如何对 Hive 进行调度ORC、Parquet 等列式存储的优点数据建模用的哪些模型#xff1f;1. 星型模型2. 雪花模型3. 星座模型 为什么要对数据仓库分层#xff1f;使用过 Hive 解析 JSON 串吗sort by 和 order by 的区别数据… hive原理 Hive 内部表和外部表的区别Hive 有索引吗运维如何对 Hive 进行调度ORC、Parquet 等列式存储的优点数据建模用的哪些模型1. 星型模型2. 雪花模型3. 星座模型 为什么要对数据仓库分层使用过 Hive 解析 JSON 串吗sort by 和 order by 的区别数据倾斜怎么解决Hive 小文件过多怎么解决1. 使用 hive 自带的 concatenate 命令自动合并小文件2. 调整参数减少 Map 数量3.减少 Reduce 的数量4. 使用 hadoop 的 archive 将小文件归档 Hive 优化有哪些Tez 引擎优点 Hive 内部表和外部表的区别 未被 external 修饰的是内部表被 external 修饰的为外部表。 区别 内部表数据由 Hive 自身管理外部表数据由 HDFS 管理内部表数据存储的位置是 hive.metastore.warehouse.dir默认/user/hive/warehouse外部表数据的存储位置由自己制定如果没有LOCATIONHive 将在 HDFS 上的/user/hive/warehouse 文件夹下以外部表的表名创建一个文件夹并将属于这个表的数据存放在这里删除内部表会直接删除元数据metadata及存储数据删除外部表仅仅会删除元数据HDFS 上的文件并不会被删除。 Hive 有索引吗 Hive 支持索引3.0 版本之前但是 Hive 的索引与关系型数据库中的索引并不相同比如Hive 不支持主键或者外键。并且 Hive 索引提供的功能很有限效率也并不高因此 Hive 索引很少使用。  索引适用的场景适用于不更新的静态字段。以免总是重建索引数据。每次建立、更新数据后都要重建索引以构建索引表。  Hive 索引的机制如下hive 在指定列上建立索引会产生一张索引表Hive 的一张物理表里面的字段包括索引列的值、该值对应的 HDFS 文件路径、该值在文件中的偏移量。 Hive 0.8 版本后引入 bitmap 索引处理器这个处理器适用于去重后值较少的列 例如某字段的取值只可能是几个枚举值 因为索引是用空间换时间索引列的取值过多会导致建立 bitmap 索引表过大。注意Hive 中每次有数据时需要及时更新索引相当于重建一个新表否则会影响数据查询的效率和准确性Hive 官方文档已经明确表示 Hive 的索引不推荐被使 用在新版本的 Hive 中已经被废弃了。 扩展Hive 是在 0.7 版本之后支持索引的在 0.8 版本后引入 bitmap 索引处理器在 3.0 版本开始移除索引的功能取而代之的是 2.3 版本开始的物化视图自动重写的物化视图替代了索引的功能。 运维如何对 Hive 进行调度 将 hive 的 sql 定义在脚本当中使用 azkaban 或者 oozie 进行任务的调度监控任务调度页面。 ORC、Parquet 等列式存储的优点 ORC 和 Parquet 都是高性能的存储方式这两种存储格式总会带来存储和性能上的提升。 Parquet: Parquet 支持嵌套的数据模型类似于 Protocol Buffers每一个数据模型的schema 包含多个字段每一个字段有三个属性重复次数、数据类型和字段名。重复次数可以是以下三种required(只出现 1 次)repeated(出现 0 次或多次)optional(出现 0 次或 1 次)。每一个字段的数据类型可以分成两种group(复杂类型)和 primitive(基本类型)。Parquet 中没有 Map、Array 这样的复杂数据结构但是可以通过 repeated和 group 组合来实现的。由于 Parquet 支持的数据模型比较松散可能一条记录中存在比较深的嵌套关系如果为每一条记录都维护一个类似的树状结可能会占用较大的存储空间因此 Dremel 论文中提出了一种高效的对于嵌套数据格式的压缩算法Striping/Assembly 算法。通过 Striping/Assembly 算法parquet 可以使用较少的存储空间表示复杂的嵌套格式并且通常 Repetition level 和Definition level 都是较小的整数值可以通过 RLE 算法对其进行压缩进一步降低存储空间。Parquet 文件是以二进制方式存储的是不可以直接读取和修改的Parquet文件是自解析的文件中包括该文件的数据和元数据。 ORC: ORC 文件是自描述的它的元数据使用 Protocol Buffers 序列化并且文件中的数据尽可能的压缩以降低存储空间的消耗。和 Parquet 类似ORC 文件也是以二进制方式存储的所以是不可以直接读取ORC 文件也是自解析的它包含许多的元数据这些元数据都是同构 ProtoBuffer 进行序列化的。ORC 会尽可能合并多个离散的区间尽可能的减少 I/O 次数。ORC 中使用了更加精确的索引信息使得在读取数据时可以指定从任意一行开始读取更细粒度的统计信息使得读取 ORC 文件跳过整个 rowgroupORC 默认会对任何一块数据和索引信息使用 ZLIB 压缩因此 ORC文件占用的存储空间也更小。在新版本的 ORC 中也加入了对 Bloom Filter 的支持它可以进一 步提升谓词下推的效率在 Hive 1.2.0 版本以后也加入了对此的支 持。 数据建模用的哪些模型 1. 星型模型 星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心所有的维度表直接连接在事实表上像星星一样。 星形模式的维度建模由一个事实表和一组维表成且具有以下特点 a. 维表只和事实表关联维表之间没有关联 b. 每个维表主键为单列且该主键放置在事实表中作为两边连接的外键 c. 以事实表为核心维表围绕核心呈星形分布。 2. 雪花模型 雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的虽然这种模型相比星型更规范一些但是由于这种模型不太容易理解维护成本比较高而且性能方面需要关联多层维表性能比星型模型要低。 3. 星座模型 星座模式是星型模式延伸而来星型模式是基于一张事实表的而星座模式是基于多张事实表的而且共享维度信息。前面介绍的两种维度建模方法都是多维表对应单事实表但在很多时候维度空间内的事实表不止一个而一个维表也可能被多个事实表用到。在业务发展后期绝大部分维度建模都采用的是星座模式。数仓建模详细介绍可查看通俗易懂数仓建模 为什么要对数据仓库分层  用空间换时间通过大量的预处理来提升应用系统的用户体验效率因此数据仓库会存在大量冗余的数据。  如果不分层的话如果源业务系统的业务规则发生变化将会影响整个数据清洗过程工作量巨大。  通过数据分层管理可以简化数据清洗的过程因为把原来一步的工作分到了多个步骤去完成相当于把一个复杂的工作拆成了多个简单的工作把一个大的黑盒变成了一个白盒每一层的处理逻辑都相对简单和容易理解这样我们比较容易保证每一个步骤的正确性当数据发生错误的时候往往我们只需要局部调整某个步骤即可。 链接: 万字详解整个数据仓库建设体系好文值得收藏 使用过 Hive 解析 JSON 串吗 Hive 处理 json 数据总体来说有两个方向的路走 将 json 以字符串的方式整个入 Hive 表然后通过使用 UDF 函数解析已经导入到 hive 中的数据比如使用 LATERAL VIEW json_tuple 的方法获取所需要的列名。在导入之前将 json 拆成各个字段导入 Hive 表的数据是已经解析过的。这将需要使用第三方的 SerDe。 链接: 一文学会Hive解析Json数组好文收藏 sort by 和 order by 的区别 order by 会对输入做全局排序因此只有一个 reducer多个 reducer 无法保证全局有序只有一个 reducer会导致当输入规模较大时需要较长的计算时间。sort by 不是全局排序其在数据进入 reducer 前完成排序. 因此如果用 sort by进行排序并且设置 mapred.reduce.tasks1 则sort by 只保证每个 reducer 的输出有序不保证全局有序。 数据倾斜怎么解决 数据倾斜问题主要有以下几种 空值引发的数据倾斜不同数据类型引发的数据倾斜不可拆分大文件引发的数据倾斜数据膨胀引发的数据倾斜表连接时引发的数据倾斜确实无法减少数据量引发的数据倾斜 以上倾斜问题的具体解决方案可查看 链接: Hive 千亿级数据倾斜解决方案 注意对于 left join 或者 right join 来说不会对关联的字段自动去除 null 值对于 inner join 来说会对关联的字段自动去除 null 值。 Hive 小文件过多怎么解决 1. 使用 hive 自带的 concatenate 命令自动合并小文件 使用方法 #对于非分区表 alter table A concatenate; #对于分区表 alter table B partition(day20201224) concatenate; 注意 1、concatenate 命令只支持 RCFILE 和 ORC 文件类型。 2、使用 concatenate 命令合并小文件时不能指定合并后的文件数量但可以多次执行该命令。 3、当多次使用 concatenate 后文件数量不在变化这个跟参数 mapreduce.input.fileinputformat.split.minsize256mb 的设置有关可设定每个文件的最小 size。 2. 调整参数减少 Map 数量 设置 map 输入合并小文件的相关参数执行 Map 前进行小文件合并 在 mapper 中将多个文件合成一个 split 作为输入CombineHiveInputFormat 底层是 Hadoop 的 CombineFileInputFormat 方法 set hive.input.formatorg.apache.hadoop.hive.ql.io.CombineHiveInputFormat; – 默认 每个 Map 最大输入大小这个值决定了合并后文件的数量 set mapred.max.split.size256000000; – 256M 一个节点上 split 的至少大小这个值决定了多个 DataNode 上的文件是否需要合并 set mapred.min.split.size.per.node100000000; – 100M 一个交换机下 split的至少大小(这个值决定了多个交换机上的文件是否需要合并) set mapred.min.split.size.per.rack100000000; – 100M 3.减少 Reduce 的数量 reduce 的个数决定了输出的文件的个数所以可以调整 reduce 的个数控制 hive表的文件数量。 hive 中的分区函数 distribute by 正好是控制 MR 中 partition 分区的可以通过设置 reduce 的数量结合分区函数让数据均衡的进入每个 reduce 即可 #设置 reduce 的数量有两种方式第一种是直接设置 reduce 个数 set mapreduce.job.reduces10; #第二种是设置每个 reduce 的大小Hive 会根据数据总大小猜测确定一个 reduce 个数 set hive.exec.reducers.bytes.per.reducer5120000000; – 默认是 1G设置为 5G #执行以下语句将数据均衡的分配到 reduce 中 set mapreduce.job.reduces10; insert overwrite table A partition(dt) select * from B distribute by rand(); 对于上述语句解释如设置 reduce 数量为 10使用 rand()随机生成一个数 x %10 这样数据就会随机进入 reduce 中防止出现有的文件过大或过小。 4. 使用 hadoop 的 archive 将小文件归档 Hadoop Archive 简称 HAR是一个高效地将小文件放入 HDFS 块中的文件存档工具它能够将多个小文件打包成一个 HAR 文件这样在减少 namenode 内存使用的同时仍然允许对文件进行透明的访问。 #用来控制归档是否可用 set hive.archive.enabledtrue; #通知 Hive 在创建归档时是否可以设置父目录 set hive.archive.har.parentdir.settabletrue; #控制需要归档文件的大小 set har.partfile.size1099511627776; 使用以下命令进行归档 ALTER TABLE A ARCHIVE PARTITION(dt‘2021-05-07’, hr‘12’); 对已归档的分区恢复为原文件 ALTER TABLE A UNARCHIVE PARTITION(dt‘2021-05-07’, hr‘12’); 注意: 归档的分区可以查看不能 insert overwrite必须先 unarchive 链接: 解决 hive 小文件过多问题 Hive 优化有哪些 数据存储及压缩 针对 hive 中表的存储格式通常有 orc 和 parquet压缩格式一般使用 snappy。相比与 textfile 格式表orc 占有更少的存储。因为 hive 底层使用 MR 计算架构数据流是 hdfs 到磁盘再到 hdfs而且会有很多次所以使用 orc 数据格式和 snappy压缩策略可以降低 IO 读写还能降低网络传输量这样在一定程度上可以节省存储还能提升 hql 任务执行效率 通过调参优化 并行执行调节 parallel 参数 调节 jvm 参数重用 jvm 设置 map、reduce 的参数开启 strict mode 模式 关闭推测执行设置。 有效地减小数据集将大表拆分成子表结合使用外部表和分区表。 SQL 优化  大表对大表尽量减少数据集可以通过分区表避免扫描全表或者全字 段  大表对小表设置自动识别小表将小表放入内存中去执行。 链接: Hive企业级性能优化好文建议收藏 Tez 引擎优点 Tez 可以将多个有依赖的作业转换为一个作业这样只需写一次 HDFS且中间节点较少从而大大提升作业的计算性能。 Mr/tez/spark 区别 Mr 引擎多 job 串联基于磁盘落盘的地方比较多。虽然慢但一定能跑出结果。一般处理周、月、年指标。 Spark 引擎虽然在 Shuffle 过程中也落盘但是并不是所有算子都需要 Shuffle尤其是多算子过程中间过程不落盘 DAG 有向无环图。 兼顾了可靠性和效率。一般处理天指标。 Tez 引擎完全基于内存。 注意如果数据量特别大慎重使用。容易 OOM。 一般用于快速出结果数据量比较小的场景。
http://www.zqtcl.cn/news/79351/

相关文章:

  • 网站公司哪家好百度爱采购网站
  • 北京市保障性住建设投资中心网站项目管理6个核心内容
  • 转笔教学网站青岛百度seo排名
  • 金融网站开发文档高端装修公司怎么获客
  • 怎么做手机版网站站长工具网
  • 合肥网站建设=388元杭州网站设计网站
  • wordpress文章公众号东莞网站建设优化企业
  • 注册查询系统seo公司软件
  • 青羊区建设厅网站滨州医学院做计算机作业的网站
  • 抚州网站推广wordpress4.3 漏洞
  • 服装设计找图网站入门做网站
  • 电子商务网站设计案例西双版纳傣族自治州有几个县
  • 山东济南网站建设公司哪家好个人养老保险怎么交
  • 深圳自己做网站 服务器网址你会回来感谢我
  • 阿里云网站备案好了 怎么建站做网站 会计分录
  • 优秀企业网站的优缺点域名注册商网站
  • 苏州园区两学一做网站网站如何做cc防护
  • pv3d 优秀网站做网站找哪家好
  • 自己建设网站步骤生鲜网站制作
  • 平顶山市哪里有做网站的wordpress 4.0 中文主题
  • 包装设计网站排行榜前十名苏州百姓网
  • 网站开发站点的文件夹弄个盈利网站做什么
  • 网站网页基本情况 网页栏目设置济源做网站的好公司
  • 网站制作与网页建设金华网站开发建设
  • 佛山企业网站自助建站淮北发展论坛
  • 网站制作的基本步骤网站地图做几个
  • html5汽车网站模板施工企业对下结算容易出现的问题
  • 舆情监测郑州网站排名优化公司
  • 建个静态网站园区网互联及网站建设项目
  • asp网站会员注册不了美团招聘网站开发