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

大数据开发工程师需要具备哪些技能知识,大数据开发工程师的工作内容

目录:1.典型需求2.40K以上专家必备技能3.项目中的迷宫场景部件制作4.Hadoop生态核心原理一、典型需求(互联网公司)二、40K以上专家必备技能三


目录:


1 .典型需求


2.40K以上专业人员所需技能


3 .项目中迷宫场景部件创建


4.Hadoop生态系统核心原理


一、典型需求(互联网公司)。


二. 40K以上专业必备技能


三.大多数工作人员的职责分类


四. Hadoop生态核心原理


1 .大数据整体图像


数据流


数据技术


2 .大数据平台整体图片


大数据平台的逻辑划分


数据相关工具、产品与技术:如海量数据采集传输的Sqoop、离线数据处理的Hadoop与Hive、实时流处理的Storm与Spark以及数据分析的r语言等。


数据资产:不仅包括公司业务自身产生沉淀的数据,还包括公司运营产生的数据(如财务、行政)、外带交换、爬虫等数据。


数据管理:虽然有数据工具和数据资产,但必须管理数据,才能为数据带来最大价值,并将风险降至最低。 因此,数据平台还包括数据仓库、数据建模、数据质量、数据规范、数据安全、元数据管理等数据管理方面的概念和技术。 如果你对大数据开发感兴趣,想系统地学习大数据,大数据技术学习交流按钮君羊:522189307


由于数据处理的时效性


)1)离线数据平台。


)2)实时数据平台。


与离线数据平台相关的技术


Hadoop、Hive、数据仓库、ETL、维建模、数据逻辑分层等。


离线数据平台的总体体系结构


3.Hadoop的核心原理


(1)系统概要


Hadoop打开了大数据时代的大门,而大数据的发展也与Hadoop的发展密不可分,从某种意义上说,大数据就是Hadoop。


Hadoop是分析和处理大数据的软件平台,是用Java语言实现的Apache开源软件框架,通过由大量计算机组成的集群实现了大量数据的分布式计算


Hadoop采用MapReduce分布式计算框架,基于GFS原理开发了HDFS (分布式文件系统),基于BigTable原理开发了HBase数据存储系统。


雅虎、脸书、亚马逊,以及国内百度、阿里巴巴等多家互联网公司都在Hadoop的基础上建立了自己的分布式计算系统。


Hadoop是一个基础框架,允许使用简单的编程模型在计算机集群上分布式处理大型数据集。


用户无需了解分布式的基础细节,即可轻松开发和运行Hadoop中处理大量数据的APP应用程序。 凭借低成本、高可靠性、高扩展性、高效率、高容错等特性,hadoop成为最受欢迎的大数据分析系统。


)2) Hadoop生态中最核心的技术


HDFS:Hadoop分布式文件系统。 是Hadoop的核心子项目。


MapReduce :Hadoop的MapReduce是一个简单的软件框架,在此基础上编写的APP应用可以在由数千台商用机器组成的大规模集群上运行,对TB级的数据集进行可靠的容错


hive :构建在Hadoop体系结构上的SQL抽象层次。 数据相关人员不仅要掌握Java等编程语言,具有开发MapReduce程序的能力,还可以使用最熟悉的SQL语言进行大量数据的处理、分析和统计工作。 在HiveSQL时,由SQL解析器解析后,由Hive框架解析为MapReduce可执行计划,根据该计划生成MapReduce任务,传递给Hadoop集群进行处理。


)3) HDFS


文件系统


文件系统是操作系统提供的磁盘空间管理服务,用户只需指定文件的位置和文件的读取路径,而无需用户知道文件存储在磁盘上的方式。 对于我们程序员也是如此。


但是,如果文件需要的空间大于本地磁盘空间,该怎么办?


添加磁盘,但在一定程度上添加会有限制。


添加机器就是通过远程共享目录来提供网络化存储,这可以看作是分布式文件系统的雏形,可以将不同的文件放入不同的机器中,而且空间也变得足够了


传统分布式文件系统---体系结构


传统的分布式文件系统---访问过程


传统分布式文件系统带来的问题


每个存储节点上的负载可能不均衡,而且单机上的负载可能非常高。 例如,如果某个文件是受欢迎的文件,则许多用户会频繁读取该文件,访问该文件所在的计算机会产生很大的压力。


数据不可靠。 如果某个文件所在的机器发生了故障,那就是

么这个文件就不能访问了,甚至会造成数据的丢失。

文件管理困难。如果想把一些文件的存储位置进行调整,就需要查看目标机器的空间是否够用,并且需要管理员维护文件位置,在机器非常多的情况下,这种操作就极为复杂。

HDFS 的基本原理

 

HDFS 的体系结构(一主多从)

 

HDFS 的文件读取

 

HDFS 的文件写入

 

HDFS 异常处理之NameNode

(1) 两个核心文件

FsImage文件:

a.FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据

b.FsImage文件没有记录块存储在哪个数据节点。而是由名称节点把这些映射保留在内存中,这个信息单独在内存中一个区域维护,当数据节点加入HDFS集群时,数据节点会把自己所包含的块列表告知给名 称节点,此后会定期执行这种告知操作,以确保名称节点的块映射是最新的

EditLog文件:

操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作

(2)名称节点的启动

在名称节点启动的时候,它会将FsImage文件中的内容加载到内存中,之后再执行 EditLog文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端的读写操作。

接收所有datanodes上的文件块信息汇报,退出安全模式。

(3)名称节点的问题

名称节点运行期间,HDFS的所有更新操作都是直接写到EditLog中,久而久之,EditLog件将会变得很大,这对名称节点运行没有什么明显影响的,但是,名称节点重启的时候,需要先将FsImage里面的所有内容映像到内存中,然后再一条一条地执行EditLog中的记录,当EditLog文件非常大的时候,会导致名称节点启动操作非常慢,而asjdxfHDFS系统处于安全模式,一直无法对外提供写操作,影响了用户的使用。

名称节点坏掉了。

(4)解决方案之一

 

(5)解决方案之二(Hadoop HA)

 

(6)HDFS 异常处理之DataNode

数据节点出错

每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状态 ,当数据节点发生故障,或者网络发生断网时,名称节点就无法收到来自一些数据节点的心跳信息,这时,这些数据节点就会被标记为“宕机”,节点上面的所有数据都 会被标记为“不可读”,名称节点不会再给它们发送任何I/O请求 这时,有可能出现一种情形,即由于一些数据节点的不可用,会导致一些数据块的 副本数量小于冗余因子 ,名称节点会定期检查这种情况,一旦发现某个数据块的副本数量小于冗余因子,就 会启动数据冗余复制,为它生成新的副本。HDFS和其它分布式文件系统的最大区别就是可以调整冗余数据的位。

 

数据出错

客户端在读取到数据后,会采用md5等对数据块进行校验,以确定读取到正确 的数据 ,如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块 。

 

(7)其他

优点

a.存储非常大的文件

b.采用流式的数据访问方式

c.运行于普通商用机器

d.高容错、高可靠性

不适合的应用场景:

a.低延时的数据访问

b.大量小文件的情况

c.多方读写,需要任意的文件修改

(8)扩展 GFS简介(Google File System)

谈到Hadoop的起源,就不得不提Google的三驾马车:Google FS、MapReduce、BigTable。虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文,奠定了风靡全球的大数据算法的基础!

(9)问题

1、为什么不适用于处理大量小文件?

2、HDFS的Block为什么这么大?

3、读取或者写入文件,如果不调用Close方法关闭文件流会咋样?


推荐阅读
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • HBase客户端Table类中getRpcTimeout方法的应用与编程实例解析 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 全面解析:Hadoop技术栈中的Linux操作系统概览
    全面解析:Hadoop技术栈中的Linux操作系统概览 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
author-avatar
詹建红_335
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有