当前位置:文档之家› 大数据讲座

大数据讲座




HDFS的java访问接口—— FileSystem

写文件 create 读取文件 open 删除文件delete

创建目录 mkdirs 删除文件或目录 delete


列出目录的内容 listStatus
显示文件系统的目录和文件的元数据信息 getFileStatus
以上这些文件是保存在linux的文件系统中。
Datanode
文件块(block):最基本的存储单位。对于文件内容而 言,一个文件的长度大小是size,那么从文件的0偏移开 始,按照固定的大小,顺序对文件进行划分并编号,划分 好的每一个块称一个Block。HDFS默认Block大小是64MB, 以一个256MB文件,共有256/64=4个Block. 不同于普通文件系统的是,HDFS中,如果一个文件小于一 个数据块的大小,并不占用整个数据块存储空间 Replication。多复本。默认是三个。
大数据
网络工程 金航
大数据学习路线
常用技术
Spark
性能超Hadoop百倍,算法实现仅有其1/10或1/100 Spark是一个高效的分布式计算系统,相比Hadoop,它 在性能上比Hadoop要高100倍。Spark提供比Hadoop更 上层的API,同样的算法在Spark中实现往往只有Hadoop 的1/10或者1/100的长度。Shark类似“SQL on Spark”, 是一个在Spark上数据仓库的实现,在兼容Hive的情况下, 性能最高可以达到Hive的一百倍。

HDFS的Shell

#hadoop fs -ls / 查看HDFS根目录 #hadoop fs -mkdir /test 在根目录创建一个目录test #hadoop fs -mkdir /test1 在根目录创建一个目录test1 #echo -e 'hadoop second lesson' >test.txt #hadoop fs -put ./test.txt /test

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供 程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的 调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡 眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得 进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最 后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继 续进行。
flume是分布式的日志收集系统,把收集来的数据传送到目的地去。 2.flume里面有个核心概念,叫做agent。agent是一个java进程,运行在 日志收集节点。 3.agent里面包含3个核心组件:source、channel、sink。


3.1 source组件是专用于收集日志的,可以处理各种类型各种格式的日志 数据,包括avro、thrift、exec、jms、spooling directory、netcat、 sequence generator、syslog、http、legacy、自定义。

Tachyon Tachyon
吞吐量超过HDFS 300多倍 来自伯克利的分布式文件系统

AMPLab大神
Spark的核心成员Reynold Xin
UC Berkeley计算机系AMPLab的博士生, 专注于数据库以及计算机系统的研究。 AMPLab正在开发一个大数据的处理平台叫 做Berkeley Data Analytics Stack (BDAS) ,其中包括了Spark, Shark等项目。我是 Shark的作者,也是Spark的核心成员。
Hadoop核心项目
HDFS: Hadoop Distributed File System 分布式文件系统 MapReduce:并行计算框架

HDFS的架构

主从结构 主节点,只有一个: namenode 从节点,有很多个: datanodes

namenode负责:


接收用户操作请求


或#hadoop fs -copyFromLocal ./test.txt /test
#cd .. #hadoop fs -get /test/test.txt . 或#hadoop fs -getToLocal /test/test.txt . #hadoop fs -cp /test/test.txt /test1 #hadoop fs -rm /test1/test.txt #hadoop fs -mv /test/test.txt /test1 #hadoop fs -rmr /test1



在2.5亿个整数中找出不重复的整数,注,内存2.5GB。
有40亿个邮件地址,没排过序的,然后再给一个邮件,如 何快速判断这个数是否在那40亿个数当中? 海量数据分布在100台电脑中,想个办法高效统计出这批 数据的TOP10。

集群

计算机集群是一种计算机系统, 它通过一组松散集成的计 算机软件和/或硬件连接起来高度紧密地协作完成计算工作。 集群系统中的单个计算机通常称为节点,通常通过局域网 连接。
JobTracker

负责接收用户提交的作业,负责启动、跟踪任务执行。 JobSubmissionProtocol是JobClient与JobTracker通信 的接口。 InterTrackerProtocol是TaskTracker与JobTracker通信 的接口。

TaskTracker

负责执行任务。
MapReduce常见算法
单词计数 数据去重 排序 Top K 选择 投影 分组



多表连接
单表关联
面试题

给定a、b两个文件,各存放50亿个url,每个url各占64字 节,内存限制是4G,让你找出a、b文件共同的url? 现有1亿个整数均匀分布,求前1K个最大的数。内存限制 为100MB。



集群技术的特点:
通过多台计算机完成同一个工作。达到更高的效率 两机或多机内容、工作过程等完全一样。如果一台死机, 另一台可以起作用。
Sqoop
Pig
基于hadoop的一个数据处理的框架。 MapReduce是 使用java进行开发的, Pig有一套自己的数据处理语言,Pig的数据处理过程要转 化为MR来运行。



Mapreduce原理

◆执行步骤: 1. map任务处理 1.1 读取输入文件内容,解析成key、value对。对输入文件的每一行,解析成key、value对。 每一个键值对调用一次map函数。 1.2 写自己的逻辑,对输入的key、value处理,转换成新的key、value输出。 1.3 对输出的key、value进行分区。 1.4 对不同分区的数据,按照key进行排序、分组。相同key的value放到一个集合中。 1.5 (可选)分组后的数据进行归约。 2.reduce任务处理 2.1 对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。 2.2 对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、 value处理,转换成新的key、value输出。 2.3 把reduce的输出保存到文件中。 例子:实现WordCountApp
维护文件系统的目录结构 管理文件与block之间关系,block与datanode之间关系

datanode负责: 存储文件 文件被分成block存储在磁盘上 为保证数据安全,文件会有多个副本
MapReduce的架构
主从结构 主节点,只有一个: JobTracker 从节点,有很多个: TaskTrackers JobTracker负责: 接收客户提交的计算任务 把计算任务分给TaskTrackers执行 监控TaskTracker的执行情况



TaskTrackers负责:
执行JobTracker分配的计算任务
Hadoop的特点
扩容能力(Scalable):能可靠地(reliably)存储和处 理千兆字节(PB)数据。 成本低(Economical):可以通过普通机器组成的服务 器群来分发以及处理数据。这些服务器群总计可达数千个 节点。 高效率(Efficient):通过分发数据,hadoop可以在数 据所在的节点上并行地(parallel)处理它们,这使得处 理非常的快速。
Namenode

是整个文件系统的管理节点。它维护着整个文件系统的文 件目录树,文件/目录的元信息和每个文件对应的数据块列 表。接收用户的操作请求。 (见源码)



文件包括:
fsimage:元数据镜像文件。存储某一时段NameNode内 存元数据信息。 edits:操作日志文件。


fstime:保存最近一次checkpoint的时间
hadoop的整个体系结构就是构建在RPC之上的(见 org.apache.hadoop.ipc)

MapReduce概述
◆MapReduce是一种分布式计算模型,由Google提出, 主要用于搜索领域,解决海量数据的计算问题. ◆MR由两个阶段组成:Map和Reduce,用户只需要实 现map()和reduce()两个函数,即可实现分布式计算,非 常简单。 ◆这两个函数的形参是key、value对,表示函数的输入信 息。
Remote Procedure Call

RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上 请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传 输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI 网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网 络分布式多程序在内的应用程序更加容易。
相关主题