All Projects → junneyang → xxhadoop

junneyang / xxhadoop

Licence: Apache-2.0 license
Data Analysis Using Hadoop/Spark/Storm/ElasticSearch/MachineLearning etc. This is My Daily Notes/Code/Demo. Don't fork, Just star !

Programming Languages

java
68154 projects - #9 most used programming language
scala
5932 projects
shell
77523 projects

Projects that are alternatives of or similar to xxhadoop

Bigdata Notes
大数据入门指南 ⭐
Stars: ✭ 10,991 (+29605.41%)
Mutual labels:  hive, hadoop, storm, hbase, zookeeper
Szt Bigdata
深圳地铁大数据客流分析系统🚇🚄🌟
Stars: ✭ 826 (+2132.43%)
Mutual labels:  hive, hadoop, hbase, zookeeper
BigInsights-on-Apache-Hadoop
Example projects for 'BigInsights for Apache Hadoop' on IBM Bluemix
Stars: ✭ 21 (-43.24%)
Mutual labels:  hive, hadoop, hbase, spark-streaming
Bigdata docker
Big Data Ecosystem Docker
Stars: ✭ 161 (+335.14%)
Mutual labels:  hive, hadoop, hbase, zookeeper
God Of Bigdata
专注大数据学习面试,大数据成神之路开启。Flink/Spark/Hadoop/Hbase/Hive...
Stars: ✭ 6,008 (+16137.84%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Bigdata
💎🔥大数据学习笔记
Stars: ✭ 488 (+1218.92%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Bigdataguide
大数据学习,从零开始学习大数据,包含大数据学习各阶段学习视频、面试资料
Stars: ✭ 817 (+2108.11%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Hadoop cookbook
Cookbook to install Hadoop 2.0+ using Chef
Stars: ✭ 82 (+121.62%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (+186.49%)
Mutual labels:  hive, hadoop, hbase, zookeeper
aaocp
一个对用户行为日志进行分析的大数据项目
Stars: ✭ 53 (+43.24%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Repository
个人学习知识库涉及到数据仓库建模、实时计算、大数据、Java、算法等。
Stars: ✭ 92 (+148.65%)
Mutual labels:  hive, hadoop, hbase, zookeeper
cloud
云计算之hadoop、hive、hue、oozie、sqoop、hbase、zookeeper环境搭建及配置文件
Stars: ✭ 48 (+29.73%)
Mutual labels:  hive, hadoop, hbase, zookeeper
dockerfiles
Multi docker container images for main Big Data Tools. (Hadoop, Spark, Kafka, HBase, Cassandra, Zookeeper, Zeppelin, Drill, Flink, Hive, Hue, Mesos, ... )
Stars: ✭ 29 (-21.62%)
Mutual labels:  hive, hadoop, hbase, zookeeper
Wedatasphere
WeDataSphere is a financial level one-stop open-source suitcase for big data platforms. Currently the source code of Scriptis and Linkis has already been released to the open-source community. WeDataSphere, Big Data Made Easy!
Stars: ✭ 372 (+905.41%)
Mutual labels:  hive, hadoop, hbase
Bdp Dataplatform
大数据生态解决方案数据平台:基于大数据、数据平台、微服务、机器学习、商城、自动化运维、DevOps、容器部署平台、数据平台采集、数据平台存储、数据平台计算、数据平台开发、数据平台应用搭建的大数据解决方案。
Stars: ✭ 456 (+1132.43%)
Mutual labels:  hive, storm, hbase
BigData-News
基于Spark2.2新闻网大数据实时系统项目
Stars: ✭ 36 (-2.7%)
Mutual labels:  hive, hadoop, hbase
Wifi
基于wifi抓取信息的大数据查询分析系统
Stars: ✭ 93 (+151.35%)
Mutual labels:  hive, hadoop, hbase
qs-hadoop
大数据生态圈学习
Stars: ✭ 18 (-51.35%)
Mutual labels:  hadoop, storm, spark-streaming
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (+170.27%)
Mutual labels:  hive, hbase, zookeeper
litemall-dw
基于开源Litemall电商项目的大数据项目,包含前端埋点(openresty+lua)、后端埋点;数据仓库(五层)、实时计算和用户画像。大数据平台采用CDH6.3.2(已使用vagrant+ansible脚本化),同时也包含了Azkaban的workflow。
Stars: ✭ 36 (-2.7%)
Mutual labels:  hive, hbase, spark-streaming

xxhadoop

Data Analysis Using Hadoop/Spark/Storm/ES/MachineLearning etc. This is My Learning Notes/Code/Demo. Don't fork, Just star !

image

几个概念

  • BI: 包括ETL(数据的抽取、转换、加载),数据仓库(Data Warehouse),OLAP(联机分析处理),数据挖掘(Data Mining)等技术。
  • Data Mining:在大量数据中自动搜索隐藏于其中的有着特殊关系性(属于Association rule learning)的信息的过程。相比商务智能,数据挖掘是一种更加学术的说法,强调技术和方法。
  • OLAP:是一个建立数据系统的方法,其核心思想即建立多维度的数据立方体,以维度(Dimension)和度量(Measure)为基本概念,辅以元数据实现可以钻取(Drill-down/up)、切片(Slice)、切块(Dice)等灵活、系统和直观的数据展现。

数据处理开源技术分类汇总

计算引擎

  • Hadoop: Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。除了文件存储,Hadoop还有最完整的大数据生态,包括机器管理、NoSQL KeyValue存储(如HBase)、协调服务(Zookeeper等)、SQL on Hadoop(Hive)等。Hadoop生态架构图
  • Spark
  • Flink
  • Storm

列式数据库

  • HBase
  • Cassandra:Facebook开源NoSQL,解决HBase中心节点问题,无中心架构
  • Parquet:Hadoop的列存储格式

时间序列数据库

  • InfluxDB:分布式时间序列数据库
  • OpenTSDB:在HBase上的分布式时间序列数据库
  • Prometheus:一种时间序列数据库和服务监测系统
  • Heroic:基于Cassandra和Elasticsearch的可扩展的时间序列数据库

数据存储

  • 经典数据仓库: HDFS + ORC/Parqet + Hive/SparkSQL
  • 实时数据仓库: HDFS + Kudu + Impala
  • 在线分析: HDFS + HBase + Phoenix
  • 时序分析: OpenTSDB/InfluxDB/Prometheus
  • 多维分析: Druid/Kylin

文件系统&分布式存储

实时分析

  • RDB:MySQL/PostgreSQL/Oracle方案,或者GreenPlum方案。参考资料
  • 分布式数据库方案选型: 网易DDB、淘宝TDDL、MySQL Proxy、 MySQL Router、ShardSphere、DBLE、MongoDB替代等
  • Druid: Druid的很多设计思想来源于Google的秘密分析武器PowerDrill,从功能上,和Apache开源的Dremel也有几分相似。参考资料
  • Pinot:与Druid最接近的系统,Linkedin于2015年底开源的一个分布式列式数据存储系统。
  • Kylin:Apache开源的分布式分析引擎,提供了Hadoop之上的SQL查询接口及多维分析(OLAP)能力,可以支持超大规模数据。最初由eBay公司开发并于2015年贡献至开源社区。它能在亚秒内查询巨大的Hive表。Kylin, Mondrian, Saiku系统的整合可以作为通用的BI平台,参考:https://tech.youzan.com/kylin-mondrian-saiku/
  • Dremel:Google 的“交互式”数据分析系统,支持嵌套数据类型的列存储,这个特性是Druid缺少的。
  • Drill:Apache Drill 通过开源方式实现了 Google’s Dremel。Apache Drill的架构,整个思想还是通过优化查询引擎,进行快速全表扫描,以快速返回结果。
  • ElasticSearch:Elastic公司推出的一个基于Lucene的分布式搜索服务系统,它是一个高可靠、可扩展、分布式的全文搜索引擎。ES在前几年的定位一直是文本的倒排索引引擎,用于文本搜索的场景。最近几年,Elastic公司将ES用于日志分析和数据的可视化,慢慢转成一个数据分析平台。
  • Kudu:支持快速分析的新型Hadoop存储系统,一般联合Impala的SQL一起使用,官网,内存开销较大,速度稍好于Hive。
    - Crate:开源大数据存储,因为Elasticsearch性能实在太出众了,但是dsl接口不好使。有人拿Elasticsearch做为底层,上层封装了一个SQL接口,从何正式变成了一种数据库,叫 http://crate.io
  • Splunk:用于机器生成的数据的分析
  • 最新OLAP实时分析可选方案列表:ClickHouse、Palo、Doris、Druid、Pinot、CrateDB、TiDB、Kylin、GreenPlum等
  • 阿里云E-MR架构: 参考资料
  • Hologres架构回归问题本质: 数据仓库、数据湖、流批一体,终于有大神讲清楚了

SQL On Hadoop方案

  • Hive/SparkSQL
  • Impala/Presto/Shark
  • HBase + SQL(Phoenix, Salesforce开源)

数据采集与ETL

  • Apache Flume:管理大量日志数据的服务,参考
  • Apache Kafka:分布式发布-订阅消息系统
  • Apache Sqoop:在Hadoop和结构化的数据存储区之间传送数据的工具
  • Facebook Scribe:流日志数据聚合器
  • Fluentd:采集事件和日志的工具
  • Logstash:用于管理事件和日志的工具
  • Linkedin Gobblin:LinkedIn的通用数据摄取框架
  • StreamSets Data Collector:连续大数据采集的基础设施,可简单地使用IDE
  • Statsd:StatsD 是一个 NodeJs 的 daemon 程序,简单轻巧,使用 UDP 协议,专门用来收集数据,收集完数据就发送到其他服务器进行处理
  • LogDevice:来自Facebook的分布式日志数据存储系统 参考1 参考2
  • 调用链跟踪系统方案选型: jaeger pinpoint skywalking zipkin等, 其中grafana支持jaeger,zipkin数据源
  • 数据同步最新方案选型:Waterdrop 、LogStash、INSERT SELECT全量(MySQL/Kafka/HDFS)、DataX、Kettle、Sqoop、StreamSets、Altinity/clickhouse-mysql-data-reader、KafkaConnector(Debezium)、Gobblin等方案

算法与AI

  • 分布式训练:TensorFlow(tf.distribute)、Pytorch(DistributedDataParallel)
  • Horovod(Uber 开发的用于分布式训练的开放源代码 all reduce 框架), REF: https://github.com/horovod/horovod

任务调度与工作流

  • Spotify Luigi:构建批处理作业的复杂管道的Python包,它能够处理依赖性解析、工作流管理、可视化、故障处理、命令行一体化等等问题
  • Apache Aurora:在Apache Mesos之上运行的服务调度程序
  • Marathon:用于长期运行服务的Mesos框架
  • Apache Oozie:工作流作业调度程序
  • Chronos:分布式容错调度
  • Linkedin Azkaban:批处理工作流作业调度
  • Schedoscope:Hadoop作业敏捷调度的Scala DSL;
  • Sparrow:调度平台
  • Airflow:一个以编程方式编写、调度和监控工作流的平台
  • jobber: 简单的替代cron的工具, 参考1, 参考2
  • schedulix:enterprise job scheduling system, 参考1 参考2
  • JobX:Let's scheduling easy http://www.jobxhub.com
  • metronome: Apache Mesos framework for scheduled jobs https://dcos.github.io/metronome/ https://github.com/ovh/metronome-ui
  • ovh/cds: Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform
  • uber/cadence工作流引擎: https://github.com/uber/cadence
  • 近期更新: Argo、Airflow、ooize、AZKaban、Luigi、elastic-job、quartz、xxl-job、Schedulis、Uber/cadence、Spinnaker/orca、incubator-dolphinscheduler等

系统部署运维

  • Apache Ambari:Hadoop管理的运作框架,是一个类似marathon的CS模式的框架,并且可以自定义新的服务。参考1 参考2
  • Apache Bigtop:Hadoop生态系统的打包、部署框架,依赖puppet的工作流
  • Apache Helix:集群管理框架
  • Apache Slider:一种YARN应用,用来部署YARN中现有的分布式应用程序
  • Brooklyn:用于简化应用程序部署和管理的库,支持编排、部署、生命周期管理、监控等,Java开发,非常类似Ambari的特性。参考1 Docker + Apache Brooklyn = Clocker
  • Buildoop:基于Groovy语言,和Apache BigTop类似
  • Cloudera HUE:和Hadoop进行交互的Web应用程序
  • Hortonworks HOYA:可在YARN上部署HBase集群的应用

监控告警方案

  • 传统方案:StatsD/CollectD + Influxdb/whisper + Grafana/graphite
  • 容器监控方案(K8S):Heapster(cAdvisor)+Grafana+InfluxDB/ElasticSearch
  • 主机监控方案(marathon):node-exporter、prometheus、grafana + alartmanager
  • 采集 cAdvisor, Heapster, collectd, Statsd, Tcollector, Scout
  • 存储 InfluxDb, OpenTSDB, Elasticsearch
  • 展示 Graphite, Grafana, facette, Cacti, Ganglia, DataDog
  • 告警 Nagios, prometheus, Icinga, Zabbix
  • glances:Glances an Eye on your system. A top/htop alternative 参考1
  • 方案: 方案 收集:statsd/collectd/cadvisor/node-exporter 缓冲:kafka/logstash 存储与多维分析:druid/es/prometheus 可视化:grafana 报表:metabase/superset 告警:alertmanager 监控维度 系统(cpu mem disk net) 进程 中间件

BI与可视化

  • Tableau:商业智能平台
  • Qilk:商业智能和分析平台
  • FineBI:国内商业BI平台
  • Looker:新生代商用BI工具
  • Pentaho:商业智能平台
  • Redshift:Amazon服务,可以理解为用于大数据分析的PostgreSQL,基于PostgreSQL的数据仓库服务
  • Superset:最初Airbnb开源,目前Apache Incubator孵化器项目,需要选择指标Metric、分组条件、过滤条件作图,SQL支持较弱,不够灵活,Join支持较弱 ;Superset在0.11版本之后加入SQL Lab功能,好像比较差;文档不够好;长期只有一个主力开发;Flask App Builder: 应用框架;SQLAlchemy:ORM支持SQL查询 ;React + Redux:前端SQL编辑器交互。参考
  • Redash:输入SQL输出图标;支持Query Snippet与Query Parameters,灵活支持定制参数;文档丰富;长期只有一个主力开发;Flask-RESTful:应用框架;Flask-SQLAlchemy:数据库操作;Flask-Login:认证授权;AngularJS(1.5):前端;Redis:查询锁,防止多个相同查询同时进行;docker-compose:一键部署
  • Metabase:Metabase非常注重非技术人员(如产品经理、市场运营人员)在使用这个工具时的体验,让他们能自由地探索数据,回答自己的问题;有一个团开发;Metabase是三个项目中唯一提供完整 API 文档的项目;Clojure:后端语言;React + Redux:前端语言。参考
  • Tableau:商业智能平台,https://www.tableau.com/zh-cn/products/prep#video
  • PowerBI: 商业智能平台
  • SpagoBI:开源商业智能平台
  • Imply:An interactive data exploration UI for Druid http://pivot.imply.io/
  • 可视化参考资源: https://github.com/thenaturalist/awesome-business-intelligence
  • 三大开源方案: redash、superset、metabase

可视化

  • Kibana 更偏向可视化;针对ES的数据可视化方案,可查询日志数据、构建仪表盘;既支持检索,又支持数据浏览
  • Grafana 更偏向可视化;开源仪表盘工具,支持Graphite、InfluxDB与 OpenTSDB、Elasticsearch、druid等数据源;支持可视化,不做数据的检索与浏览;两个工具可以结合使用,Kibana分析数据-->ES-->再使用Grafana渲染
  • Graphite:可扩展的实时图表
  • Zeppelin:a notebook-style collaborative data analysis
  • Jtopo: 拓扑可视化,参考1 参考2 参考3

物联网IOT

  • TempoIQ:基于云的传感器分析
  • 2lemetry:物联网平台
  • Pubnub:数据流网络
  • ThingWorx:ThingWorx 是让企业快速创建和运行互联应用程序平台
  • IFTTT:IFTTT 是一个被称为 “网络自动化神器” 的创新型互联网服务,它的全称是 If this then that,意思是“如果这样,那么就那样
  • Evrythng:Evrythng则是一款真正意义上的大众物联网平台,使得身边的很多产品变得智能化

云计算平台建设

  • 发展理念:大中台、小前台
  • 建设路线:云化、平台化、服务化、一体化、自动化、智能化、场景化
  • 主要方向:采集平台、数据平台、多维分析与BI平台、Web应用微服务平台、调度平台、可视化平台、运维监控平台
  • 影响力建设:Confluence-Wiki系统建设、物联网平台计划

参考资料

规范参考

Redis使用规范

  • 参考资料:https://developer.aliyun.com/article/531067 https://www.aliyun.com/product/kvstore?spm=5176.19720258.J_8058803260.172.12652c4axakLlV
    0、Redis集群模式:MS主从、Sentinel哨兵、Cluster集群、读写分离、客户端分片等架构
    1、防止Key冲突,推荐使用形如[业务名:表名:ID]格式
    2、防止Key过长,简洁命名减少内存占用,如:user:{uid}可调整为u:{uid}
    3、拒绝BigKeys,string<10K,list、set、hash、zset元素不超过5K
    4、选择合适的数据类型,string、hash、list、set、zset
    5、控制Key的生命周期,防止集中过期
    6、禁止暴力扫描、暴力操作,如KEYS、HGETALL等
    7、分布式锁可以使用ZK实现,集群版Redis理论上不能保证强一致性
    8、缓存一致性:Cache-Aside(先更新DB/再删除缓存)、延时双删(先删缓存/再更新DB)
    9、注意缓存穿透、击穿、雪崩、热Key问题(HA、预热、限流降级、随机过期、慢查监控)
    

MySQL使用规范

  • 参考资料:https://www.cnblogs.com/huchong/p/10219318.html
    0、统一编码utf8mb4、统一引擎innodb
    1、单表数据量500W以内(通过归档、分库分表解决大数据)
    2、减少表宽度(冷热分离、Text/Bob分离)
    3、数据类型空间优化(如IP转INT存储、无符号数范围)
    4、所有字段NOT NULL(COUNT、SUM、=会出现非预期结果)
    5、使用Datetime存储时间(避免使用Timestamp、String)
    6、财务相关字段使用Decimal实现精准浮点数
    7、使用Varchar(20)存储手机号
    8、使用自增字段作为主键
    9、优先使用联合索引,控制索引数量<5
    10、索引字段按照区分度高低顺序建立联合索引
    11、优先使用覆盖索引(包含了SWOG全部字段)
    12、避免使用外键约束,但关联字段需要使用索引
    13、使用SQL预编译避免安全问题、提升性能
    14、禁止使用SELECT*,禁止INSERT不含字段名
    15、避免JOIN太多表关联与复杂查询
    16、避免WHERE条件使用函数(如date(create_time) > '20210201')
    17、拆分复杂的SQL为多条SQL语句分开执行计算
    18、100W行以上的操作分批次执行(如INSERT、UPDATE、DELETE操作)
    19、使用慢查询监控
    20、使用半同步复制模式,保证事务不丢失
    21、数据库连接不跨机房,通过RPC调用跨IDC
    22、避免ALTER TABLE,建议走建新表->数据复制->改表名->删原表的流程
    23、使用分库分表解决数据写压力;使用读写分离、负载均衡、缓存等解决数据读压力
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].