hadoop随记(一)

现在是一个大数据的年代,每天全球已电子方式存储数据的数据总量非常大。下面是部分例子:

1,facebook存储这约100亿张照片,越1PB存储容量

2,The Internet Archive(互联网档案馆)存储这约2PB数据,并以每月至少20TB的速度增长

3,瑞士日内瓦附近的大型强子对撞机每年产生15PB数据

我们有了大量的数据,可以从中分析出我们有用的信息,如单个用户浏览网页内容的偏好,发现潜在用户等,还有很多用于科学技术上的用处。

那么数据怎么存放呢?这么大的数据量,首要解决的是数据读写速度,数据安全性,硬件故障等问题,要有高可用的方案。而hadoop就提供了这样的解决办法:hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,而MapReduce实现分析处理。

关系型数据库和MapReduce:

数据库系统只更新一部分记录,比mapreduce有优势。但是,如果更新大量数据时,效率就要比mapreduce低很多,因为需要使用“排序/合并”来重建数据库。mapreduce比较适合以批处理方式处理需要分析整个数据集的问题;而RDBMS适用于“点查询”和更新,数据集被索引后,数据库系统能够提供低延迟的数据检索和快速的少量数据更新。mapreduce适合一次写入,多次读取数据的应用,而关系型数据库更适合持续更新的数据集。

另一个区别在于它们所操作的数据集的结构化程度。结构化数据是具有既定格式的实体化数据,如xml文档等。半结构化数据比较松散,虽可能有格式,但也可以被忽略,所以他只能用作对数据结构的一般指导,如一张电子表格,其结构是由单元格组成的网格,但是每个单元格自身可保存任何形式的数据。非结构化数据没有什么特别的内部结构,例如纯文本等。mapreduce对于非结构化或半结构化数据非常有效,因为在处理数据时才对数据进行解释。而关系型数据都是规范的,以保证数据的完整性且不含冗余。规范化给mapreduce带来了问题,因为它使记录读取成为异地操作,不能进行高速的流式读写,而使用mapreduce的核心前提就是他可以进行高速的流式读写操作。

分布式计算:

1,mapreduc会尽量在计算节点上存储数据,以实现数据的本地快速访问,从而获得良好的性能,降低使用的网络带宽。

2,mapreduce让程序员无需考虑系统部分失效问题,因为自身系统实现难能够检测到失败的map或reduce任务,并让正常运行的机器重新执行这些失败的任务,即各个任务之间彼此独立。

hadoop的设计目标:

服务于那些只需数分钟或数小时即可完成的作业,并且运行于内部通过高速网络连接的单一数据中心内,并且该数据中心内的计算机需要由可靠的,定制的硬件构成。

常见的hadoop相关项目:

mapreduce:分布式数据处理模型和执行环境,运行于大型商用集群

hdfs:分布式文件系统,运行于大型商用集群

hive:一个分布式,按列存储的数据仓库。hive管理hdfs中存储的数据,并提供基于sql的查询语言用以查询数据。

hbase:一个分布式,按列存储数据库。hbase使用hdfs作为底层存储,同时支持mapreduce的批量式计算和点查询

zookeeper:一个分布式,可用性高的协调服务。zookeeper提供分布式锁之类的基本服务用于构建分布式应用

时间: 2024-10-12 21:48:53

hadoop随记(一)的相关文章

hadoop备记

Hadoop 的优势 Hadoop 是 一 个 能 够 让 用 户 轻 松 架 构 和 使 用 的 分 布 式 计 算 平 台. 用 户 可 以 轻 松 地 在Hadoop 上开发运行处理海量数据的应用程序.它主要有以下几个优点: 1.高可靠性.Hadoop 按位存储和处理数据的能力值得人们信赖. 2.高扩展性.Hadoop 是在可用的计算机集簇间分配数据完成计算任务的, 这些集簇可以方便地扩展到数以千计的节点中. 3.高效性.Hadoop 能够在节点之间动态地移动数据, 以保证各个节点的动态平

二十五、Hadoop学记笔记————Hive复习与深入

Hive主要为了简化MapReduce流程,使非编程人员也能进行数据的梳理,即直接使用sql语句代替MapReduce程序 Hive建表的时候元数据(表明,字段信息等)存于关系型数据库中,数据存于HDFS中. 此元数据与HDFS中的元数据需要区分清楚,HDFS中元数据(文件名,文件长度等)存于Namenode中,数据存于Datanode中. 本次使用的是hive1.2.2版本 下载完毕之后解压: 将default文件复制一份成site文件,然后打开site文件,清空其内容,然后配置如下参数: h

Hadoop技术内幕HDFS-笔记2

任何一个复杂的软件系统,为了提高其适应性和扩展性,一般都会有一个配置模块或者配置系统,作完成其扩展.定制的手段和方式. 1.1.  Windows的配置文件 (第一次知道这事啊): 采用的是ini后缀的文本文件,可通过动态链接库提供方法进行处理. 初始化文件或profile概要文件 1.2.  Java配置文件: Properties文件 Xml文件 工具:Apache Commons Configuration 用于对配置文件进行常用的操作. Hadoop configuration Hado

蓝的成长记——追逐DBA(14): 难忘的“云”端,起步的hadoop部署

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/44050117 [简介] 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以其它形式去掉,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖

hadoop开发使用备记

使用Hadoop已经有一段时间了,从开始的迷茫,到各种的尝试,到现在组合应用-.慢慢地涉及到数据处理的事情,已经离不开hadoop了.Hadoop在大数据领域的成功,更引发了它本身的加速发展.现在Hadoop家族产品,已经达到20个了之多. 有必要对自己的知识做一个整理了,把产品和技术都串起来.不仅能加深印象,更可以对以后的技术方向,技术选型做好基础准备. 一句话产品介绍: Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和

Hadoop技术内幕HDFS-笔记11之HDFS

Hdfs文件系统,提供了一套基于hadoop的抽象文件系统的API,支持以流的方式访问文件系统中的数据. 特性: 1.  支持超大文件 2.  检测和快速应对硬件故障(故障检测和自动恢复) 3.  流式数据访问,注重的是数据的吞吐量,而不是数据的响应速度 4.  简化的一致性模型,一次写入,多次读取. 不适合: 5.  低延迟数据访问,和用户的实时交互,由于hadoop对高数据吞吐量进行了优化,而牺牲了数据的延迟,对于低延迟访问,可以考虑hbase或cassandra 1.1.1.       

Hadoop技术内幕HDFS-笔记5之动态代理

1.1.  java动态代理 java.lang.reflect包下的Proxy(创建代理对象)和InvocationHandler(调用转发)两个类 代理对象代表目标对象(target)执行相应的活动 静态代理:代理对象实现目标对象一致的接口,实现代理接口和调用转发 (不推荐使用) 在调用前后的附加逻辑,体现了代理对象的价值 代码示例: 1. java动态代理接口 package proxy; public interface BookDAO { //增加图书的实现 public void a

Hadoop技术内幕HDFS-笔记6之RPC

1.1.  hadoop远程过程调用 1.  远程接口调用(必须实现VersionedProtocol接口) 里面有一个方法,IPC通信时会比较客户端和服务端接口的版本号.必须一致才可以 package rpc; import org.apache.hadoop.ipc.VersionedProtocol; public interface MyBizable extends VersionedProtocol { //必须具有一个版本号 public static final long VER

Hadoop技术内幕HDFS-笔记4之远程调用

1.      hadoop远程过程调用 RPC:XML-RPC,JSON-RPC,CORBA,RMI(Remote Method Invocation),Haoop IPC(进程间通信) RPC原理:允许本地程序(客户端)调用其他机器(服务器)上的过程,客户端使用参数将信息传送给调用方,通过返回值得到消息. RPC的server在运行时会阻塞在接收消息的调用上,当接到客户端的请求后,会解包以获取请求参数:结束后返回值通过主程序打包发送给客户端. 1.1.  java RMI 依赖于java序列