大数据主要所学技术简介:
目录
一: 大数据技术生态体系
二: 各个技术栈简介
Hadoop
hadoop是一个用java实现的一个开源框架,是一种用于存储和分析大数据的软件平台,专为离线数据而设计的,不适用于提供实时计算。对海量数据进行分布式计算。Hadoop=HDFS(文件系统,数据存储相关技术)+ Mapreduce(数据处理)+ Yarn (运算资源调度系统)
zookeeper
它是针对大型分布式系统的可靠协调系统。提供功能:【本质是替客户端保管数据,为客户提供数据的监听服务】
1. 统一命名服务: 在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:一个域名下可能有多个服务器,服务器不同,但域名一样。
2. 统一配置管理: 把集群统一配置文件交给zookeeper
3. 统一集群管理: 分布式环境中,实时掌握集群每个节点状态,zookeeper可以实现监控节点状态的变化。
4. 服务器动态上下线: 客户端能实时洞察到服务器上下线变化。
5. 软负载均衡: 在zookeeper中记录服务器访问数,让访问数最小的服务器去处理最新的客户端请求
Hive
hive是由facebook开源用于解决海量结构化日志的数据统计,是一个基于hadoop的数据库工具,可以将结构化数据映射成一张数据表,并提供类SQL的查询功能,本质是将SQL语句转化为MapReduce程序。用hive的目的就是避免去写MapReduce,减少开发人员学习成本。
Flume
Flume是hadoop生态圈中的一个组件,主要应用于实时数据的流处理,是一个高可用,高可靠,分布式的海量日志采集,聚合和传输的系统。支持多路径流量,多管道接入流量,多管道接出流量。
含有三个组件:
- source 【收集】
- channel 【聚集,一个通道,类似数据缓冲池】
- sink 【输出】
基础架构:
Kafka
分布式的基于发布/订阅模式的消息队列。主要用于大数据实时处理领域,主要功能可概括为三句话:
生产者发生消息给kafka服务器
消费者从kafka服务器读取消息
kafka服务器依托zookeeper集群进行服务的协调管理
Hbase
Hbase是构建在HDFS之上的分布式,面向列的存储系统,在需要读写时,随机访问超大规模数据库集时,可使用Hbase。Hbase利用HDFS作为其文件存储系统,利用MapReduce来处理hbase中的海量数据
Sqoop
sqoop是一个关系型数据库于hadoop间的数据同步的工具。
sqoop import : 将数据从关系型数据库导入hadoop中
sqoop Export: 将数据从hadoop中导入到关系型数据库中
Spark
spark是基于内存的开源分布式内存计算框架,是快速通用的大规模数据处理引擎,基于内存运算,具有优秀的作业调度策略。
spqrk优势:
- 速度快【基于内存数据处理】
- 易用性【支持java,scala,python等语言】
- 通用性【一栈式解决方案】
Storm
Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。