从事大数据岗位,个人常用的Apache顶级项目

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 年前,个人换了大数据岗位,目前主要从事大数据分析和大数据算法相关工作。在前期数据分析师岗位的基础上,虽然只是增加了一个"大"字作为前缀,但所涉及的技术栈和工作理念其实还是有很大变化的,其中打交道最为频繁的当从一个关键词说起:Apache

640.pngApache:世界上最大的开源软件基金会


01 关于Apache


Apache是一个成立于1999年的非盈利性组织,其所属软件基金会(ASF:Apache Software Foundation)致力于为开源软件项目(前提是该项目已列入到Apache项目)提供服务和支持,得益于其良好的管理和宏伟的愿景,Apache目前是世界上最大的开源软件基金会组织。当然,Apache软件基金会的资金主要来源于个人和企业的捐助。


640.png

以上截图源于Apache官网


从中可以看到这样一组数字:

  • 维护350+个项目和提案
  • 300+顶级项目
  • 管理227M+行代码(2.27亿+)
  • 4.2B+行代码更改(42亿+)
  • 3.9M+代码提交(390万+)
  • 社区参与人数46万+
  • ……


作为一名程序员,看到这些以K、M、B(billion)来计数的内容,总是难免心生波澜心存敬畏……更重要的是不仅数量庞大,而且Apache所涉猎领域还众多,按照Apache官网分类有27个子类,我个人日常工作中涉及到的主要是big-data所在分类,所以本文就来简要介绍一下几个常用的Apache顶级项目,大多属于大数据范畴。


02 频繁打交道的几个Apache顶级项目


个人目前从事工作内容包括大数据分析、大数据算法以及部分大数据开发相关,所用到的技术栈主要包括:


1)Hadoop:提起大数据想必人人皆知Hadoop,狭义的讲,hadoop是yarn资源调度+hdfs分布式存储+mapreduce两阶段分布式计算的技术集成;广义的讲,hadoop其实已经代表了以hadoop为核心的一套大数据技术生态,除了hadoop自身,还包括Hbase列式存储、Hive数仓、Spark分布式计算等等。在实际工作中,用到的主要是其hdfs存储和yarn资源调度功能;


640.jpg


2)Hive:大数据的核心是存储和计算,hadoop的hdfs提供了底层的分布式文件存储,而对这些存储映射为结构化数据并提供类SQL查询的组件则是Hive,其与关系型数据库(RDB)在数据方式和查询语法上都较为相近,但同时又有着很多本质上的区别:例如Hive是OLAP(面向主题),记录了大量历史数据,可能存在重复和冗余,主要操作是插入和查询数据;而关系型数据库则是OLTP(面向事务),实时记录了最新数据,一般遵循数据库设计6大范式(至少遵循前3个范式),全面支持增删改查。正因为Hive的HQL语法与常用的SQL语法极为相近,所以学习成本较低,使用起来更容易上手;


640.jpg


3)Spark:Hive提供了一定的数据分析能力,但在执行效率和功能方面都还存有一定短板,所以Spark出于Hive而胜于Hive(Spark的早期版本Shark是基于Hive的)应运而生,由于采用了内存式计算设计,相较于Hadoop中的MapReduce两阶段计算框架而言,有着上百倍的效率提升,更重要的Spark支持4种语言API(Java、Scala、Python和R),对标数据处理阶段涵盖批处理、流处理、机器学习以及图计算,可谓是提供了多语言一站式分布式计算方案,使用起来还是较为方便的;


640.jpg


4)Parquet:parquet实际上只是一种数据存储文件格式,具有较高的压缩比,所以存储体积更为小巧。其标志性特点就是列式存储,读取和存储的parquet文件自带Schema信息,但是要求不能存在列名重复。与txt、csv类的通用文件格式不同,parquet文件可能也算是大数据中的一个标志性文件类型,甚至称的上是文件存储格式的标准;


5)Maven:maven是一个项目构建工具,个人在构建Scala项目中会有所应用。通过Maven构建的Scala项目,其最大的优势在于项目文件目录更为清晰,严格按照src-main/test-scala类的格式建立和管理项目文件,更重要的是通过配置pom文件,可方便的管理项目中的依赖,实现自动下载和导入,使用起来更为简洁方便。


640.jpg


6)Zeppelin:用Python做数据分析的应该都知道Jupyter,与之类似,用Spark做数据EDA的最好工具当属Zeppelin:通过设置不同的解释器路径,可以提供一个多语言的交互式分析环境,包括spark的各语言环境、scala、python以及SQL等,在SQL解释器下还支持简单的数据可视化能力。不过坦白的讲,对于习惯了jupyter的用户而言,可能会觉得zeppelin的快捷键支持和界面功能方面都还有待提升;


640.jpg

当前zeppelin最新版本为0.9.0


7)Airflow:Airflow是一个调度管理工具(因其最早源于Airbnb公司,所以名字含有air),现也是Apache顶级项目,功能有些类似于linux下的定时任务调度工具crontab,但功能更为完备,包括提供了多种类型调度任务、可通过WEB UI便捷管理、支持分布式多节点执行等。个人目前将其余mlflow配套使用,共同完成从数据预处理到特征构建直至算法建模输出整个流程的调度使用,目前仍在持续探索中。


640.png


640.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
67 5
|
1月前
|
存储 SQL 分布式计算
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
58 3
|
1月前
|
Java 大数据 数据库连接
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
29 2
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
|
1月前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
29 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
1月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
39 1
|
1月前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
35 1
|
1月前
|
SQL 存储 监控
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
52 0
|
1月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
11天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
97 7
|
11天前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
26 2

推荐镜像

更多
下一篇
无影云桌面