1. 海量数据:要进行大规模数据的存储、计算与分析,需要大数据框架和处理思想。
2. 分布式计算:采用集群方式进行大规模并行计算,提高性能与计算能力。
3. 流式计算:对数据流进行近实时处理与计算,用于实时监控和决策。
4. 在线分析:可以快速对大规模数据进行交互式查询与多维分析。
5. 数据挖掘:从海量数据中提取有价值的信息,进行业务决策和预测。
1. 收集数据:采集各种数据源的数据,构建庞大的数据集。只有收集更多的数据,才有可能发现更多的价值。
2. 存储数据:使用可靠的分布式文件系统存储海量数据,如HDFS。并使用NoSQL数据库进行结构化存储,如HBase。
3. 分析数据:使用MapReduce,Spark等工具对数据进行清洗,整合和分析,挖掘出数据中的规律和价值。
4. 可视化数据:使用数据可视化工具,将分析结果进行可视化,帮助业务人员理解和决策。
5. 价值创新:在数据分析的基础上,开发新的产品和业务,创造新的价值和收益。
6. 迭代更新:收集用户数据,不断分析更新产品与业务,实现持续迭代更新和创新。
7. 实时运营:对实时产生的数据进行实时采集、分析和决策,实现实时运营和监控。
8. 预见未来:通过历史数据进行模型训练和分析,预测未来趋势,做出预见性决策。
9. 整体优化:采用全链路的数据收集与分析方法,优化业务流程,降低运营成本。
10. 用户体验:收集用户行为数据与反馈,分析用户体验,持续改进产品与服务。
11. 知识发现:从海量复杂的数据中发现隐藏的知识与关系,实现知识发现。
总之,大数据思想核心在于以数据为中心,通过数据收集、存储、分析、决策和创新等手段来支撑业务与管理。
1. 大数据系统架构设计与开发:设计整体系统架构,选择合适的技术框架与工具,开发大数据系统平台和基础组件。如HDFS,Hive,Spark等框架的部署与开发。
2. 大数据算法和模型设计:根据业务需求,选择和设计合适的算法与模型。如机器学习,深度学习,推荐系统等算法与模型的设计与开发。
3. 数据分析和挖掘:对海量数据进行分析,发现数据规律和业务价值,提供数据分析报告和应用方案。如用户行为分析,市场篇情分析,异常检测等。
4. 具体模块和组件开发:基于大数据架构,开发具体的功能模块和组件。如数据采集系统,Hadoop/Spark作业, Prediction服务,实时计算系统等。
5. 大数据应用开发:开发基于大数据的具体应用系统,为用户提供数据服务和商业价值。如个性推荐系统,智能运维系统,报表展示系统等。
6. 性能优化和系统调优:对大数据系统各个组件与模块进行优化,提高系统性能,减少资源消耗。如SQL优化,代码优化,参数调优等。
7. 大数据运维和发布管理:负责大数据系统的部署,监控,运维管理与发布管理。保证系统高可用与正常运行。
8. 技术研究和方案选择:跟进大数据领域的最新技术与产品,研究优秀方案与架构,为项目实践选型提供支持。
9. 编写技术文档:编写大数据系统和架构的相关设计文档、开发文档、运维文档和应用方案等。
10. 指导和培训:负责团队其他大数据开发工程师的指导,培训和知识分享。不断提高团队的整体技能水平。
- HDFS:
HDFS采用Master/Slave架构,NameNode为Master,负责元数据管理,DataNode为Slave,负责数据块的存储。
用于大规模数据存储,采用分布式文件系统。HDFS采用分布式架构,通过多台服务器组成的集群存储数据,以解决海量数据存储问题。
使用前:数据存储在单机,存储能力有限,无法存储PB级数据,容量和可靠性都较低。
使用后:可存储PB级数据,高容错率,高吞吐,可在大规模集群上部署。
- HBase:
面向列的分布式数据库,用于存储结构化和半结构化数据。基于Google Bigtable设计,采用Master/RegionServer架构。表由行和列组成,以行键为索引。支持实时随机读写,适用于实时查询和广告点击实时统计等应用。
- Hive:
数据仓库工具,可以将结构化数据文件映射为一张数据库表,并提供SQL查询功能。基于Hadoop的分布式数据仓库,采用HiveQL语法进行查询与分析。
使用MapReduce进行计算,延迟较高,适用于离线批处理。
- MapReduce:
并行计算框架,用于大数据的离线批处理计算。
使用前:数据量大时,单机无法进行并行计算。
使用后:可在集群进行分布式计算,处理TB级数据,解决超大规模计算难题。
- Spark:
通用的分布式计算框架,用于大数据的批处理,流处理,机器学习和图计算。
Spark 提供了五大模块:Spark SQL,Spark Streaming,Spark MLlib,GraphX和Spark Core。Spark基于内存计算,性能优于MapReduce,适用于交互式数据挖掘和机器学习等应用。
- Storm:
实时流计算框架,用于实时的数据流计算。
使用前:无法进行实时计算和处理数据流。
使用后:可对数据流进行低延迟实时计算,实时产生结果和报警。
- Flink:
新一代的流批一体的分布式计算框架,具有低延迟和高吞吐的流计算能力。
DataStream API:用于实时数据流的转换和处理。
DataSet API:用于批处理和离线数据的转换和处理。
Flink拥有强大的流计算能力,可用于实时ETL,监控报警等场景。
- YARN:
hadoop的资源管理框架,负责集群的资源调度和作业监控,具有良好的可伸缩性和通用性。
使用前:各个组件独立部署,存在资源隔离和低利用率问题。
使用后:提供统一的集群资源管理与调度,可在一套集群上运行各种框架,提高资源利用率。
- Mesos:
Apache的分布式资源管理框架,可以与Hadoop,Spark等框架整合使用。
- Mahout:Apache的机器学习库,提供各类机器学习算法的实现。
- Spark MLlib:Spark的机器学习库,提供机器学习算法的实现。
- TensorFlow:Google开源的机器学习系统,用于研究和生产环境中的机器学习应用研发。
- FineBI:一款商业化的大数据可视化与分析产品,提供ETL,OLAP和BI的能力。它具有交互式查询,大容量数据探索,多维分析,实时监控和报警等功能。
- Superset:Apache的BI工具,提供数据分析和可视化功能。
- Kibana:Elasticsearch的可视化工具,用于分析和可视化日志数据。
- Grafana:通用的可视化工具,可以和多种存储和计算框架集成。
- Kafka:
高吞吐量的分布式消息队列,用于大数据实时流式处理。Kafka拥有高性能、高吞吐量、持久化存储的特点。
Producer:消息生产者,向Kafka集群发送消息。
Consumer:消息消费者,从Kafka集群读取消息。
Broker:Kafka的服务器节点。
Topic:消息分类,按业务或数据类型划分。
- Elasticsearch:
分布式搜索与分析引擎,用于海量日志和数据分析。Elasticsearch是一个基于Apache Lucene的开源搜索引擎,具有近实时搜索,高可扩展和高可用性等特点。
- Zookeeper:
ZooKeeper 是 Apache 软件基金会的一个分布式协调服务,分布式应用程序可以基于 ZooKeeper 实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
- Ranger:Hadoop的安全管理工具,提供用户权限和数据屏蔽管理。
- Knox:Hadoop REST API网关,提供Hadoop相关应用的REST API接入。
- Kerberos:Hadoop的认证服务,提供强认证功能。