应对SolarWinds黑客攻击的技巧
|
2.7.1 HDFS-HA工作要点 元数据管理方式需要改变 内存中各自保存一份元数据。 Edits 日志只有 Active 状态的 NameNode 节点可以做写操作。 两个 NameNode 都可以读取 Edits。 共享的 Edits 放在一个共享存储中管理(qjournal 或 NFS)。 需要一个状态管理功能模块 实现了一个ZKFC,常驻在每一个namenode所在的节点,每一个ZKFC负责监控自己所在NameNode节点,利用zk进行状态标识,当需要进行状态切换时,由ZKFC来负责切换,切换时需要防止brain split现象的发生。 必须保证两个 NameNode 之间能够ssh无密码登录 防脑裂,同一时刻仅仅有一个 NameNode 对外提供服务。 2.7.2 ZooKeeper ZooKeeper 提供如下功能:
2.7.3 ZKFC进程 在 NameNode 主机上有个 ZKFC(ZKFailoverController) 这样的ZK客户端,负责监视管理 NameNode 状态。ZKFC负责:
3 MapReduce MapReduce是个分布式运算程序的编程框架,是基于 Hadoop 的 数据分析计算核心框架。处理过程分为两个阶段:Map 阶段跟 Reduce 阶段。 Map 负责把一个任务分解成多个任务。该阶段的 MapTask 并发实例,完全并行运行,互不相干。 Reduce 负责把多个任务处理结果汇总。该阶段的 ReduceTask 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有 MapTask 并发实例的输出。 MapReduce 编程模型只能包含一个 Map 阶段和一个 Reduce 阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行。 用户编写MR任务时候 程序实现部分分成三个部分:Mapper、Reducer、Driver(提交运行mr程序的客户端)。 3.1 优缺点 3.1.1 优点 易于编程 简单实现了一些接口就可以完成个分布式程序,你写个分布式程序跟写个串行化程序一样,类似八股文编程。 良好的扩展 计算资源不足时可以简单的增加机器来扩展计算能力。 高容错性 MapReduce任务部署在多台机器上后如果其中一台挂了,系统会进行自动化的任务转移来保证任务正确执行。 适合PB级数据离线处理 比如 美团3K个节点的集群并发,提供超大数据处理能力。 3.1.2 缺点 不擅长实时计算 MapReduce 不会想 MySQL 一样毫秒级返回结果。 不擅长流式计算 流式计算的 输入数据是动态的,而 MapReduce 的输入数据集是静态的。 不擅长DAG计算 多个应用程序存在依赖关系,MapReduce的作业结果会落盘导致大量磁盘IO,性能贼低,此时上Spark吧! 3.2 序列化 序列化 把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。 反序列化 将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。
因为 Hadoop 在集群之间进行通讯或者 RPC 调用时是需要序列化的,而且要求序列化要快、且体积要小、占用带宽要小。而Java自带的序列化是重量级框架,对象序列化后会附带额外信息,比如各种校验信息,header,继承体系等。所以 Hadoop 自研了序列化框架。 (编辑:柳州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


