大数据基础

一, 初始数据

1ed98432d1084d5f9f952d3d31ebcaa9.png

 数据类型:文本,图片,音频,视频

数据组织形式:文件,数据库

数据的价值:不会因为不断被使用而削减,反而会因为不断重组而产生更大的价值

6bc2d37731214a34b9f17c32e0dc57da.png

 fc39f996bc0a4dc2b4e71079ee7cdc6d.png

 二、大数据时代

三次信息化浪潮:

第一次第二次第三次
1980年前后1995年2010年
个人计算机互联网物联网、云计算和大数据
 信息处理      信息传输信息爆炸

03d427f23f09411483cf52ee8d9a1c5b.png

 运营式系统阶段:数据库的出现,数据产生方式是被动的;

 用户原创内容阶段:web2.0标志是 用户原创内容,数据产生方式是主动的;

 感知式系统阶段(最根本):大数据的产生,数据产生方式是自动的;

493c7e4276934528a6fc120d068aeda0.png

 aa4813af4aab476b8c9baf68d362d09c.png

 三、大数据概念

大量化,快速化,多样化,价值

663538dcff844a5fac6e0751084946bd.png

 f516b045438c44c194a4754865406b04.png

 三、Hadoop

1.简介

1)Hadoop为用户提供了系统底层细节透明的分布式基础架构

2)Java开发;可以部署在廉价的计算机集群中;支持多种编程语言;开源

2.发展历史

*Google提出了三个处理大数据的革命性技术手段,分别是:

        MapReduce:Google的分布式并行计算框架

        BigTable:一个大型的分布式数据库

        GFS:Google的分布式文件系统

Nutch的创始人Doug Cutting受到启发,用了若干年时间实现了DFS和MapReduce机制,使Nutch性能飙升。

8fdeb846fe8b47f79b68af3c3e40e47c.png

b8fac75fe4d94c05874fc3235b3682c8.png

2.特性

高可靠性(采用冗余数据存贮方式,即使一个副本发生故障,其他副本也可以保证对外工作的正常进行);高效性;高可扩展性(可以很容易将集群扩展到数千个节点的规模);高容错性;成本低;运行在Linux系统;支持多种编程语言

 

 7dbf3f95437d4fe18ba2f79579b86977.png

 6c8936e4424040a993bd1a9b41c3e312.png

 Hadoop组件:HDFS;MapReduce;YARN;Hive;HBase;Pig;Zookeeper;Storm;Flume

 3.安装方式:

单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件

分布式模式:使用多个节点构成集群环境来运行Hadoop

e4f53229531446d6988ef4b5def401cc.png

bef4c1d11aaf4894ad7e2beb473451fc.png

 89da36c511c048b2bccccf5e4303a858.png

 四、HDFS

分布式文件系统在物理结构上是由计算机集群中的多个节点构成的

设计目标:

        兼容廉价的硬件设备

        流数据读写:批量数据处理

        大数据集:PB级别

        简单的文件模型: 一次写入,多次读取

        强大的跨平台兼容性:基于java

应用局限性:

        不适合低延迟数据访问:适合大规模数据批量处理

        无法高效存储大量小文件:搜索效率低

         不支持多用户写入任意修改文件
 

 7da19bd42e714510b514b5e9ba5a3748.png

 6e33c2e7ceb64fe58b1aa3745477f43d.png

 1.块:*1.0默认64M

*好处:支持大规模文件存储;简化系统设计;适合数据备份

*块太小的问题:无法有效分摊磁盘的读写开销

*块太大的问题:通常mapreduce的map一次只能处理一个块中的数据,如果块太大,启动的任务太少,会降低作业并行处理速度。

 

*名称节点*数据节点
存储元数据存储文件内容
元数据保存在内存中文件内容保存在磁盘上
名称节点的两个核心数据结构:FsImage;EditLog(记录对数据进行的诸如创建、删除、重命名等操作)。
 
名称节点在启动过程中处于“安全模式”,只能对外提供读操作,无法提供写操作。
 
d15d9837edd9427494073fab1f6dc6ac.png
 
312613f80538474095822830ad0768b1.png

 f797f652018d4dc9a32b5b6657e33291.png

 第二名称节点是“冷备份”

数据节点:1.数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,向名称节点定期发送自己所存储的块的列表。2.每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中.

1ca9547c85544292a67e2102c9b98f20.png

 ceaeb730ed654e39be413aedc59ff345.png

 d8681641c56b44ca8c4be219bd5c113b.png

 2.冗余数据保存(一般冗余因子默认是3

多副本方式具有以下几个优点:

    (1)加快数据传输速度

    (2)容易检查数据错误

    (3)保证数据可靠性

HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态,而不是异常

名称节点出错;数据节点出错(每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状态);数据出错

cb4b9718b7b748ee8b780b5a0b9a7a26.png

 4703dae5c9484aa48cc2131332fc4e26.png

 7ec80640ffad4d80a6430ec7e9c51408.png

 fb0fece2c64342ec975557cb423e322c.png

 d7063ca31ac34f978eb781485449121d.png

 

五、HBase概述

 BigTableHBase
文件存储系统GFSHDFS
海量数据处理Google,MapReduceMapReduce
协同管理服务ChubbyZookeeper

 

*NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称。BigTable和HBase属于列族数据库

 

75dbaa7b4e7542199cecf8cf002e12ab.png

 

b528ce43315543e09c51e19abd6b91ea.png

4d8b3fcb45b74730bf037c91f83824a3.png

 *HBase对数据的定位 :四维坐标:行键、列族、列、时间戳

列式存储:

db44edfe96e34ed8af94140e1a845f8d.png

 1949f08e603646c9a15c392dd338e0f7.png

 1d81fb9a13fe4a7eb8365c4eadc403dc.png

 4be1e13401cb4765930dd413ef8c12c5.png

 客户端并不依赖于Master去获得位置信息

 

77566326149840f6abd414f20c596344.png

 

客户端访问数据时需要“三级寻址”,会不会降低数据读写效率?

        为了加速寻址,客户端把寻址信息缓存下来,即把用户数据的region信息缓存起来,下次再访问时就不必经过三级寻址的步骤,可以实现更快的访问。

fb39caeb16044b1286ad20120657bd10.png

 2db2d9234ec34c89b95ff9e81dc7c13d.png

 Zookeeper是一个很好的集群管理工具

HBase采用HLog保证系统恢复

bd9f80c944e14df59ee846922dee6bbc.png

 25733f6724bf4b4aa80bdb788dd1edeb.png

 行键是按照字典序存储

4dbfbeecc0a1456bbf3a08570b94cdce.png

5c3b410107ea4dea8b96edac5499a785.png

f9630e978e97452285ad8b586cac6e79.png

 六、MapReduce

适用场景:批处理、非实时、数据密集型

f05f7ddd786a478d96c834d9e7c3a2ec.png

 MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker

Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定要用Java来写

6c39fada2f04445ca4f155f9d7a638b3.png

 84203814cff64b2d80d7473fa26a81e2.png

 100fafee6957477683c7a3396f1fb9a1.png

 4a487d97eeab4b40bb9194113a95e783.png

 776669ad79f44195a219ebbe15a9e941.png

 40a0e0597c9d4764a78d71eb37ba7e3b.png

 8d916f7968ea4fb28a430fc2230a626a.png

 HDFS 以固定大小的block为基本单位存储数据,而对于MapReduce而言,其处理单位是split(分片)。

*大多数情况下,理想的分片大小是一个HDFS块。

 

排序是默认的操作

JobTracker会一直监测Map任务的执行,并通知Reduce任务来领取数据

*合并(Combine)和归并(Merge)的区别:两个键值对<“a”,1>和<“a”,1>,如果合并,会得到<“a”,2>;如果归并,会得到<“a”,<1,1>>

9cef568a6ed8485e97d28048495ad544.png

 所有的数据交换都是通过MapReduce框架自身去实现的

e50e059765ca483a822e942069c2c867.png

 e653feb793b14f17bd53b2bb034411f8.png

 fbd3d3993921415088c7a532c37e81d4.png

 ed2c7fe6fe404998af9bc7193f310e85.png

 

七、Spark 

三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)。

特点:运行速度快,运行模式多样,容易使用,通用性

Spark支持scala、Java、PythonR作为编程语言

dfdf0e75bb0d4a5597d84553a151bff3.png

 51ac578125274df58f409a365b5fdd70.png

 ded4b466050d47cc90e2a0dd4c537d14.png

 0edf9aebd3334bdf8e479e1ed12074c9.png

 a5e647d963804f23a843621c4ee8df5a.png

 df1f910f74ee4869a3777b6708f082c9.png

 cc57c198a7584084ad72252b19d15b2e.png

 3f8ab2de56a84cfab40dd35439d6b939.png

 0802de7d34da44d7859e07ab0bfddc2d.png

 Spark采用RDD以后能够实现高效计算的原因:高效的容错性;中间结果持久化到内存;存放的数据可以是Java对象。

777347fc58a64c4094a4de7e82eb6958.png

 8fa717df00664d61a76b1735aa73826d.png

 dcad00ed773d4ceea9cffdcf463b3250.png

 14b44c3433e14f089108078f12c3df91.png

 d44d8c592dba46dbbf67146a0629ca78.png

adbecd5007cf45e0bade27c0d5156ad3.png

 

 

八、大数据影响,应用

46fcbf7e4006431a860fc4c465d8a2a4.png

 c35a9aa938a3493088aa9da1cf69b063.png

 0344e8d5479e4accb6b8b0a9c72f5624.png

 -c93ff2a325124a8d9d22a4637adfe8ed.png

 5d49b8127d5343b584da7eca913fc73d.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值