大数据测试之Hadoop读书笔记

发表于:2015-11-02 11:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:顾翔    来源:51Testing软件测试网原创

分享:
  9.网格计算
  通常是指通过现有的互联网,利用大量来自不同地域、资源异构的计算机空闲的CPU 和磁盘来进行分布式存储和计算。
  Hadoop 集群一般构建在通过高速网络连接的单一数据中心内,集群计算机都具有体系结构、平台一致的特点,而网格计算需要在互联网接入环境下使用,网络带宽等都没有保证。
  10. MapReduce
  Hadoop是一种分布式数据和计算的框架。它很擅长存储大量的半结构化的数据集。数据可以随机存放,所以一个磁盘的失败并不会带来数据丢失。Hadoop也非常擅长分布式计算--快速地跨多台机器处理大型数据集合。
  MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还可以用更传统的语言(C++,Java),一步步地来解决问题。这是两种不同的编程模型,MapReduce就是另外一种。
  MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。
  最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。main 函数将作业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和抽象类,从而为 Hadoop应用程序开发人员提供许多工具,可用于调试和性能度量等。
  MapReduce 本身就是用于并行处理大数据集的软件框架。MapReduce 的根源是函数性编程中的 map 和 reduce 函数。它由两个可能包含有许多实例(许多 Map 和 Reduce)的操作组成。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表
  一个代表客户机在单个主系统上启动的 MapReduce应用程序称为 JobTracker。类似于 NameNode,它是 Hadoop 集群中惟一负责控制 MapReduce应用程序的系统。在应用程序提交之后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)确定如何创建其他 TaskTracker 从属任务。MapReduce应用程序被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个惟一的从属任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker。图 3 显示一个示例集群中的工作分布。
  HDFS通信部分使用org.apache.hadoop.ipc,可以很快使用RPC.Server.start()构造一个节点,具体业务功能还需自己实现。针对HDFS的业务则为数据流的读写,NameNode/DataNode的通信等。
  MapReduce主要在org.apache.hadoop.mapred,实现提供的接口类,并完成节点通信(可以不是hadoop通信接口),就能进行MapReduce运算。
  11.子项目
  Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
  HDFS: Hadoop分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)
  MapReduce:并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API
  HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBase和Avro已经于2010年5月成为顶级 Apache 项目)
  Hive:数据仓库工具,由Facebook贡献。
  Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
  Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
  Pig: 大数据分析平台,为用户提供多种接口。
  Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。
  Sqoop:于在Hadoop与传统的数据库间进行数据的传递。
  12.信息安全
  通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全。
  1. 先下手为强!在规划部署阶段就确定数据的隐私保护策略,最好是在将数据放入到Hadoop之前就确定好保护策略。
  2. 确定哪些数据属于企业的敏感数据。根据公司的隐私保护政策,以及相关的行业法规和政府规章来综合确定。
  3. 及时发现敏感数据是否暴露在外,或者是否导入到Hadoop中。搜集信息并决定是否暴露出安全风险。
  4. 确定商业分析是否需要访问真实数据,或者确定是否可以使用这些敏感数据。然后,选择合适的加密技术。如果有任何疑问,对其进行加密隐藏处理,同时提供最安全的加密技术和灵活的应对策略,以适应未来需求的发展。
  5. 确保数据保护方案同时采用了隐藏和加密技术,尤其是如果我们需要将敏感数据在Hadoop中保持独立的话。
  6. 确保数据保护方案适用于所有的数据文件,以保存在数据汇总中实现数据分析的准确性。
  7. 确定是否需要为特定的数据集量身定制保护方案,并考虑将Hadoop的目录分成较小的更为安全的组。
  8. 确保选择的加密解决方案可与公司的访问控制技术互操作,允许不同用户可以有选择性地访问Hadoop集群中的数据。
  9. 确保需要加密的时候有合适的技术(比如Java、Pig等)可被部署并支持无缝解密和快速访问数据。
版权声明:本文出自51Testing软件测试网投稿文章。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号