云计算读书笔记(五)

简介: Hadoop:Google云计算的开源实现 Hadoop是Apache开源组织的一个分布式计算机框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。

Hadoop:Google云计算的开源实现

Hadoop是Apache开源组织的一个分布式计算机框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。

Hadoop的核心是HDFS,MapReduce和HBase,它们分别对应Google的云计算GFS,MapReduce和Bigtable。

Hadoop主要由以下几个子项目组成:

1)Hadoop Common:原来的Hadoop Core,这是整个Hadoop项目的核心

2)Avro:Hadoop的RPC方案

3)Vhukwa:一个用来管理大型分布式系统的数据采集系统

4)HBase:支持结构化数据存储的分布式数据库,是Bigtable的开源实现

5)HDFS:提供高呑吐量的分布式文件系统,是GFS的开源实现

6)Hive:提供数据摘要和查询功能键的数据仓库

7)MapReduce:大型数据的分布式处理模型

8)Pig:是在MapReduce上构建的一种高级的数据流语言

9)ZooKeeper:用于解决分布式系统中的一致性问题,是Chubby的开源实现

除了开源以外,hadoop还有很多优点:

1)可扩展

2)经济

3)可靠

4)高效

分布式文件系统HDFS

设计前提和目标:

1)处理硬件错误并快速自动恢复

2)流式的数据访问,应用程序以流式读为主,做批量处理,更注重数据访问的高吞吐量

3)超大规模数据集,支持大文件存储,一个单一的HDFS实例能够支撑数以千万计的文件,并且能在一个集群里扩展到数百个节点

4)简单一致性模型,应用程序一般对文件实行一次性写,多次读的访问模式

5)移动计算比移动数据更简单

6)异构软硬件平台间的可移植性

体系结构:

HDFS是一个主从结构的体系,HDFS集群有一个NameNode和很多个DataNode组成的。

NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端联系NameNode以获取文件的元数据,而真正的文件I/O操作是直接和DataNode进行交互的。

HDFS的数据都是一次写入多次读取,典型的块大小是64MB

客户端从NameNode获得组成文件的数据块的位置列表,也就是知道数据块被存储在哪些DataNode上,然后客户端直接从DataNode上读取文件,NameNode不参与文件的传输

NameNode使用事件日志记录HDFS元数据的变化,使用映像文件存储文件系统的命名空间

保障可靠性措施:

1)冗余备份

2)副本存放

3)心跳检测,每个DataNode定期接受心跳包和块报告,收到心跳包说明该DataNode工作正常

4)安全模式,在系统启动时会进入一个安全模式,此时不会出现数据块的写操作

5)数据完整性检测,在HDFS文件创建时,计算每个数据块和校验和,并将校验和作为一个单独的隐藏文件保存在命名空间下。客户端获取文件时会做对应的校验检查,如果不同则客户端认为数据块有损坏,将从其它的DataNode获取数据块的副本

6)空间回收,当文件被删除时,会先被移到/trash目录里,只要还在这个目录里就可以很快恢复,目录的清空时间是可配置的

7)元数据磁盘失效,映像文件和事务日志是HDFS的核心数据结构

8)快照,快照支持某个时间的数据复制,当HDFS数据损坏时,可以回滚到过去一个已知正确的时间点。

提升性能的措施:

1)副本选择

2)负载均衡

3)客户端缓存

4)流水线复制

访问接口:

可以通过Java API,也可以使用C语言封装的API

1)org.apache.hadoop.conf:定义了系统参数的配置文件处理API

2)org.apache.hadoop.dfs:Hadoop分布式文件系统(HDFS)模块的实现

3)org.apache.hadoop.fs:定义了抽象的文件系统API

4)org.apache.hadoop.io:定义了通用的I/O API,用于针对网络,数据库,文件等数据对象做读/写操作

5)org.apache.hadoop.ipc:用于网络服务端和客户端的工具,封装了网络异步I/O的基础模块

6)org.apache.hadoop.mapred:Hadoop分布式计算系统(MapReduce)模块的实现

7)org.apache.hadoop.metrics:定义了用于性能统计信息的API,主要用于mapred和dfs模块

8)org.apache.hadoop.record:定义了针对记录的I/O API类及一个记录描述语言的翻译器

9)org.apache.hadoop.tools:定义了一些通用的工具

10)org.apache.hadoop.util:定义了一些公用的API

分布式数据处理MapReduce

MapReduce是一种分布式的计算机模型,也是Hadoop的核心

逻辑模型:

将运行在大规模集群上的并行计算过程抽象为两个函数:Map和Reduce,也就是映射和化简

简单说MapReduce就是任务的分解与结果的汇总,Map把任务分解为多个任务,Reduce把分解后的结果汇总起来,得到最终结果

实现机制:

1,分布式并行计算,MapReduce框架由JobTracker和TaskTracker这两类服务调度的。JobTracker是主控服务,只有一个,负责调度和管理TaskTracker

2,本地计算

3,任务粒度,有利于数据的本地性,一个小数据集启动一个Map服务,M个Map任务可以在N台计算机上并行运行,用户可以指定Reduce任务的数量

4,Combine

5,分区,经过连接后可以把产生的中间结果按key的范围划分为R份

6,读取中间结果

7,任务管道

分布式数据化数据表HBase

HBase数据库是基于hadoop的项目,是针对Google的Bigtable的开源实现,它与Google的Bigtable相似

逻辑模型:

用户在表格里存储一系列的数据行,每行包含一个可排序的关键字,一个可选的时间戳及一些可能有数据的列

Hadoop的安装

可以使用虚拟机进行模拟,如果机器上没有安装SSH,安装SSH

配置安装JDK,详细步骤网上很多不一一操作了

到apache的hadoop网站上下载hadoop-0.20.2.tar.gz

使用ftp传到相应的服务器上,如果是虚拟机可以到共享文件夹下选择

复制到linux下的usr目录

tar -zxvf hadoop-0.20.2.tar.gz

解压后使用vi找到conf/hadoop-env.sh文件

打开

# The java implementation to use.  Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME=/opt/jdk1.6.0_27

# Extra Java CLASSPATH elements.  Optional.
# export HADOOP_CLASSPATH=

安装步骤:

hadoop有三种运行模式:单机模式,伪分布式模式和完全分布式模式。

在调试阶段使用单机模式

查看并且运行示例

bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output

cat output/*

查看到的结果如下:

[root@LinuxServer hadoop-0.20.2]# cat output/*
hadoop  1
hello   2
world   1

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
存储 弹性计算 架构师
笔记:云计算的应用
云计算的应用及厂商
52 0
|
3月前
|
存储 分布式计算 安全
笔记:云计算原理及特点
云计算原理及特点
275 0
|
云计算
云计算的发展史
云计算的发展史自制脑图
115 0
云计算的发展史
|
存储 搜索推荐 定位技术
学习云计算的认识与感悟
云计算现在与我们的生活息息相关,了解云计算的原理将会帮助我们更好地利用云计算。
学习云计算的认识与感悟
|
KVM 云计算 虚拟化
云计算发展史
起源:数字化转型风潮----虚拟机技术的出现---个人开发者福音(云主机)--未来~
云计算发展史
|
存储 云计算
快速读懂云计算,云计算到底是什么?
在这个时代,人人谈“云”论“大数据”,作为一个IT小勤劳,在和同行聊天说地的时候,不谈及这方面的内容,有人可能会觉得你落伍了,跟不上这个时代了。 什么是云计算? 既然云计算是一个这么火热的概念,那么云计算到底是什么?纵观整个计算机与互联网的发展史,任何一项新技术的能得以快速发展,那么这一项新技术必将能改变人们的生活方式,或是能够很大程序的影响人们的生活。
1668 0
|
存储 数据中心 云计算
云计算基础知识分享
目前看来,云主要分类有公有云、私有云、混合云、移动云和行业云。随着云计算的不断发展,可能会产生更多种类的云。
2608 0
|
存储 云安全 安全