MapReduce

数据工程师必备的8项技能,不要只知道Python!

一世执手 提交于 2020-08-18 08:41:12
原作 :Mohammed M Jubapu 译者 :机器学习算法与Python实战(公众号ID:tjxj666) 英文 : https://www.linkedin.com/pulse/skills-build-data-engineering-mohammed-m-jubapu/ 数据工程师是当今市场上最受欢迎的工作之一。数据无处不在,被认为是新时代的能源。公司从不同来源生成大量数据,数据工程师的任务是组织数据信息的收集,处理和存储。但是,要成为一名数据工程师,您需要具备一些出色的技能,例如数据库,大数据,ETL和数据仓库,云计算以及编程语言。但是问题来了,您是否想拥有所有这些技能,或者您想使用所有工具?为简化此操作,让我们抓住机会,直接深入研究数据工程人才市场中的最新技能,这肯定会增加您现有的职业生涯或协助您开始数据工程之旅。 1-精通一种编程语言 是的,编程语言是数据工程的必备技能。多数职位概况要求精通至少一种编程语言。这些语言是ETL或数据管道框架所必需的。通用编程语言是总体上掌握数据工程和管道所需的核心编程技能。比如, Java和Scala 用于在Hadoop上编写MapReduce作业。 Python 是数据分析和管道的流行选择,而 Ruby 也是广泛流行的应用程序粘合剂。 2- Python是最受关注的技能 Python!Python!Python!是的,大约70

【Hadoop篇08】Hadoop数据压缩

删除回忆录丶 提交于 2020-08-17 19:11:09
简洁而不简单 Hadoop数据压缩 数据压缩优点和缺点 ​ 压缩技术能够 有效减少底层存储系统(HDFS)读写字节数 。压缩提高了网络带宽和磁盘空间的效率。在 Hadoop下,尤其是数据规模很大和工作负载密集的情况下,使用数据压缩显得非常重要。在这种情况下, IO操作和网络数据传输要花大量的时间 。还有, Shuffle与 Merge过程同样也面临着巨大的IO压力鳘于磁盘IO和网络带宽是 Hadoop的宝贵资源, 数据压缩对于节省资源、最小化磁盘IO和网络传输非常有帮助 。 ​ 不过,尽管压缩与解压操作的CPU开销不髙, 其性能的提升和资源的节省并非没有代价 。如果磁盘IO和网络带宽影响了 MapReduce作业性能,在任意 MapReduce阶段启用压缩都可以改善端到端处理时间并減少IO和网络流量。 压缩策略和原则 ​ 压缩是提高 Hadoop运行效率的一种优化策略通过对 Mapper、 Reducer运行过程的数据进行压缩, 以减少磁盘IO,提高MR程序运行速度 。 ​ 注意:釆用压缩技术减少了磁盘IO,但同时 增加了CPU运算负担 。所以,压缩特性运用得当能提高性能,但运用不当也可能降低性能压缩基本原则: (1)运算密集型的job,少用压缩 (2) IO密集型的job,多用压缩 !! MR支持的压缩编码 压缩格式 hadoop自带? 算法 文件扩展名 是否可切分

MaxCompute SQL开发基础

蓝咒 提交于 2020-08-17 16:19:54
SQL基础知识 MaxCompute没有事务概念、主键、索引,不支持update和delete操作 MaxCompute SQL是什么? MaxCompute SQL是个数据处理工具 Query解析后,计算和存储交由底层的飞天实现 MaxCompute SQL采用的类似于SQL的语法,可以看作是标准SQL的子集,但不能因此简单地把MaxCompute等价成一个数据库 MaxCompute SQL每个作业的准备,提交阶段要话费较长时间,实时性不高。 目前MaxCompute SQL长度有限制,单条不超过2M。 MaxCompute中的数据组织 Project项目空间: MaxCompute的所有对象都隶属于项目空间 项目时maxcompute计量计费及安全控制的基本单元 Table表: 所有的数据都存储在表里 支持表分区,支持依赖于表的视图 Partition分区: 上传时,手工创建分区并保证质量,需指定分区。 使用insert数据时支持动态分区 MaxCompute SQL的约束 不支持事务 不支持主/外键 不支持索引 不支持Update/Delete MaxCompute SQL的适用场景 MaxCompute SQL适用于海量数据(GB、TB、EB级别),离线批量计算的场合。 不适合直接对接需要每秒处理几千至数万笔事物的前台业务系统,因为不支持事物,响应时间会比较长

大数据的特性优势有哪些

两盒软妹~` 提交于 2020-08-17 13:47:21
  大数据的出现给许多企业对寻找未来的方向带来了巨大的帮助,许多企业开始关注大数据,现在很多人开始关注大数据,大数据可以给每个人带来帮助,但你知道大数据的特点和功能吗?   大数据的特性都有哪些   一、体量(Volume)   大数据由大量数据组成,从几个TB到几个ZB。这些数据可能会分布在许多地方,通常是在一些连入因特网的计算网络中。一般来说,凡是满足大数据的几个V的条件的数据都会因为太大而无法被单独的计算机处理。单单这一个问题就需要一种不同的数据处理思路,这也使得并行计算技术(例如MapReduce)得以迅速崛起。   二、高速(Velocity)   大数据是在运动着的,通常处于很高的传输速度之下。它经常被认为是数据流,而数据流通常是很难被归档的(考虑到有限的网络存储空间,单单是高速就已经是一个巨大的问题)。这就是为什么只能收集到数据其中的某些部分。如果我们有能力收集数据的全部,长时间存储大量数据也会显得非常昂贵,所以周期性的收集数据遗弃一部分数据以节省空间,仅保留数据摘要(如平均值和方差)。这个问题在未来会显得更为严重,因为越来越多的数据正以越来越快的速度所产生。   三、多样(Variety)   在过去,数据或多或少是同构的,这种特点也使得它更易于管理。这种情况并不出现在大数据中,由于数据的来源各异,因此形式各异。这体现为各种不同的数据结构类型

AI 时代,还不了解大数据?

寵の児 提交于 2020-08-17 12:25:23
如果要问最近几年,IT行业哪个技术方向最火?一定属于ABC,即AI + Big Data + Cloud,也就是人工智能、大数据和云计算。 这几年,随着互联网大潮走向低谷,同时传统企业纷纷进行数字化转型,基本各个公司都在考虑如何进一步挖掘数据价值,提高企业的运营效率。在这种趋势下,大数据技术越来越重要。所以,AI时代,还不了解大数据就真的OUT了! 相比较AI和云计算,大数据的技术门槛更低一些,而且跟业务的相关性更大。我个人感觉再过几年,大数据技术将会像当前的分布式技术一样,变成一项基本的技能要求。 前几天,我在团队内进行了一次大数据的技术分享,重点是对大数据知识做一次扫盲,同时提供一份学习指南。这篇文章,我基于分享的内容再做一次系统性整理,希望对大数据方向感兴趣的同学有所帮助,内容分成以下5个部分: 1、大数据的发展历史 2、大数据的核心概念 3、大数据平台的通用架构和技术体系 4、大数据的通用处理流程 5、大数据下的数仓体系架构 01 大数据的发展历史 在解释「大数据」这个概念之前,先带大家了解下大数据将近30年的发展历史,共经历了5个阶段。那在每个阶段中,大数据的历史定位是怎样的?又遇到了哪些痛点呢? 1.1 启蒙阶段:数据仓库的出现 20世纪90年代,商业智能(也就是我们熟悉的BI系统)诞生,它将企业已有的业务数据转化成为知识,帮助老板们进行经营决策。比如零售场景中

How to connect to mongodb on centos7

穿精又带淫゛_ 提交于 2020-08-17 05:24:03
sample [lwk@qwfys:~]$ mongo -u lanzhou mongodb://vm88.lan/lanzhou MongoDB shell version v4.2.8 Enter password: connecting to: mongodb://vm88.lan:27017/lanzhou?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("491fae27-1060-48ec-b156-69fe9c27d117") } MongoDB server version: 4.2.8 > help db.help() help on db methods db.mycoll.help() help on collection methods sh.help() sharding helpers rs.help() replica set helpers help admin administrative help help connect connecting to a db help help keys key shortcuts help misc misc things to know help mr mapreduce show

Hadoop介绍

坚强是说给别人听的谎言 提交于 2020-08-16 11:27:41
Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台,允许使用简单的编程模型在大量的计算机集群上对大型数据集进行分布式处理。 下面是Hadoop的版本: HDFS (分布式文件系统):解决海量数据存储 YARN (作业调度和集群资源管理的框架):解决资源任务调度 MAPREDUCE (分布式运算编程框架):解决海量数据计算 其中Hadoop2.0版本中多了YARN,更加合理的来解决资源任务调度问题,分解了Hadoop1.0版本中MapRuce的压力。 Hadoop特性优点: 扩容能力: Hadoop是可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中 成本低: Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低 高效率: 通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。 可靠性: 能自动维护数据的多份复制,并且在任务失败后能自动重新部署计算任务,所以Hadoop的按位存储和处理数据的能力值得人们信赖。 来源: oschina 链接: https://my.oschina.net/u/4373202/blog/4320928

编程模型(MapReduce和Graph)

半腔热情 提交于 2020-08-16 08:22:08
MapReduce编程模型 MR基础 最大优点是充分利用了闲置资源,多任务并行,快速得到答案。 拆分-处理-合并 MR框架介绍 MR处理流程 MapReduce(最早由Google提出)是一种分布式数据处理模型;核心过程主要分成2个阶段:Map阶段和Reduce阶段;首先执行Map阶段,再执行Reduce阶段。Map和Reduce阶段的处理逻辑由用户自定义实现,即实现分布式计算。 MR模型的适用场景 搜索:网页爬取、倒排索引,PageRank Web访问日志分析:分析和挖掘用户在web上的访问、购物行为特征,实现个性化推荐;分析用户访问行为。 文本统计分析:例如小说的WordCount,词频TFIDF分析;学术论文、专利文献的饮用分析和统计;维基百科数据分析等。 海量数据挖掘:非结构数据、时空数据、图像数据的挖掘。 机器学习:监督学习、无监督学习、分类算法如决策树、SVM等。 自然语言处理:基于大数据的训练和预测;基于语料库构建单词同现矩阵,频繁项数据挖掘、重复文档检测等。 广告推荐:用户点击(CTR)和购买行为(CVR)预测 MR框架 用户视角看原理 用户视角谈实现 扩展MR MR开发使用流程 1、阿里云官网下载插件、配置开发环境 2、新建java项目,完成MR开发 增加mapper 增加Reducer 增加MR Driver 添加处理逻辑 3、本地测试 准备本地测试数据

1.2Hadooop(分布式计算平台)快速入门篇

允我心安 提交于 2020-08-15 17:28:03
Hadooop( 分布式计算平台 )快速入门 任务目的 重点掌握Hadoop的核心组件 了解Hadoop的发展历史及其生态体系 熟记Hadoop的主要特性 任务清单 任务1:Hadoop简介 任务2:Hadoop产生背景 任务3:Hadoop特性 详细任务步骤 任务1:Hadoop简介 Hadoop 是 Apache 软件基金会旗下的一个 开源的分布式计算平台 。 Hadoop 提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理; 处理什么问题 ? 海量数据的存储和海量数据的分析计算问题 。也就是 Hadoop 的两大核心: HDFS 和 MapReduce 。 Hadoop 的核心组件有: Common (基础组件):(工具包, RPC 框架) JNDI 和 RPC HDFS (Hadoop Distributed File System 分布式文件系统) :HDFS是以分布式进行存储的文件系统,主要负责集群数据的存储与读取。 HDFS 的设计特点*: 1、大数据文件,非常适合上 T 级别的大文件或者一堆大数据文件的存储。 2、文件分块存储, HDFS 会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多。 3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同

谈谈Yarn的日志聚合

你离开我真会死。 提交于 2020-08-15 15:50:20
Yarn中的任务执行完成后,再想查看历史日志一般都查不到了,因为这时候运行任务的Container已经释放了,这种情况我们可以开启Yarn的日志聚合功能。 首先配置yarn-site.xml <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 配置YARN日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <!-- 配置YARN日志聚集目录,默认/tmp/logs --> <property> <name>yarn.nodemanager.remote-app-log-dirs</name> <value>/tmp/logs</value> </property> <property> <name