先来聊聊大数据的几个特征:
数据来源广,数据格式多样,数据量大(至少也得是TB级别的),数据增长速度快。
数据来源广,该如何采集汇总呢?出现了 Sqoop、Cammel、DataX等工具。
数据量大,该如何存储呢?出现了GFS、HDFS、TFS等分布式文件存储系统。
数据增长迅速,就必须使得系统可以水平扩展。
数据存储之后,如何通过快速的运算得到一致格式的数据呢?出来了MapReduce这样的分布式计算框架,需要编写大量的额Java语言,所有出现了像Hive,Pig等将SQL转换成mapreduce的解析引擎。但是还有一个问题,就是普通MapReduce只能一批一批的处理,我们每当输入一条的时候就想想获得结果,怎么办呢?出现了Storm/JStrom这样的低时延的流式计算框架。但是如果你想同时支持批处理和流处理,按照上面的说法,你就得搭建两个集群,一个hadoop集群,一个Strom集群,所以出现了像Spark这样的一站式解决方案,既可以进行批处理,又能进行流处理(实际上是微批处理)。
而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。
为了提高工作效率,加快运速度,出现了一些辅助工具:
- Ozzie,azkaban:定时任务调度的工具。
- Hue,Zepplin:图形化任务执行管理,结果查看工具。
- Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
- Python语言:编写一些脚本时会用到。
- Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。
大数据工作的几个方向:
数据工程师;数据分析师;大数据科学家;
大数据必备技能:
- 大数据通用处理平台:Hadoop 、Spark
- 分布式数据存储:HDFS
- 资源调度:Yarn 、Mesos
- 数据分析、数据仓库:Hive、Pig、SparkSQL、Kylin
- 消息队列:Kafka、RabbitMQ
- 编程语言:Java、Python、Scale
- 日志收集:Flume
- 流式计算:Strom/JStrom、Spark Streaming
- Hadoop家族:Sqoop、Hase、Hue、Ooie、zookeeper
上面出现了很多专业术语,需要解释一下:
1.HDFS 全称 Hadoop Distributed Filesytem。
2.Yarn 全称 Yet Another Resource Negotiator
3.Mesos ,分布式资源管理框架
4.Kafka,分布式发布订阅消息系统
5.RabbitMQ: 解释上什么是消息队列,为什么使用消息队列
- Flume:官网,它是一种分布式、可靠的,用于有效的收集、聚合、移动大量日志文件。百科
- zookeeper,官网,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。
- Sqoop,官网,是hdfs、hive、hbase和RDBMS结构化数据库之间传输大量数据的工具。博客说明
9,Hue,通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。引用于这篇文章
网友评论