介绍
big data 是什么
随着电脑、手机、网络的发展,各种各样的非结构化(unstructured data) 和半结构化(semi structured)的数据源源不断的产生。而且由于产生的速度非常快(以微博为例,每天发送的微博、产生的地理信息、浏览log都是可供分析的数据),过去的存储方式和数据调用方式已经不足以支持这么大量的数据(以PB计)。所以产生了4种主要的策略去解决这个问题:
- Distributed computing system (分布式计算系统)
- Massively parallel processing
- NoSQL
- Analytical Database
同时大数据具有5V特性:Volume(大量),Velocity(速度), Veracity(真实性 ),Variety(多样性),Value(价值)。
处理大数据的主要步骤包括
- Storage(存储)
- ingestion (…不会翻译)
- Query (提取)
- Process
- Analyze(分析)
- Report (报告)
什么是分布式系统
简单的说就是一个系统,这个系统建立在多台联网的计算机上, 并且这些计算机的沟通和协作仅通过传递消息(messages)。这些计算机同时运行,如果出现问题是相对独立不涉及其他计算机,并且不使用同一个global clock。
什么是Hadoop
Hadoop是一个为解决大量数据的分布式存储和大量并行任务的分布运行的软件框架,所以他是一个framework。
他的优点是 成本低、存储灵活、开源、容错好、能进行复杂的数据运算。
Hadoop的家族成员如下,左侧为实现的功能,右侧为该工具的名字:
Layer | Tools |
---|---|
分布式文件系统 | HDFS |
分布式编程 | MaprReduce |
Hive & Impala | |
Pig | |
Spark | |
NoSQL数据库 | HBase |
Data Ingest | Flume |
Sqoop | |
Storm | |
服务编程(Service Programming) | Zookeeper |
进程安排(Scheduling) | Oozie |
机器学习 | Mahout |
系统部署 | Ambari |
而Hadoop的核心是最常听说的HDFS(存储)、YARN(集群资源管理)和MapReduce(运行核心)。
MapReduce是Hadoop原有的运行框架,而现在Spark作为一个新兴的数据处理引擎,正在逐步取代MapReduce的地位。