在学习大数据之前,我们需要先了解什么是大数据
大数据(Big Data)又称为巨量资料,指需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。“大数据”概念最早由维克托·迈尔·舍恩伯格和肯尼斯·库克耶在编写《大数据时代》中提出,指不用随机分析法(抽样调查)的捷径,而是采用所有数据进行分析处理。大数据是一个数据的集合,能够反映一段时间内某一样本内的活动趋势,是现代社会一种极具价值的信息资产。大数据现在广泛应用于商业领域,借以实现精准营销,预测趋势,实现商业利益的最优与最大。
Hadoop作为一个开发和运行处理大规模数据的软件平台,实现了在大量的廉价计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心的设计是HDFS和MapReduce,HDFS是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,适用于那些有着超大数据集的应用程序;MapReduce是一套可以从海量的数据中提取数据最后返回结果集的编程模型。在生产实践应用中,Hadoop非常适合应用于大数据存储和大数据的分析应用,适合服务于几千台到几万台大的服务器的集群运行,支持PB级别的存储容量。
大数据及四个特点:
1.数据容量大:它能够处理PB级以上的数据
2.数据类型多:它可以存储多种格式的数据
3.数据存取快:在海量数据处理面前必然要拥有更加快速的存取能力
4.数据应用价值高:他可以将大量无用数据处理成有用数据
那么在如此大量的数据面前我们应该如何存储并快速存取数据呢?
我将大数据目前流行组件大概分为两大类:
1.存储组件:Hadoop(分布式存储和计算平台)、HDFS(分布式文件系统)、Nosql(分布式数据库)
2.分析组件(及计算组件):MapReduce(分布式计算框架)、MPP(大规模并行处理系统)、Spark(轻量级的分布式内存计算系统)、S4和Storm(流计算框架)
一.Hadoop
Hadoop是一个分布式文件系统和并行执行环境,他可以让用户更加便捷的处理海量的数据。Hadoop的组件主要有:1.分布式文件系统HDFS、2.并行计算框架MapReduce、3.数据仓库工具Hive。这些是我们需要重点学习的也是运用最广泛的
Hadoop平台搭建:https://blog.csdn.net/qq_39562468/article/details/83381571
Hadoop平台基础命令https://blog.csdn.net/qq_39562468/article/details/83903463
在Hadoop平台启动完成后我们可以看见几个进程分别是NameNode、SecondaryNameNode、DataNode、NodeManager、ResourceManager。那么这些进程分别是干嘛的呢
1、NameNode
维护文件系统树及整棵树内所有的文件和目录。这些信息永久保存在本地磁盘的两个文件中:命名空间镜像文件、编辑日志文件。
记录每个文件中各个块所在的数据节点信息,这些信息在内存中保存,每次启动系统时重建这些信息。
负责响应客户端的数据块位置请求。也就是客户端想存数据,应该往哪些节点的哪些块存;客户端想取数据,应该到哪些节点取。
接受记录在数据存取过程中,datanode节点报告过来的故障、损坏信息。
2. SecondaryNameNode
实现namenode容错的一种机制。定期合并编辑日志与命名空间镜像,当namenode挂掉时,可通过一定步骤进行上顶。
3.DataNode
根据需要存取并检索数据块并定期向namenode发送其存储的数据块列表。
4.ResourceManager
负责Job的调度:将一个任务与一个NodeManager相匹配。也就是将一个MapReduce之类的任务分配给一个从节点的NodeManager来执行。
5.NodeManager
运行ResourceManager分配的任务,同时将任务进度向application master报告。
讲完了hadoop那么我们讲讲hbase
江湖传说永流传:谷歌技术有"三宝",GFS、MapReduce和大表(BigTable)!
那么我们的hbase是什么呢,他是谷歌大表的一个“山寨版本”
HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。
人们可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问。