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

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

导读年前,个人换了大数据岗位,目前主要从事大数据分析和大数据算法相关工作。在前期数据分析师岗位的基础上,虽然只是增加了一个大字作为前缀

导读

年前,个人换了大数据岗位,目前主要从事大数据分析和大数据算法相关工作。在前期数据分析师岗位的基础上,虽然只是增加了一个"大"字作为前缀,但所涉及的技术栈和工作理念其实还是有很大变化的,其中打交道最为频繁的当从一个关键词说起:Apache。

Apache:世界上最大的开源软件基金会

01 关于Apache

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

以上截图源于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资源调度功能;

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

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

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

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


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

当前zeppelin最新版本为0.9.0

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

相关阅读:



推荐阅读
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • 基于,docker,快速,部署,多,需求,spark ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
  • SparkOnYarn在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARNApp ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • MapReduce工作流程最详细解释
    MapReduce是我们再进行离线大数据处理的时候经常要使用的计算模型,MapReduce的计算过程被封装的很好,我们只用使用Map和Reduce函数,所以对其整体的计算过程不是太 ... [详细]
author-avatar
7777-丿M
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有