<p>1、hive和hbase的区别</p>
讯享网
Hive: hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理 既可以计算又可以储存 hive中的计算是由mapreduce任务运行的,执行较慢,不适合做实时
HBase:
1.HBase是一种分布式、可扩展、支持海量数据存储的NOSQL数据库
2.HBase主要适用于海量数据的实时数据处理(随机读写)
3.由于HDFS不支持随机读写,而HBase正是为此而诞生的,弥补了HDFS的不可随机读写。
区别:
1.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。总的来说,hive是适用于离线数据的批处理,hbase是适用于实时数据的处理。
2.Hive本身不存储和计算数据,它完全依赖于HDFS存储数据和MapReduce处理数据,Hive中的表纯逻辑。
3.hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
4.由于HDFS的不可随机读写,hive是不支持随机写操作,而hbase支持随机写入操作。 5.HBase只支持简单的键查询,不支持复杂的条件查询
2、正常工作的hadoop集群中hadoop都需要启动哪些进程,作用分别是什么
HDFS : Namenode Datanode SecondaryNamenode(单机模式中有 集群模式中是在 从机器中)
namenode:负责hdfs集群的管理,管理其他的datanode节点,记录各个块的信息,处理客户端的请求,数据存放在内存中
datanode: 数据存储,数据节点,真正存储数据的地方
secondaryNamenode:小秘,执行fsimage和edtis的合成操作
Yarn: ResourceManager NodeManager JobHistoryServer
resourceManager:负责管理集群资源和调度作业,分配计算资源给各个任务。 nodeManager: 在每个工作节点上运行,监控节点的健康状况,执行任务,并报告资源使用情况给resourceManager
Zookeeper : 管理resourceManager和 nameNode的选举,确保 resourceManager和 active nameNode的高可用性。
补充:zookeeper的选举机制:
3、hadoop数据倾斜以及解决办法
(hadoop数据倾斜其实就是mapreduce 和 hive 的数据倾斜)
数据倾斜最直观的表现就是任务长时间维持在 99%等 大量的key被分配到了同一个任务上,导致一些人累死一些人闲死的情况
要注意: 一些sql本身就带有数据倾斜 表中有大量的空值 (Null) 也可能会造成数据倾斜
解决办法:
1) 开启负载均衡 set hive.map.aggr=true set hive.groupby.skewindata=true
2) 自定义分区
3) 使用 Combine 聚合并精简数据
4) 尽可能的在 map 端就进行 join数据关联
5) 少使用 count distinct ,而用 union all 替代
6) 处理一些不可拆分的大文件时也会数据倾斜,可以先在hdfs上进行解压后再操作
4、简单说一下yarn的几种调度器
讯享网
补充:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177157.html