<一>数据收集
外部数据收集
Apache Nutch主要组件有Crawler,Indexer以及Searcher.爬虫,索引以及查询.利用Lucene技术进行索引,
Heritrix更专注于网络信息的下载
Solr:Solr是一个基于Lucene的Java搜索引擎服务器
内部收集收集
数据源:Web日志是由Web服务器产生,生产环境的服务器可能是Apache Nginx Tomcat IIS等
推送模式:实时性高,系统配置的容量需要超过峰值
拉取模式:主动权在系统,可以缓冲高峰数据
<1>Apache Flume是一个分布式 可靠以及高可用性的海量数据收集系统.采用推送以及拉取这两种采集模式.是cloudera开源的日志系统
<2>Logstash是一款轻量级的日志搜集处理框架,
<3>Scribe是Facebook开源的实时分布式数据收集系统.采用推送模式.
<4>Apache Chukwa 是Apache/Yahoo 监控
<二>数据存储
持久化存储:将数据永久的记录在磁盘上
应用级的分布式文件存储服务:HDFS GFS TFS HayStack
数据库存储系统:
HBase列式存储
MongoDB文档型存储
Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook
非持久化存储: 采用Hash的Key-Value存储,适合需要用到缓存Cache的场景
分布式缓存系统:Redis:远程字典服务器Remote Dictionary Server,支持两种持久化方式,RDB镜像以及AOF日志.
Berkeley:
Memcached:分布式内存对象缓存系统
开源分布式内存文件系统:Alluxio
<三>数据分析与数据挖掘
数据分析方式
离线处理
离线批量处理:
MapReduce
Apache Spark
Apache Flink
类SQL查询,查询引擎:
Hive
Impala Impala是Dremel在Hadoop上的复制品,它由Cloudera开发
Pig
Spark SQL
Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区
搜索引擎:
查找数据
全批量+消息机制:消息传递方式:点对点以及发布订阅模式
消息服务机制:
JMS<Java Message Service>:ActiveMQ
Kafka消息机制 LinkedIn的
在线处理
Apache Strom: Twitter公司开源的
Apache Spark Streaming:微批量
数据挖掘与机器学习
Apache Spark MLi
Apache Mahout
TensorFlow
DMTK
Torch
<四>分布式协同与管理
集群资源管理
Apache Spark自带的集群管理Standlone 并发的跑任务,就需要一个资源调度系统
YARN :YARN同时支持内存和CPU两种资源的调度,将Spark运行在Hadoop上,本质上是将Spark运行在Hadoop YARN上,因为Spark自身只提供了作业管理功能,资源调度要依托于第三方系统,比如YARN或Mesos等
Mesos
协同器独立出来设计成通用的,可伸缩的协同系统
Chubby:Google提出中心化的组件Chubby—粗粒度锁服务,通过锁原语为其他系统实现更高级的服务
Apache Zookeeper:Yahoo!借鉴Chubby的设计思想开发了Zookeeper,并将其开源.提供生态系统的协同实现,paxos算法是Zookeeper的核心
FourInOne:消息中枢模式
管理与配置
Apache Ambari是一个基于web的工具,用于配置、管理和监视Apache Hadoop集群
Cloudera Hue: 是一个基于WEB的监控和管理系统
<五>信息检索与数据可视化
信息检索
Apache Lucene是一个全文检索引擎程序库.
Elasticsearch
Solr
数据可视化
R语言
D3.js
OpenRefine
Tableau Public
Datameer
<六>相关技术
Apache Sqoop:提供了关系型数据库和HDFS之间的相互转换。