热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据架构与技术选型

大数据架构源数据层(原始数据存储位置)sdk日志埋点日志文件:爬虫日志、业务日志关系型数据库:mysql,oracle等数据采集层(抽取源数据至数据存储层)离线:flu

目录
  • 大数据架构
  • 技术选型
    • 实时分析
    • 离线分析
  • 组件版本号

大数据架构

大数据架构

  1. 源数据层(原始数据存储位置)
sdk日志埋点
日志文件:爬虫日志、业务日志
关系型数据库:mysql,oracle等
  1. 数据采集层(抽取源数据至数据存储层)
离线:flume、Sqoop、Nifi
实时:filebeat、nginx+lua
补充:当数据量达到5亿左右的时候,filebeat+logstash采集数据到hdfs,数据会出现丢失的情况,所以此种方案不适合用于大数据存储到hdfs
  1. 数据存储层
hdfs用于存储离线大数据量
kudu用于存储mysql关系数据库更新变化的数据
es存储一些log日志,比如说我们需要快速的定位某一个业务的log情况
kafka作为消息中间件,存储filebeat或者是flume采集的日志
  1. 数据分析层(进行数据分析)
es,分析一些log
hive用于分析一些离线大数据(基于磁盘IO分析)
impala、presto 适用于分析一些准实时日志(要求快速出数据,基于内存分析)
spark core+spark sql 适用于分析一些离线数据,自定义解析规则
spark streaming 适用于分析一些实时(不是完全实时)数据
flink,jstorm 用于分析完全实时的数据
  1. 数据调度层(对数据分析任务进行调度)
airflow 适用大集群,阿里的调度系统就是根据airflow二次开发,配置复杂,python 脚本实现
azkaban :cpu和内存要求不高,主从配置支持的不算太好,适用于小集群,以job的文件实现,配置简单
oozie:通常hue集成,单独的使用oozie的情况下,配置复杂,不建议使用,所有的任务都是以mr形式进行的,可支持复杂的依赖调度
jobX: cpu使用高,bug还没修复,所以造成agent的cpu维持在一个左右,配置简单,只支持依赖调度,并行调度不支持。
crontab:一般用于每分钟调度一次的任务,不支持依赖调度,并行调度(配置复杂,通过脚本自定义控制),没有可视化界面,不能准确的判断任务是否成功或者是失败
NIFI: 不但支持任务调度,还支持ETL
自定义,公司自己开发使用的
  1. 数据同步层(调度任务,执行完毕后,还要写入应用程序中。采用sqoop等将数据同步到mysql(olap存储层)中)
sqoop 用的是1.x系列版本
datax
kettle
NIFI
  1. 数据olap存储层
mysql es tidb  redis hbase clickhouse
有时间的话研究tidb和clickhouse
  1. 数据展示层(展示mysql中的数据)
PowerBI,帆软等BI可视化工具。

技术选型

实时分析

可以使用lua或者filebeat将nginx数据采集到kafka,数据经过spark streaming或者是jstorm进行分析后,尽可能的存入一些高吞吐量的数据库(非关系型,redis,hbase),但是有时必须要存入一些关系型数据库,比如说mysql。
但是spark streaming发现仅仅通过一个map操作,每个执行的batch 期间,就超过了我们所设置的batch时间,这时候我们需要一个措施。
增加一个缓冲层,不直接mysql或者是redis,先写入kafka(消息中间件),然后通过kafka推送到独立的写入服务,这样会发现实时处理服务的时间明显的降低。

离线分析

-- 采集这块用flume的tailf形式,或者使用sqoop和NIFI
-- 数据分析使用Hive,SparkSql,数据存储用HDFS
-- 最终将数据导出到mysql等常用的关系型数据库当中。

组件版本号

Cloudera Manager: 6.2.1
CDH: 6.2.1
Hadoop:3.0.0-cdh6.2.1
HBase:2.1.0-cdh6.2.1
Hive:2.1.1-cdh6.2.1
Kafka:2.1.1-cdh6.2.1
Kudu:1.9.0-cdh6.2.1
Oozie:5.1.0-cdh6.2.1
Spark:2.4.0-cdh6.2.1
Sqoop:1.4.7-cdh6.2.1
Zookeeper:3.4.5-cdh6.2.1


推荐阅读
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • PHP 使用 Cookie 进行访问授权的方法
    本文介绍了如何使用 PHP 和 Cookie 实现访问授权,包括表单验证、数据库查询和会话管理等关键步骤。 ... [详细]
  • Ansible:自动化运维工具详解
    Ansible 是一款新兴的自动化运维工具,基于 Python 开发,集成了多种运维工具(如 Puppet、CFEngine、Chef、Func 和 Fabric)的优点,实现了批量系统配置、程序部署和命令执行等功能。本文将详细介绍 Ansible 的架构、特性和优势。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 当PHP中的tempnam()函数被禁用后的应对策略与解决方案
    当 PHP 中的 `tempnam()` 函数被禁用时,开发者需要采取相应的替代方案以确保应用程序的正常运行。本文探讨了多种应对策略,包括使用 `sys_get_temp_dir()` 结合自定义文件命名方法,以及利用第三方库来生成临时文件。此外,还详细介绍了如何在不同操作系统和服务器环境中配置临时文件路径,以提高代码的兼容性和安全性。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
author-avatar
阜阳king
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有