摘要:
一、写在前面 (本专栏分为“java版微博爬虫”和“python版网络爬虫”两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github,有兴趣的可以去看下,链接地址在文末。) 网络爬虫根据需求的不同也分不同种类: 1.一种是... 阅读全文
摘要:
HBase 的机制里包含了许多优秀的算法,如 Region 定位、Region 分配、Region Server的上线和下线、Master 的上线和下线。在谈到这些之前,先把 HBase 的基本架构里的一些概念列在这里。 一、HBase组成 1.Client:利用 RPC 机... 阅读全文
摘要:
数据倾斜即为数据在节点上分布不均,是常见的优化过程中常见的需要解决的问题。常见的Hive调优的方法:列剪裁、Map Join操作、 Group By操作、合并小文件。 一、表现 1.任务进度长度为99%,在任务监控页面中发现只有几个 reduce 子任务未完成; ... 阅读全文
摘要:
Cloudera 提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更... 阅读全文
摘要:
一、MapReduce 总体架构 整体的Shuffle过程包含以下几个部分:Map端Shuffle、Sort阶段、Reduce端Shuffle。即是说:Shuffle 过程横跨 map 和 reduce 两端,中间包含 sort 阶段,就是数据从 map task 输出到red... 阅读全文
摘要:
典型问题:Hadoop如何判断一个任务失败?失败了怎么做? 分析:实际情况下,用户代码存在软件错误、进程崩溃、机器故障等都会导致失败。Hadoop判断的失败有不同级别类型,针对不同级别的失败有不同的处理对策,这就是MapReduce的容错机制。下面是几个不同级别失败的分类: 一、任务失败 分为3... 阅读全文
摘要:
一、MR作业运行过程 JobClient的runJob()方法:新建JobClient实例,并调用其submitJob()方法。提交作业后,runJob()每秒轮询作业进度,如果发现上次上报后信息有改动,则把进度报告输出到控制台。作业完成,成功则显示作业计数器;失败则输出错误到控... 阅读全文
摘要:
HDFS处理文件的命令和Linux命令差不多,但注意区分大小写。 (Linux区分大小写,Windows不区分大小写) 一、fs命令 键入命令“./bin/hadoop fs”将输出能够支持的命令列表。 Usage: java FsShell [-ls ] [-lsr ]... 阅读全文
摘要:
HA解决了HDFS的NameNode的单点问题; Federation解决了整个HDFS集群中只有一个名字空间,并且只有单独的一个NameNode管理所有DataNode的问题。 一、HA机制(High Availability) 1.HA集群 HDFS 的高可用性(... 阅读全文
摘要:
RPC(Remote Procedure Call, 远程过程调用)主要面对两个问题: 1.对象调用方式; 2.序列/反序列化机制。 Hadoop实现的RPC组件依赖于Hadoop Writable类型支持。Writable接口要求... 阅读全文