第一章 初识Hadoop

1.2 数据的存储与分析

对多个硬盘中的数据并行进行读/写数据,有以下两个重要问题:

  1. 硬件故障问题。解决方案:复制(replication),系统保存数据的副本(replica)。
  2. 以某种方式结合大部分数据来共同完成分析。MapReduce 提出一个编程模型,该模型抽象出这些硬件读/写问题,并且将其转换成对一个数据集(由键-值对组成)的计算。
    简而言之,Hadoop 为我们提供了一个存储和分析平台。

1.5 关系型数据库和Hadoop 的区别

  1. 它们所操作的数据集的结构化程度。Hadoop 对 非结构化(unstructured data)和 半结构化(semi-structured data)数据非常有效。Web 服务器日志就是典型的非规范化的数据记录,这就是Hadoop 非常适合于分析各种日志的原因。

第二章 关于MapReduce

2.3 使用Hadoop 来分析数据

  1. MapReduce 任务分为两个处理阶段。每个阶段都是以键值对作为输入输出。 对程序员来说, 需要写两个函数:map 函数 和 reduce 函数。好友一个MaperReduce 作业。
  2. Java MapReduce:
    Mapper 函数:

public class MaxTemperatureMapper extends Mapper {

private static final int MISSING = 9999;@Override
protected void map(Object key, Object value, Context context) throws IOException, InterruptedException {String line = value.toString();String year = line.substring(15, 19);int airTemperature;if (line.charAt(87) == '+') {airTemperature = Integer.parseInt(line.substring(88, 92));}else {airTemperature = Integer.parseInt(line.substring(87, 92));}String quality = line.substring(92, 93);if (airTemperature != MISSING && quality.matches("[01459]")) {context.write(new Text(year), new IntWritable(airTemperature));};
}

}

Reduce 函数:

import java.io.IOException;public class MaxTemperatureReducer extends Reducer<Text, IntWritable, Text, IntWritable> {@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int maxValue = Integer.MIN_VALUE;for (IntWritable value : values) {maxValue = Math.max(maxValue, value.get());}context.write(key, new IntWritable(maxValue));}
}public class MaxTemperatureDemo {public static void main(String[] args) throws Exception {Job job = new Job();job.setJarByClass(MaxTemperatureDemo.class);job.setJobName("Max temperature");FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.setMapperClass(MaxTemperatureMapper.class);job.setReducerClass(MaxTemperatureReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);
}
}
  1. LongWritable — Long, Text – -String, IntWritable — Integer
  2. job 作业日志关键字: job_local26392882
  3. mapper 任务 task 日志关键字: attempt_local26392882_001_m_0000_0
  4. reduce 任务task 日志关键字: attempt_local26392882_001_r_0000_0

2.4 横向扩展

  1. 作业(job): 客户端需要执行的一个工作单元。包括输入数据,MapReduce 程序和配置信息。
  2. Hadoop 将作业分成若干个任务(task)。任务包括两类:map(任务),reduce(任务)。
  3. 任务运行在集群的节点上,由YARN 进行调度。

《Hadoop 权威指南 - 大数据的存储与分析》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. kali linux samba,Kali Linux 渗透测试:SMB、SMTP扫描工具(14)
  2. 行为翻译模型是人脑的核心
  3. 抛弃 Java 改用 Kotlin 的六个月后,我后悔了!
  4. latex表格名的引用问题
  5. AOP之proceedingjoinpoint和joinpoint区别(获取各对象备忘)、动态代理机制及获取原理代理对象、获取Mybatis Mapper接口原始对象...
  6. 图解Python 3.x多继承时方法解析顺序MRO
  7. (个人备忘)多人开发 no file directory.....的问题
  8. 比较重要的物料管理交易代码列表
  9. 原生App vs 移动Web App : 你如何选择
  10. mysql definer super_技术分享 | 改写 mysqldump 解决 DEFINER 问题
  11. dnf服务器的ini配置文件,dnf分辨率配置文件在哪 | 手游网游页游攻略大全
  12. 软件测试人员能力模型
  13. Lie to Me: Bypassing Modern Web Application Firewalls
  14. Intent.parseUri()详解
  15. 前端网络基础 - 跨域xhr/fetch
  16. pc端不同分辨率适配
  17. 鼠标中键(滚轮)和axMapControl之间的交互
  18. GDR-Net: Geometry-Guided Direct Regression Network for Monocular 6D Object Pose Estimati
  19. 2017杭州云栖大会,.xin重磅发布一键查询企业信用
  20. 什么是云服务器 云服务器的特点优势及劣势

热门文章

  1. 女子上班10天被辞退获赔1万,不料竟收到122斤硬币,法院做法亮了
  2. [附源码]Python计算机毕业设计餐厅订餐系统Django(程序+LW)
  3. BGP MPLS VPN(OPTION B)实验笔记
  4. Java,Swing 模拟在线考试系统(五:题目、图片处理+按钮功能+倒计时处理+提交查看成绩)
  5. 水果分选机设计(论文+CAD图纸+开题报告+任务书+文献综述+外文翻译) 水果果径大小分选机的设计
  6. Mac 命令行中操作剪切板
  7. 【SQL开发实战技巧】系列(三):SQL排序的那些事
  8. 深力科电子~LM317MBDTRKG 线性电压稳压器
  9. 基于STC11F02E 步进电机电路验证程序 (1)
  10. 《红楼梦》-- 曹雪芹