文档章节

大数据学习一 基础知识

dkpenl
 dkpenl
发布于 2017/08/24 22:02
字数 1666
阅读 18
收藏 1

大数据学习一   基础知识

前言

在学习大数据之前,先要了解他解决了什么问题,能给我们带来什么价值。一方面,以前IT行业发展没有那么快,系统的应用也不完善,数据库足够支撑业务系统。但是随着行业的发展,系统运行的时间越来越长,搜集到的数据也越来越多,传统的数据库已经不能支撑全量数据的存储工作;另一方面,数据越来越多,单机的计算已经成为瓶颈。因此,基于分布式的大数据系统崭露头角。那么大数据系统里面都有什么东西呢?可以参考下面的图

 

在存储上,hdfs的分布式存储可以任意水平扩展,可以解决数据存储的难题。在计算上,从最初的MapReduce,把任务水平拆分,多台机器并行计算,再汇总结果;到基于Spark的内存计算,改造Mapreduce每次数据落盘以及编程方式的痛点。

有了存储和计算框架,周边就衍生出了很多管理、缓存相关的技术,比如:

  • yarn解决多租户资源调度的难题,
  • flume解决数据传输的难题,
  • sqoop解决分布式存储数据与传统DB数据之间的转换,
  • oozie解决了大数据计算任务的调度,
  • kafka提供了发布订阅机制的消息队列,
  • zookeeper可以帮助用户完成主备的选举,
  • hive在hdfs的基础上提供了数仓的功能,
  • hbase则基于hdfs实现列式数据库....

 

上面都是hadoop生态的,由于hadoop中计算模型普遍是mapreduce,但是它的编程风格和计算机制让很多人使用不便。因此后来spark逐渐代替了mapr成为主流的计算框架。Spark也有它自己的生态,但是由于hadoop更多更早的被应用到企业,所以spark也可以无缝的集成hadoop生态中的产品。spark更多只是扮演一个计算的框架,在这个框架上,提供了基本的计算模块core,基于sql的计算引擎spark sql,对接实时数据的流式计算spark streaming,算法相关的mlib以及图计算相关的graphx。

这些框架都在这个大数据生态中扮演了自己重要的角色,他们协同工作就可以帮助我们解决很多难题。由于我也是接触不久,所以就按照自己学习和工作涉及的内容,在下面按照各个章节进行介绍,后续也会持续的更新。希望对所有对大数据感兴趣的

学习必备

在学习大数据的过程中,需要具备的能力或者知识,在这里简单的罗列一下:

  • 语言基础:需要会使用shell脚本、java和scala(这俩语言主要是用于日常代码和阅读源代码)
  • 工具:IDE如eclipse或者idea,虚拟机和secureCRT连接工具
  • 书籍:《Hadoop权威指南》《Hadoop YARN权威指南》《Spark快速大数据分析》《从Paxos到zookeeper分布式一致性原理与实践》《Hive编程指南》其他的书籍阅读后再推荐吧
  • 进阶:阅读官方文档(帮你了解它都能做什么)、源代码(帮你了解它是怎么做的)

hdfs

hdfs是大数据系统的基础,它提供了基本的存储功能,由于底层数据的分布式存储,上层任务也可以利用数据的本地性进行分布式计算。hdfs思想上很简单,就是namenode负责数据存储位置的记录,datanode负责数据的存储。使用者client会先访问namenode询问数据存在哪,然后去datanode存储;写流程也基本类似,会先在namenode上询问写到哪,然后把数据存储到对应的datanode上。所以namenode作为整个系统的灵魂,一旦它挂掉了,整个系统也就无法使用了。在运维中,针对namenode的高可用变得十分关键。

mapreduce

hive

hive基于hdfs构建了数据仓库系统,它以hdfs作为存储,依赖于数据库(嵌入式的数据库derby或者独立的数据mysql或oracle)存储表schema信息,并完成基于sql自动解析创建mapreduce任务(由于mapreduce计算效率比较差,目前官方推荐的是底层计算模型采用tez或者spark)。所以hive可以理解为:hdfs原始存储+DB Schema信息存储+SQL解析引擎+底层计算框架组成的数据仓库。

 

spark

spark是现在大数据中应用最多的计算模型,它与java8的stream编程有相同的风格。封装了很多的计算方法和模型,以延迟执行的方式,在真正需要执行的时候才进行运算。既可以有效的做计算过程的容错,也可以改善我们的编程模型。

 

oozie

oozie提供了大数据场景下各种任务的调度,比如shell脚本、spark任务、mapreduce任务、sqoop任务、hive查询以及普通的java程序等等。它的编译是生态圈里面最复杂的,由于以来的各个版本不同,需要指定特定的版本,因此没有成型的一键部署包。

 

sqoop

sqoop支持基于sql或者表名把数据库中的数据存储到分布式环境中,数据库支持oracle\mysql等等,分布式环境可以是hdfs,hive,hbase等等,数据的导入时双向的,比如你可以把oracle中的数据读取存储到hdfs,也可以把hdfs的数据导入到oracle.

 

hbase

yarn

在企业中,大数据的基础平台往往是多个用户共用的,那么如何管理资源的分配,就需要yarn来处理了。Yarn默认提供了三种资源分配的策略:

  • FIFO:先进先出,即按照用户提交任务的时间分配资源
  • Capacity:按照队列设置队列的大小
  • Fair Share:也是基于队列,只不过资源的粒度更小。

常见可以用于分配的资源可以是节点的数量,内存的大小,也可以是CPU核数。

 

最后

在对整体有了比较全面的了解后,我尽量专门针对安装部署、使用实践、原理解析进行介绍。

© 著作权归作者所有

共有 人打赏支持
dkpenl
粉丝 1
博文 11
码字总数 9873
作品 0
成都
程序员
什么是大数据?零基础如何学习大数据?(附学习路线)

其实简单的来说,大数据就是通过分析和挖掘全量的非抽样的数据辅助决策。 大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测。比如像通过搜索引擎搜索同样的内容,每...

董黎明
06/30
0
0
学习大数据必备的5大核心技术,你知道几个?需要掌握哪些知识?

大数据已经成为时代发展的趋势,很多人纷纷选择学习大数据,想要进入大数据行业。大数据技术体系庞大,包括的知识较多,系统的学习大数据可以让你全面掌握大数据技能。学习大数据需要掌握哪些...

董黎明
07/18
0
0
转型大数据(二):非程序员转型大数据职位推荐与SWOT分析

在一中,已经介绍过关于大数据岗位和要求,如果没有看到,你可以去一中看一下,我有了一个很详细的介绍,仅供参考, 学习的可以加群:784789432 (一)职位推荐(排名按照专业合适程度、市场...

柯西带你学编程
05/31
0
0
数学从来不及格,如何能凭借大数据开发获取15k薪资?

15k的薪资,不论是对于那些已经有两三年工作经验的就业者,还是对于那些刚刚离开象牙塔的大学生,都充满着巨大的诱惑。这个看似不切实际的薪资却在大数据开发大数据培训领域实实在在的存在着...

hainiuxy
07/19
0
0
如何制定一份可实施的2018年大数据学习计划?

没错,福利要放最前面 】大数据学习交流群 119599574每天晚上20:10都有一节【免费的】大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货...

大数据大咖
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue+element-ui操作删除(单行和批量删除)

页面展示: <template><!-- 表格内容 --><el-table :data="packData" border style="width: 100%" ref="multipleTable" @selection-change="handleSelectionChange"><el-tab......

琴妹
5分钟前
0
0
基于vue(element ui) + ssm + shiro 的权限框架

zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目,网上有句话说,语言框架...

DarrenHu_吴邪
12分钟前
0
1
数据库水平切分(MyCat分片)

范围分片 io.mycat.route.function.AutoPartitionByLong 自动范围分片 Function名称:rang-long(配置文件默认) 枚举分片 io.mycat.route.function.PartitionByFileMap 枚举分片 Funtion名称...

这很耳东先生
13分钟前
0
0
读《HeadFirst设计模式》笔记之外观模式

外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 举个栗子: 建了一个家庭影院,但是每次享受家庭影院时,你发现需要执行 将灯...

suyain
14分钟前
0
0
MongoDB分片配置

简单注解: mongos 路由进程, 应用程序接入mongos再查询到具体分片,监听端口默认27017 config server 路由表服务, 每一台都具有全部chunk的路由信息 shard为数据存储分片, 每一片都可以是...

LUIS1983
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部