开发笔记 -- 大数据技术栈 (1) - 离线

一、cdh&ambair

大数据常用集群管理工具

使用方式与异同点对比:

 

 

靠谱环境搭建博文(也可以参考各自官网或github相关项目):

* cdh搭建: https://www.jianshu.com/p/106739236db4

* ambari安装:https://blog.csdn.net/Happy_Sunshine_Boy/article/details/86595945

 

二、hadoop

* hadoop由多个组件组成:

hdfs: 分布式文件系统,负责大文件存储,提供可靠性保障(副本策略或纠删码)

yarn:资源调度,可以协调hadoop集群处理资源,也可以通过其队列和容器封装管理其他计算框架(spark/flink)

mapreduce: 分布式计算引擎,shuffle比较耗时,目前计算引擎一般会选用tez/spark/flink

* hadoop中文文档

https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html

* hadoop权限问题

hdfs鉴权并不完善,原生鉴权是用户名鉴权,hdfs用户是其超级管理员用户名

可以整合Kerberos和ranger权限对其进行用户和数据进行权限控制

* Kerberos

https://www.wenjiangs.com/article/hadoop-kerberos-user-authentication.html

* ranger

https://blog.csdn.net/onlyForCloud/article/details/69257684

 

三、hive

构建于hdfs上层,用hsql控制MapReduce的OLAP数据仓库

* 官网wiki

https://cwiki.apache.org/confluence/display/Hive

* hive核心原理博文:

https://segmentfault.com/a/1190000039193704?utm_source=sf-related

https://blog.csdn.net/ForgetThatNight/article/details/79632364

* 常用Hive SQL

https://www.gairuo.com/p/hive-sql-tutorial

* Hive SQL 抽象语法解析

http://www.manongjc.com/detail/13-skeiftqvokuvrab.html

* 数仓使用方式

通常是在基于hive进行分层建模,然后由调度工具进行组织形成工作流

分层:把数据分为多个层级,每层数据定位到各自的维度和细节点(如经典的: ODS - DW - DM)

建模:根据业务关系对数据整体分布结构或关联关系定义(雪花模型,星型模型,星座模型等)

* 数仓调度工具

azkaban,oozie

 

四、hbase

基于hdfs面列存储的非关系型数据库

https://hbase.apache.org/

 

五、spark sql & flink sql

在主流计算框架spark和flink当中也由对应的可以建设到hdfs上的高效计算组件

spark sql & flink sql

使用方式一般是读取数据源(Source)创建为ds/df(spark)、table(flink)然后使用对应算子进行组合操作输出到目的地(Sink)

* flink 中文文档

https://nightlies.apache.org/flink/flink-docs-stable/zh/

* spark 中文文档

http://spark.apachecn.org/#/

 

五、数据传输工具

大部分场景下会涉及到数据的传输和收集,其中包括日志数据和数据库数据等

* 常用工具

dataX(alibaba开源数据传输工具):https://developer.aliyun.com/article/59373

sqoop(hive<-->rdbms): https://www.yiibai.com/sqoop/

flume(日志收集,扇入扇出): https://flume.apache.org/

 

posted @ 2022-05-24 13:59  yangdq  阅读(179)  评论(0编辑  收藏  举报