版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章
大数据技术及实训学习概述大数据技术概述大数据平台架构大数据开发案例实训学习介绍1.1大数据技术概述大数据概念21世纪以来,随着计算机技术,尤其是互联网和移动技术的发展,人们能够获取的数据规模呈爆炸性增长,“大数据”概念应运而生。麦肯锡全球研究院/维基百科定义:大数据(bigdata),是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。《大数据时代》:大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。Gartner机构:“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据研究的先河之作《大数据时代》作者维克托·迈尔-舍恩伯格及肯尼斯·库克耶书中讲述了大数据时代的思维变革、商业变革和管理变革大数据的”4V”特征大数据概念的理解认识大数据,可以从“资源、技术、应用”三个层次来理解:大数据资源:是具有体量大、结构多样、时效强、价值密度低等特征的数据大数据技术:需采用新型计算架构和智能算法等新技术大数据应用:以数据驱动决策、发现新的知识,基于数据、在线闭环的业务流程优化大数据:是新资源、新技术和新应用的综合体大数据新资源新应用新技术大数据技术发展历史“大数据”成为国家发展战略2015年大数据政策、文件陆续出台。2016年2017年中央政治局就实施国家大数据战略进行第二次集体学习。地方政府陆续成立大数据局,着手体制机制建设。2018年2019年大数据融入到人工智能、数字经济、数字治理、个人信息保护等相关政策体系中。数据成为继土地、劳动力、资本、技术之后第五种市场化配置的关键生产要素。2020年2021年“十四五”大数据产业发展规划发布,释放数据要素价值和保障数据安全是产业的发展重点。中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见(数据二十条)数据作为新型生产要素,对土地、劳动力、资本、技术等生产要素具有放大、叠加、倍增作用,正在推动生产方式、生活方式和治理方式深刻变革。2022年中共中央国务院印发《数字中国建设整体布局规划》以“整体”思维,破解“跨”的问题,实现“通”的目标。2023年大数据完成顶层设计,上升为国家战略。大数据技术推动数字经济发展
数字经济是以数据资源为关键生产要素,以现代信息网络为重要载体,以信息通信技术的有效使用作为效率提升和经济结构优化的重要推动力的一系列经济活动。——《数字经济及其核心产业统计分类》大数据技术支撑数字中国建设
数字中国建设取得显著成效数字经济:规模达50.2万亿元RMB,占GDP比重41.5%数据资源:存储规模达724.5EB,占全球数据市场43%安全保障:数据安全、个保法、数据出境安全等发布实施促进全社会数据资源自由有序流通是有效释放数字中国创新活力的核心路径建立数据来源可确认、使用范围可界定、流通过程可追溯、安全风险可防范的数据可信流通体系数据可信流通需要可信数据服务全过程支撑,使数据可信、安全、透明、可计量地参与社会化大生产大数据技术发展走向:数据要素X要素:生产要素指进行社会生产经营活动时所需要的各种社会资源通俗说法:创造商品或服务所需的投入
充分发挥我国海量数据规模和丰富应用场景优势,激活数据要素潜能,做强做优做大数字经济,增强经济发展新动能,构筑国家竞争新优势——《中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见》土地劳动力资本技术数据(首次提出)国家大数据局与“数据要素X”三年行动计划42023年3月10日党的二十届二中全会《党和国家机构改革方案》,提出组建国家数据局。2023年12月31日,国家数据局等17部门联合印发《“数据要素×”三年行动计划(2024—2026年)》,计划2024--2026年发挥数据要素的放大、叠加、倍增作用,构建以数据为关键要素的数字经济,是推动高质量发展的必然要求。为深入贯彻党的二十大和中央经济工作会议精神,落实《中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见》,充分发挥数据要素乘数效应,赋能经济社会发展,特制订本行动计划。
一、激活数据要素潜能实施“数据要素x”行动,就是要发挥我国超大规模市场、海量数据资源、丰富应用场景等多重优势,推动数据要素与劳动力、资本等要素协同,以数据流引领技术流、资金流、人才流、物资流,突破传统资源要素约束,提高全要素生产率;促进数据多场景应用、多主体复用,培育基于数据要素的新产品和新服务,实现知识扩散、价值倍增,开辟经济增长新空间;加快多元数据融合,以数据规模扩张和数据类型丰富,促进生产工具创新升级,催生新产业、新模式,培育经济发展新动能。第一章
大数据技术及实训学习概述计算机学院(国家级示范性软件学院)ehaihong@微信:87837001QQ:3027581960大数据技术概述大数据平台架构大数据开发案例实训学习介绍1.2大数据平台架构大数据平台概述从大数据全生命周期看,大数据从数据源经过分析挖掘到最终获得价值一般需要经过5个主要环节,包括数据采集、数据存储与管理、数据计算处理、数据挖掘分析和数据应用。为了实现大数据全生命周期处理,大数据平台需具备:对各种来源和各种类型的海量数据进行采集的能力提供不同的存储模型以满足不同场景和需求的能力提供多种途径的数据处理和计算手段的能力提供不同方式的数据分析的能力数据可视化并能进行实际应用的能力大数据平台的数据流图大数据平台架构
随着数据的爆炸式增长和大数据技术的快速发展,很多国内外知名互联网企业,如国外的Google、Facebook,国内的阿里巴巴、腾讯等早已开始布局大数据领域,它们构建了自己的大数据平台架构。
根据这些著名公司的大数据平台以及上一小节提到的大数据平台应具有的能力得出,大数据平台架构应具有数据源层、数据采集层、数据存储层、数据处理层、数据分析层以及数据可视化及其应用等六个层次。大数据平台的早期技术实现:Hadoop生态系统由Apache顶级开源项目构成的生态系统,以Hadoop大数据组件为核心,包含了数据采集层、数据存储层、数据处理层、数据分析层的各类开源组件系统Hadoop生态组件的术语解释(部分)组件功能HDFS分布式文件系统MapReduce分布式并行编程模型YARN资源管理和调度器Tez运行在YARN之上的下一代Hadoop查询处理框架HiveHadoop上的数据仓库HBaseHadoop上的非关系型的分布式数据库Pig一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言PigLatinSqoop用于在Hadoop与传统数据库之间进行数据传递OozieHadoop上的工作流管理系统Zookeeper提供分布式协调一致性服务Storm流计算框架Flume一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统AmbariHadoop快速部署工具,支持ApacheHadoop集群的供应、管理和监控Kafka一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据Spark类似于HadoopMapReduce的通用并行框架数据源层数据来源一般为生产系统产生的数据,以及系统运维产生的用户行为数据、日志式的活动数据、事件信息等如电商系统的订单记录、网站的访问日志、移动用户手机上网记录、物联网行为轨迹监控记录等数据源层包括不同类型的数据生产系统数据集成层数据集成也就是数据采集或数据同步,这是大数据价值挖掘第一环,其后的数据处理和分析都建立在数据采集与同步的基础上。大数据的数据来源复杂多样,而且数据格式多样、数据量大。大数据的集成需要实现将多源(来源自不同业务信息系统,甚至是不同机构的信息系统)、异构(例如:结构化的关系型数据库数据、半结构化的网页数据、非结构化的文本数据)、海量数据(可能是几百MB/天,也可能是几十GB/天),同步至集中的大型分布式数据库或者分布式文件存储/对象存储中持久化存储,或者通过持续不断的数据流方式被采集传输到实时数据处理程序中被计算分析。数据集成层数据采集用到的工具有Sqoop、Kafka、Flume、Datahub、DIS等。Flume是一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统,它支持在日志系统中定制各类数据发送方,用于收集数据。Kafka是一个分布式消息系统,主要用于衔接数据生产者(上游数据源)和数据消费者(下游数据处理程序)之间的中间件,作用类似于缓存,采用发布/订阅模式,让数据源上游和数据处理程序下游实现解耦。数据集成层Sqoop主要用于在Hadoop与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导入Hadoop的存储系统中,也可以将HDFS的数据导入关系型数据库中。Datahub是阿里开源的一款数据集成中间件,实现异构数据源的数据传输、转换和同步,支持多种数据源的接入和输出,包括关系型数据库、NoSQL数据库、消息队列、分布式文件系统等,同时支持多种数据格式的转换和映射。DIS(DataIngestionService,数据接入服务)是华为云平台提供的离线和实时数据采集集成服务,可以轻松收集、处理和分发实时流数据,可对接多种第三方数据采集工具,提供丰富的云服务Connector及Agent/SDK,适用于IoT、互联网、媒体等行业的设备监控、实时推荐、日志分析等场景。数据存储层在大数据时代,数据类型复杂多样,其中主要以半结构化和非结构化为主,传统的关系型数据库无法满足这种存储需求因此针对大数据结构复杂多样的特点,可以根据每种数据的存储特点选择最合适的解决方案对非结构化数据采用分布式文件系统进行存储,对结构松散无模式的半结构化数据采用列存储、键值存储或文档存储等NoSQL存储,对海量的结构化数据采用分布式关系型数据库存储数据存储层文件存储有HDFS和GFS等:HDFS是一个分布式文件系统,是Hadoop体系中数据存储管理的基础,GFS是Google研发的一个适用于大规模数据存储的可拓展分布式文件系统。NoSQL存储有列存储HBase、文档存储MongoDB、图存储Neo4j、键值存储Redis等。HBase是一个高可靠、高性能、面向列、可伸缩的动态模式数据库MongoDB是一个可扩展、高性能、模式自由的文档性数据库Neo4j是一个高性能的图形数据库,它使用图相关的概念来描述数据模型,把数据保存为图中的节点以及节点之间的关系Redis是一个支持网络、基于内存、可选持久性的键值存储数据库。关系型存储有Oracle、MySQL等传统数据库Oracle是甲骨文公司推出的一款关系数据库管理系统MySQL是一种开源关系数据库管理系统,具有速度快、灵活性高等优点数据处理层针对不同的场景需求和大数据处理的多样性,产生了适合于:大数据批处理的并行计算框架MapReduce,基于内存计算批处理和微批处理框架Spark,流式计算框架Storm、Flink等以及为这些计算框架提供集群资源管理的Yarn和Mesos、分布式集群协调管理的Zookeeper数据处理层中不同能力的大数据开源组件数据处理层MapReduce是Hadoop体系中的分布式并行计算框架,采用批处理模式(适合离线处理场景需求),实现大规模数据集的并行运算。Spark也是批处理模式的并行计算框架不同于MapReduce,Spark基于内存计算,性能更快Storm是一个极低延迟的流处理框架,是早期实时计算系统的主要方案SparkStreaming是Spark计算框架的流处理组件,采用微批处理的方式,实现了高吞吐量、具备容错机制的实时流数据的处理Flink作为分布式处理流计算引擎,用于对无界和有界数据流进行有状态计算数据处理层Yarn/Mesos开源的集群资源管理组件,负责集群资源的分配,可对多集群中的资源做弹性管理Zookeeper是一个以简化的Paxos协议作为理论基础实现的分布式协调服务系统,它为分布式应用提供高效且可靠的分布式协调一致性服务数据分析层数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现因果关系、内部联系和业务规律,从而提供决策参考由普通X86服务器组成的大规模集群上,实现高性能、海量的数据分析系统,为实际业务提供服务和指导,进而实现数据的最终变现常用的大数据分析工具有Hive、Impala、Kylin,机器学习类库有MLlib和SparkR等数据分析层Hive是一个数据仓库基础构架,主要用来进行数据的提取、转化和加载Impala是Cloudera公司主导开发的MPP架构分布式查询分析系统,允许用户使用标准SQL处理存储在Hadoop中的数据Kylin是一个开源的分布式分析引擎,提供SQL查询接口及多维分析能力以支持超大规模数据的分析处理MLlib是Spark计算框架中常用机器学习算法的实现库SparkR是一个R语言包,它提供了轻量级的方式,使得我们可以在R语言中使用Spark数据可视化及其应用数据可视化技术可以提供更为清晰直观的数据表现形式,将数据和数据之间错综复杂的关系,通过图片、映射关系或表格,以简单、友好、易用的图形化、智能化的形式呈现给用户,供其分析使用。数据可视化及其应用大数据可视化技术与应用发展趋势:增强现实(AR)和虚拟现实(VR)的整合、实时数据可视化技术、人工智能与可视化技术与应用的融合、交互式可视化工具、多模态数据可视化、可视化技术开源与社区发展大数据离线处理架构大数据离线处理主要针对复杂的批量处理场景,通常的时间可能是在数十分钟到数小时大数据离线处理架构偏重点在于处理海量数据的能力大数据实时处理架构大数据实时处理主要针对实时数据流的数据处理(StreamingDataProcessing)场景,通常在数百毫秒到数秒之间在实时推荐、广告系统、业务反作弊和金融风控等场景,都需要强实时性的数据处理性能大数据交互式多维分析架构大数据交互式多维分析主要针对历史数据的交互式查询场景,通常时间在数十秒到数十分钟之间大数据平台的很多应用都需要对大数据处理后的历史数据,根据不同的条件进行多维分析查询并及时返回结果,就是交互式分析大数据可视化应用架构大数据可视化应用一般都是采用JavaWeb技术,开发出前后端应用系统,通过JDBCSQL查询方式或者HTTPRestful接口方式对大数据分析层或大数据处理层的数据进行请求,再通过各种可视化图表技术(如Echarts.js、AntV.js、D3.js等)展示在Web界面大数据工程学习技能树(脑图)大数据开发的基础技术体系大数据工程开发从系统搭建上与传统的Web开发类似,都需要基于前后端开发技术进行Web系统搭建,集成各种大数据生态工具组件,实现对海量数据的采集、存储、处理、分析和可视化应用企业级Web系统开发的主流语言,以及大部分开源大数据组件都是使用Java语言开发的,比如Hadoop、Zookeeper、Hive、HBASE、Flume、Sqoop、Flink等,Java语言是大数据系统开发的主流语言在数据处理层和数据分析层,因为结构化数据分析SQL语言的多方面优势,SQL的使用十分频繁从非结构化数据的清洗加工、机器学习包括深度学习模型算法的调用,Python语言因为其强大而丰富的函数包以及机器学习(深度学习)模型生态,是数据分析挖掘的主要语言从构建完整的Web系统,除了Java后端以外,还需要界面友好美观的Web前端,因此要想完整交付大数据应用系统,还需要掌握HTML5、CSS3、JavaScript前端开发语言,以及前端工程化开发框架(主流包括Vue、React、Angular等)、前端开展组件库ElementUI、前端可视化JS库(主流包括Echarts、AntV、D3、DataV等)大数据平台建设和运营团队构成在行业大数据平台的建设和运营中,包括基础平台团队:主要负责搭建稳定、可靠的大数据存储和计算平台。数据开发团队:主要负责数据的清洗、加工、分类和管理等工作,构建企业的数据中心:为上层数据应用提供可靠的数据。数据分析团队:主要是数据挖掘与机器学习技术与业务专家知识的结合,为画像、推荐、广告计算、风控等提供算法支撑。数据产品团队:主要负责为改善产品体验设计和商业决策提供数据支持。其中基础平台团队和数据开发团队从事的主要是大数据工程开发,可以统称为大数据工程师大数据工程师可以进一步细分为:数据平台工程师、引擎开发工程师、运维工程师
运维工程师负责大数据平台的日常运维工作引擎开发工程师负责引擎搭建、调优、维护和升级等工作数据平台工程师负责大数据平台系统的开发维护大数据应用开发技术体系大数据采集传输技术(如:Flume、Kafka等)大数据处理技术(如:Spark、Flink等)大数据存储技术(如:关系型数据库MySQL、NoSQL数据库HBase、数据仓库Hive等)大数据查询分析技术(如:Clickhouse等)大数据可视化应用技术(如:前端开发框架Vue、可视化JS库Echarts/AntV/D3等)大数据应用开发任务分层示意围绕大数据应用开发各层任务可知,大数据工程师在基础开发技术之上,还需要掌握:大数据开发案例实训学习介绍主讲人:中移动信息技术有限公司
李迪扬实训平台介绍1实训开发案例介绍2中国移动梧桐大数据实训平台2023年《全球数字经济白皮书》指出:全球数字经济战略布局新动向的特点是包容性发展政策不断丰富,数字创业与数字素养培育成为重点。全球主要国家形成以中小企业和初创企业市场能力培养、以数字素养和技能养成为抓手的包容性发展政策,助力进一步在全球范围内缩小数字鸿沟加速实现可持续发展目标。集数据、资源、工具、运维、安全等服务为一体的大数据能力开放平台打造以5G、算力网络、能力中台为重点的新型信息基础设施创新构建“连接+算力+能力”新型信息服务体系中国移动梧桐大数据实训平台2023年5月25日,工业和信息化部新闻宣传中心(人民邮电报社)与山东省通信管理局共同主办的第十七届(2023)中国信息港论坛暨首届数字化转型高峰论坛,在山东青岛召开。由中国移动信息技术中心申报的《中国移动梧桐大数据开放平台》成功入选2023年中国数字化转型优秀案例。数字化转型中国移动梧桐大数据实训平台数据源数据源包括公共数据和私有数据,数据存放在平台的Hadoop上。提供一体化,低门槛拖拽式数据编排能力,涵盖数据集成、批、流处理、建模存储、策略编排等各个环节。数据挖掘集成JupyterNotebook,响应式自由开发,实现数据挖掘模型。连接抽取分组数据加工数据开发编排加载数据集训练任务Notebook数据变现数据全流程工具链:平台四大核心支撑:平台资源充足:上万台高性能配置x86服务器且采用云化部署,覆盖Hadoop、MPP、关系型数据库、容器、虚拟机、物理机等储算资源;数据资产丰富:数百PB数据资产,汇聚移动全网、全域(B/M/O)优质数据资源,且数据标签完备;工具组件多样:提供大数据计算、数据管理、数据开发等10大类多种组件工具服务,满足多场景大数据应用开发需求;专业服务支撑:配备专职运营、运维、安全服务团队,提供实时运维监控和故障快速响应服务。数据管理工具数据资产中预置了中国移动客户洞察、DPI上网及位置数据等四类近100个数据集。平台提供SQL编辑器,可帮助用户基于SQL语句进行数据分析。数据编排工具-数据流
数据编排通过对数据进行一系列处理,得到用户需要的数据。数据流经历三个阶段:抽取、转换、加载。如图所示,数据流主要负责对数据集进行抽取、清洗、稽核、装载等处理过程,其多个任务之间传递的是数据集。数据编排工具-算子介绍
目前数据编排工具具备三大类共31个算子,满足用户基本的数据处理需求:(1)抽取:数据的抽取是从各个不同的数据源抽取到ODS(OperationalDataStore,操作型数据存储)中,在抽取的过程中可以挑选不同的抽取方法。(2)转换:数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。(3)加载:数据的加载一般在数据清洗完了之后直接写入DW(DataWarehousing,数据仓库)中。数据编排工具-抽取算子注意配置分隔符,比赛数据分隔符为€€输出列支持基于表达式进行一些特殊值处理数据源选择活动指定的数据源选择对应的物理模型会自动回填对应的文件路径和文件名数据编排工具-过滤算子编辑过滤表达式表达式包括(1)有效的字段(2)系统函数使用函数返回值为最终过滤条件的表达式,只能选择返回值为布尔类型的函数。选择过滤结果的输出字段。过滤算子用于对数据集根据函数表达式进行过滤。输出的是满足过滤条件的记录。数据编排工具-分组算子分组节点用于对数据进行分组和汇总。选择分组字段,相当于SQL语句中的Groupby字段点击“编辑表达式”进行统计表达式编辑。根据需要,通过点击“增加”按钮,增加相应的统计字段只能使用系统提供的各种运算函数。数据编排工具-连接算子点击“新增映射”配置关联字段,多个字段点击多次即可。在参数配置中配置具体的输出字段信息,非主数据源所有输出字段默认为“否”,需要根据需要手动进行修改。当输出方式为“所有记录”时,不做任何处理,如选择“输出前”或者“输出后”,则输出结果会根据设置进行输出。根据需要选择连接类型连接节点用于将两个数据集按字段进行连接。系统将从两个源数据集中按关键字段查找,并根据连接类型输出字段。数据编排工具-转换算子转换算子用于对输入文件或数据集中的一个字段或多个字段进行表达式计算。如果不需要处理直接保持“原有字段输出”点击“增加”可以新增新的字段需要对字段进行处理时需要选择“表达式计算”通过选择是否输出来配置字段是否会输出到下一个节点对字段的处理都在转换节点中完成数据编排工具-加载算子将处理后的数据加载到Hadoop集群。注意配置分隔符数据源选择活动指定的数据源(同HDFS抽取)配置输出文件路径和名称,由活动指定如果使用ASCII扩展字符作为分隔符需要选否数据编排工具-在线调测在线调测帮助用户对完成编排的数据流进行测试执行,运行配置的数据流进行数据加工。调测的过程中支持对算子所在的某一条分支进行在线调测,也支持对算子添加断点进行调测。调测时,会显示日志信息,选中算子时,可以预览当前选中算子的输入输出信息。点击【在线调测】按钮进入到在线调测页面针对数据流分支或者算子,点击【执行】按钮,等待流程执行完成,并根据下方的日志信息来进行调测数据挖掘工具挖掘工具集成了Notebook(交互式建模工具),并在此基础上提供了丰富的接口。对于具备编程能力,且对数据分析、算法等专业技术有深入了解的用户,可通过Notebook灵活定制模型。平台提供了数据集功能,支持用户创建数据集上传自己的私有数据。挖掘工具内置的数据挖掘算法包数据挖掘工具JupyterLabNotebook是一款功能强大的交互式计算环境,支持多种编程语言。它提供了一个统一的界面,集成了文本编辑、代码控制、数据可视化、交互式输出等多种功能。用户可以通过JupyterLabNotebook轻松地创建、共享和重现计算结果,支持Markdown等标记语言,方便用户进行数据分析和文档撰写文件系统,可操作当前Notebook的文件当前运行的xx.ipynb,可以进行关闭操作数据集,可上传私有数据支持上传本地代码实训平台介绍1实训开发案例介绍2案例说明。背景:智慧金融场景,通过大数据从普通用户中识别出“羊毛党”群体,从而提前进行防范。案例说明:提供案例数据,通过生态合作平台的数据编排工具完成数据准备,使用生态平台的数据挖掘工具进行AI模型数据挖掘识别出“羊毛党”用户。(2月份数据训练,预测4月份是否“羊毛党”。)预测数据通过“羊毛党”模型预测4月份潜在“羊毛党”用户清单。使用训练数据和机器学习算法训练出“羊毛党”识别AI模型。。已确定2月是“羊毛党”的用户清单。用户的基本信息,不随数据周期变化。用户行为月表包括四个月(1~4月)的用户行为数据。案例数据生态合作平台数据准备用户4月份的数据宽表,包括行为、基本信息。用户2月份的数据宽表,包括行为、基本信息和标签数据。数据挖掘用户行为表用户信息表标签列表训练数据集预测数据模型训练模型预测案例分析案例数据分析特征宽表设计特征宽表实现数据集准备AI模型训练AI模型评估AI模型推理业务流程数据挖掘工具Notebook:进行模型训练和模型推理相关代码开发工作。数据集管理:上传和管理模型训练用的其他数据。训练任务:离线执行模型训练和推理任务,可查看任务详情。数据编排工具批数据编排:在数据流中以拖拉拽的方式进行数据编排实现。在线调测:执行在线调测完成数据处理过程,支持断点和分支调测。数据管理工具数据资产编目:设计的特征宽表可保存为数据资产。数据资产可视化:基于可视化的数据资产进行数据分析。工具支撑数据准备数据挖掘案例实现。创建工程流程编排调测数据流1.创建工程工程作为基本管理单元可进行编排开发和数据模型管理。2.流程编排通过图形化托拉拽的方式进行数据加工,操作简单,门槛低,无编码能力要求。3.在线调测数据流执行数据加工过程,可根据实际需要进行分支调测和断点调测。灵活的调测方式,调测过程可视案例的数据编排实现输出预测数据集。输出训练数据集。抽取标签数据。连接用户行为数据和基础信息数据。抽取用户行为数据。抽取用户基础信息数据。数据类型转换和特殊值处理。按1`2月份过滤训练数据。按3`4月份过滤预测数据。预测数据处理过程,包括衍生字段设计等。训练数据处理过程,包括衍生字段设计等。训练数据关联标签。工程图形化呈现,支持权限管理案例实现。创建项目创建数据集Notebook模型作业1.创建项目项目可对数据集、Notebook和训练作业进行统一管理。2.创建数据集支撑上传数据,可进行数据预览和管理。4.模型作业支持按需配置资源,离线进行模型训练和推理的调度任务,可查看历史任务。3.基于Notebook进行模型训练和推理响应交互式开发,提供AutoML自动化机器学习的能力。数据集:可视化数据项目:管理数据集、Notebook和训练作业训练作业:离线训练,查看历史任务Notebook开发页面-案例实现从HDFS读数据。模型训练过程。特征工程。模型预测和结果输出。机器学习过程案例notebook在体验租户,需要切换到体验租户。案例notebook,如果状态已停止需要点击右侧启动按钮
谢谢!第二章
大数据离线处理开发实践1.大数据离线批处理技术栈2.分布式文件系统HDFS3.分布式计算框架MapReduce4.分布式资源管理组件YARN5.分布式内存计算框架Spark6.金融行业“羊毛党”识别案例实践2.1大数据离线批处理技术栈大数据离线批处理应用场景大部分企业早期建设的大数据系统一般均用于面向海量数据的离线批处理场景组合使用了Hadoop的HDFS、MapReduce、Hive、Pig、HBase、Mahout,来满足对海量数据离线处理的不同业务需求面向经营分析报表计算场景的大数据系统架构图(早期)早期离线批处理技术架构大数据离线批处理技术栈演进(1/3)初期大数据离线批处理是以Hadoop体系中的MapReduce为核心,采用批处理模式,以此满足离线处理场景需求,实现大规模数据集的并行运算狭义的Hadoop生态包括HadoopCommon、HDFS、MapReduce和YARN等广义的Hadoop生态包括ZooKeeper、Hive、HBase等它们共同构成了初期大数据离线批处理方案基于MapReduce的离线批处理方案基于MapReduce的离线批处理方案大数据离线批处理技术栈演进(2/3)基于内存计算的Spark框架,支持有向无环图(DirectedAcyclicGraph,DAG)的分布式并行计算的编程框架,因为减少了迭代过程中的数据落地,提高了数据处理效率Spark提供多种数据集操作,包括转换操作map、filter、flatmap、sample、groupByKey、reduceByKey、union、join、cogroup、mapvalues、sort和partionby等;以及行动操作包括collect、reduce、lookup和save等。用户可以命名实体、物化计算结果,控制各个处理节点之间中间结果的存储、分区等基于Spark框架的离线批处理方案基于Spark的离线批处理方案大数据离线批处理技术栈演进(3/3)Flink因其能够支持流处理和批处理两种解决方案,而逐渐取代MapReduce与Spark在Hadoop生态中的地位Flink与传统流处理和批处理的解决方案不同,它将流处理看成无界输入数据的任务,而将批处理看成有界输入数据的任务,然后将二者统一起来,形成一个以任务为驱动的双模式处理框架基于Flink框架的流计算与批处理计算的双模式方案基于Flink的流计算与批处理计算的双模式方案第二章
大数据离线处理开发实践1.大数据离线批处理技术栈2.分布式文件系统HDFS3.分布式计算框架MapReduce4.分布式资源管理组件YARN5.分布式内存计算框架Spark6.金融行业“羊毛党”识别案例实践2.2分布式文件系统HDFS大数据时代,对存储系统提供更高要求大容量高效率高可用海量数据存储的扩容方案应对数据存储扩容问题,存在两种方案:纵向扩展(scale-up)和横向扩展(scale-out)纵向扩展:通过增加单个服务器的处理能力来提高系统的性能和容量,包括增加服务器的CPU、内存、存储容量等硬件资源,或者升级现有的硬件组件横向扩展:通过增加更多的服务器节点来提高系统的性能和容量,将负载分散到多个服务器上,以实现更高的可伸缩性纵向扩展VS横向扩展纵向扩展的优势:简单,不涉及修改应用程序或重新设计系统架构,只需升级硬件即可提高系统性能和容量纵向扩展的局限:价格昂贵、升级困难以及单台设备物理瓶颈等问题横向扩展的优势:通过增加服务器节点来线性地扩展系统的性能和容量;数据可以复制到多个节点上,可以提高系统的可用性和容错能力横向扩展的挑战:需要重新设计应用程序或系统架构,以支持分布式计算和存储,提出了更高的复杂性、研发投入什么是分布式存储/云存储?云存储CloudStorage卡口平台视频监控平台图像资源数据库统一数据平台智能应用系统高可用性海量存储高性能统一访问空间高可靠性弹性伸缩分布式存储/云存储采用了横向扩展,通过增加更多的服务器节点来提高系统的性能和容量用户按需使用存储资源,无需关心存储设备在何处,如何构建例如在视频监控领域,云存储作为基础资源,为各种视频类业务系统提供存储服务以城市大脑、智慧城市场景为例…什么是分布式存储/云存储?白色小型车沪FW6461逆行闯红灯红色上衣红色小型车人员聚集告警人脸抓拍图片黄色衬衫行车轨迹北纬31°.3′东经120°.6′移动警务图像资源信息库车牌信息数据库移动警务人员信息数据库移动警务面对蜂拥而来的海量数据,有哪些挑战和难题?海量数据存储,如何统一管理和统一调度数以万计的监控点,存储容量已经达到PB级别除视频监控数据外,各类应用系统的数据也需进行融合智能分析抽离出的图片、文字、摘要视频等,数据种类多种多样存储设备300路高清存储设备200路高清存储设备100路高清单台最大并发处理能力升级CPU升级内存面对蜂拥而来的海量数据,有哪些挑战和难题?大容量并发读写,设备性能成为瓶颈在并发读写时,存储设备的性能瓶颈在控制器或CPU处理能力上。为提升并发处理能力,必须不断的进行硬件升级。硬盘存储设备硬盘硬盘硬盘硬盘硬盘硬盘硬盘热备硬盘硬盘硬盘RAID硬盘硬盘硬盘存储设备3存储设备2存储设备1故障故障容量达到“PB”级别,维护就成为最大的难题面对蜂拥而来的海量数据,有哪些挑战和难题?设备故障须及时修复,维护成本激增某块硬盘发生故障时,例如RAID5,只允许设备中有一块硬盘失效。而RAID恢复时间往往需要十几个小时,期间再坏盘,就无法恢复了。因此,需要立即更换或修复故障硬盘。某台设备发生故障时,虽可以用负载均衡技术分担给其它设备,但需要立即更换或修复故障设备,否则存储于其中的数据无法读取。NAS存储设备NAS存储设备NAS存储设备卡口平台监控平台IPSAN存储设备IPSAN存储设备IPSAN存储设备图像资源数据库NAS集群存储设备NAS集群存储设备NAS集群存储设备NetworkAttachedStorage网络附属存储StorageAreaNetwork存储区域网络面对蜂拥而来的海量数据,有哪些挑战和难题?不同的应用系统间数据难以融合各个应用系统,都建设独立的一套存储调度系统,可移植性和重复利用率较差。而且,不同的应用系统需要各种类型的存储系统,NAS、IPSAN或集群NAS,难以融合。分布式存储/云存储应运而生……如何解决些难题?海量数据存储,如何统一管理和统一调度大容量并发读写,设备性能成为瓶颈设备故障须及时修复,维护成本激增不同的应用系统间数据难以融合难题的解决之道海量数据存储,如何统一管理和统一调度②大容量并发读写,设备性能成为瓶颈④不同的应用系统间数据难以融合③设备故障须及时修复,维护成本激增提供分布式文件系统,数据调度与存储分离②将单打独斗升级为团队作战③由及时维护转变为定期维护④将各种数据融合,提供统一接口存储节点存储节点存储节点存储节点控制节点控制节点控制节点注:元数据(metadata),包括文件目录组织、属性维护、访问控制信息、文件操作日志记录、文件到块的映射信息、块当前所在的位置等。分布式存储/云存储的系统架构云存储的系统架构,分为“控制节点”和“存储节点”两个部分控制节点采用集群架构,存储元数据,对存储节点进行调度存储节点对数据进行分布式存储,可进行复制或者RAID备份数据控制节点控制节点控制节点存储节点存储节点存储节点存储节点网络业务系统申请调度调度备份同步云存储系统34121234云存储的工作流程业务系统向控制节点申请存储资源,控制节点回复调度信息数据经由网络,到达存储节点进行分布式存储控制节点与存储节点间同步调度与存储信息控制节点间进行元数据同步备份存储节点的数据进行复制或RAID备份存储节点存储节点存储节点存储节点存储节点123485679控制节点控制节点控制节点123485679增加存储节点,数据自动重组减少存储节点,数据自动恢复647海量存储,弹性伸缩相比传统的存储设备,云存储可支持的存储节点数以千计,支持的容量达百PB级别,并可弹性伸缩,无缝扩展。存储节点存储节点存储节点存储节点存储节点控制节点控制节点控制节点数据流不经过控制节点千兆交换网络万兆交换网络高并发读写性能,摆脱单台设备能力束缚传统的存储设备并发读写性能,受到NAS机头、CPU或控制器的能力限制,而云存储系统采用控制与数据分离的架构,脱离了单台设备的能力束缚,整个系统的性能主要受到网络吞吐能力的限制。存储设备300路高清已经撑不住了毫无压力30000路高清云存储高并发读写性能,摆脱单台设备能力束缚传统的存储设备并发读写性能,受到NAS机头、CPU或控制器的能力限制,而云存储系统采用控制与数据分离的架构,脱离了单台设备的能力束缚,整个系统的性能主要受到网络吞吐能力的限制。控制节点控制节点控制节点工作节点备份节点备份节点高可靠,系统业务不中断云存储系统的控制节点采用集群架构,单点发生故障时,可无缝切换,系统业务不会中断。控制节点控制节点控制节点存储节点存储节点存储节点存储节点存储节点业务系统1业务系统2业务系统3业务系统4统一访问入口,多用户并行访问云存储可为多个业务系统同时提供服务,内部架构对其透明,提供统一的访问入口,利于数据共享与融合。云存储的特点-高可用,由及时维护变为定期维护云存储系统摆脱单台束缚,采用数据冗余存储机制,硬盘或存储节点损坏时,其余节点可自动重组,数据不丢失,系统运行不受影响。一个月后…云存储的特点-高可用,由及时维护变为定期维护维护人员仅需定期检查受损硬盘或节点,更换或修复即可。HadoopDistributedFileSystem,HDFSHDFS是Hadoop的分布式文件系统HDFS旨在存储海量数据并提供高吞吐量的数据访问HDFS设计用来在大规模计算机集群上运行,具有高容错性和高可用性HDFS可以运行在低廉的设备组成的集群上,通过流式数据访问的方式进行超大文件存储的分布式文件(存储管理)系统HDFS与现在已有的分布式文件系统相似,能够运行在通用的机器设备上,但是也存在一些不同HDFS以流的方式访问文件数据,用高吞吐量进行应用程序的数据访问,这使得它能够应对海量数据集的应用程序部署了HDFS和MapReduce的集群架构HDFS集群架构分布式文件存储系统HDFS与分布式并行计算框架MapReduce共同构成了Hadoop大数据处理系统,在部署安装时两个组件共同部署成主从(Master/Slave)架构HDFS集群主要由NameNode,DataNode,SecondaryNameNode构成MapReduce则包括JobTracker,TaskTracker组成由于分布式存储的性质,在HDFS集群由一个NameNode和若干DataNode构成NameNode(名称节点)是用来管理文件系统的命名空间,又叫元数据节点DataNode(数据节点)是用来存储实际的数据这两类节点分别承担Master和Worker具体任务的执行节点HDFS的结构分布式文件系统在物理结构上是由计算机集群中的多个节点构成节点分为两类:一类叫“主节点”(MasterNode)或者也被称为“名称结点”(NameNode)另一类叫“从节点”(SlaveNode)或者也被称为“数据节点”(DataNode)BlockStorage:Block分布在各个DataNode中HDFS的NameSpace命名空间管理和Block块管理HDFS核心NameSpace管理和BlockStorage块存储NameSpace支持创建、删除、修改、列举命名空间相关系统的操作NameSpace命名空间以层次结构组织,存储着文件名和BlockID的对应关系、BlockID和具体Block位置的对应关系BlockStorageblockManagement:块的管理,在NameNode中,维护块的位置信息创建,修改,删除,查询块管理副本和副本位置名称节点和数据节点NameNode存储元数据元数据保存在内存中存储文件、block、datanode之间的映射关系DataNode存储文件内容文件内容保存在磁盘维护了blockid到datanode本地文件的映射关系磁盘的物理Block块是磁盘操作最小的单元,读写操作均以Block为最小单元,一般为512Byte文件系统在物理Block之上抽象了另一层概念,文件系统Block物理磁盘Block的整数倍,通常为几KBHDFS的Block块比一般单机文件系统大得多,默认为64M(从2.7.3版本开始,由默认64MB变成128MB)Block块File.txt=BlkA;DN1,DN5,DN6BlkB;DN7,DN1,DN2BlkC;DN5,DN8,DN9metadateNameNode负责:文件元数据信息的操作(对整个文件系统的命名空间进行管理)以及处理客户端的请求(对外界的文件访问请求进行处理)将所有的文件和文件夹的元数据保存在一个文件系统树中NameNode也负责向DataNode分配数据块并建立数据块和DataNode的对应关系NameNodeNameNodeNameNode维护:文件系统树(FileSystem)以及文件树中所有的文件和文件夹的元数据信息(Metadata)NameNode维护了文件与数据块的映射表以及数据块与数据节点的映射表一个文件,它切分成了几个数据块,以及这些数据块分别存储在哪些DataNode上,NameNode都要知晓会NameNode文件:NameSpace镜像文件(FsImage),操作日志文件(EditLog)这些信息被Cache在RAM内存中,这两个文件也会被持久化存储在本地硬盘NameNode并不永久保存块的位置信息,而是在系统启动时由数据节点重建从DataNode数据节点重建:在NameNode启动时,DataNode向NameNode进行注册时发送给NameNodeNameNode文件:fsimage与editlogfsimage保存了最新的元数据检查点,包含了整个HDFS文件系统的所有目录和文件的信息。对于文件:包括了数据块描述信息、修改时间、访问时间等;对于目录:包括修改时间、访问权限控制信息(目录所属用户,所在组)等;fsimage就是在某一时刻,整个HDFS的快照,就是这个时刻HDFS上:所有的文件块和目录,分别的状态,位于哪些个DataNode,各自的权限,各自的副本个数。editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中Editlog记录客户端对HDFS所有的更新操作,比如说移动数据,或者删除数据DataNode从服务器DataNode是文件系统的工作节点,同时也是文件存储的基本单元DataNode将block存储在本地文件系统中,保存了block的Meta-data,同时周期性地将所有存在的block信息发送给NameNodeBlock是用来存储数据的最小单元,通常一个文件会存储在一个或者多个Block中,默认Block大小为64MB每个DataNode会周期性的向Namenode发送心跳消息,报告自己所在DataNode的使用状态DataNode块放置策略当将新块写入HDFS时,文件数据块到底存放到哪些DataNode上,是由NameNode决定的,NN根据全局情况做出放置副本的决定HDFS常见的块放置策略:默认策略(Rack-awareplacement):HDFS的默认块放置策略是“机架感知”,即尽可能将数据块存储在不同的机架上,以提高数据的容错性;在这种策略下,HDFS会将数据块的多个副本存储在不同的机架上的不同数据节点上,以确保一旦某个机架发生故障,数据仍然可用节点偏好策略(Node-localplacement):节点偏好策略是指将数据块存储在与客户端距离最近的数据节点上;这种策略利用数据局部性原理,尽量减少数据传输的跨网络开销,提高数据读取和写入的性能机架偏好策略(Rack-localplacement):机架偏好策略是指将数据块存储在与客户端所在机架相同的机架上;虽然不如节点偏好策略那样局部,但它仍然可以减少数据传输的跨机架开销,提高数据访问的性能排除节点策略(Excludingnodes):这种策略用于排除一些特定的数据节点,不将数据块存储在这些节点上;这种策略可能用于一些特殊的情况,如节点出现故障或者需要维护的情况下心跳机制是HDFS保证数据可靠性、系统稳定性和高效管理集群资源的关键HDFS通过心跳,动态地监控和管理整个集群的状态,及时响应节点故障从而保证数据存储的高可用性和系统的稳定运行HDFS的心跳机制心跳机制的作用状态检查:心跳信号是DataNode向NameNode定期发送的信号,以表明它们是活跃的并正常工作。如果NameNode在配置的时间间隔内没有收到某个DataNode的心跳,它会认为该DataNode不可用。集群管理:通过心跳,NameNode能够监控集群中所有DataNode的状态,从而可以有效地管理数据的副本,确保数据的高可用性和容错性。任务分配:心跳机制也用于任务分配。NameNode根据接收到的心跳信息了解每个DataNode的负载情况,并据此做出决策,将任务分配给相对空闲的节点。心跳机制的工作流程定期发送:每个DataNode都配置有向NameNode发送心跳的时间间隔。默认间隔是3秒超时检测:NameNode有一个配置的超时时间,如果在这个时间段内没有收到某个DataNode的心跳,NameNode会将这个DataNode标记为失效。默认超时时间是配置心跳间隔时间的几倍,例如10分钟。资源重新分配:一旦DataNode被判定为失效,NameNode会开始重新分配该节点上的数据副本任务,确保每个数据块都有足够的副本存在于其他DataNode上。NameNode架构的局限性Namespace(命名空间)的限制由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的堆内存heapsize的限制隔离的问题由于HDFS仅有一个NameNode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序性能的瓶颈由于是单个NameNode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量Hadoop1.x中的NameNode容错机制存储在NameNode节点的元数据,因为经常需要进行随机访问,还有响应客户请求,需要存放在内存中,响应效率才会高但如果只存在内存中,一旦元数据丢失(如断电),整个集群就无法工作了;因此产生在磁盘中备份元数据的fsImage但当在内存中的元数据更新时,如果同时更新fsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦NameNode节点断电,就会产生数据丢失。因此引入Edits文件(只进行追加操作,效率很高)每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到editlog中一旦NameNode节点断电,可以通过FsImage和editlog的合并,合成元数据但如果长时间添加数据到editlog中,会导致该文件数据过大,效率降低,而且一旦断电,恢复元数据需要的时间过长。因此需要定期进行FsImage和editlog的合并,如果这个操作由NameNode节点完成,又会效率过低。所以Hadoop演进中引入一个新的节点SecondaryNamenode,专门用于FsImage和editlog的合并SecondaryNamenode作用:定期将Namespace镜像FsImage与操作日志文件(EditLog)合并SecondaryNamenode并不能被用作NamenodeSecondaryNamenode通常运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存SecondaryNameNode工作流程定期执行检查点(Checkpointing):SecondaryNameNode定期向NameNode请求当前的EditLog,并将其拷贝到自己的本地存储中。合并EditLog和FsImage:SecondaryNameNode加载最近的FsImage到内存中,然后应用从NameNode拷贝过来的EditLog,将所有的更改合并到FsImage。生成一个新的、更新的FsImage。将更新的FsImage传回NameNode:一旦SecondaryNameNode完成了EditLog的合并,它会将新的FsImage发送回NameNode。NameNode用这个新的FsImage替换旧的FsImage和EditLog,从而减少了系统的启动时间并减轻了NameNode的负担。重置EditLog:完成上述步骤后,EditLog在NameNode上被重置,开始记录新的文件系统更改。NameNode在启动时就只需要加载之前未合并的EditLog和FsImage即可SecondaryNamenode简化步骤第一步:将hdfs更新记录写入一个新的文件edits.new第二步:将fsimage和editlog通过http协议发送至SecondaryNameNode第三步:在SecondaryNameNode中将fsimage与editlog合并,生成一个新的文件—fsimage.ckpt第四步:将生成的fsimage.ckpt通过http协议发送至namenode第五步:重命名fsimage.ckpt为fsimage,edits.new为editsHDFS2.0的HA架构由于SNN(SecondaryNamenode)无法提供“热备份”功能,在NN发生故障时,无法立即切换到SNN对外提供服务,仍需要停机恢复HDFS2.0采用了HA(HighAvailability,高可用)架构,设置两个NameNode,其中一个处于“活跃(Active)”状态,另一个处于“待命(Standby)”状态处于Active状态的NameNode负责对外处理所有客户端的请求处于Standby状态的NameNode作为热备份节点,保存了足够多的元数据,在Active节点发生故障时,立即切换到活跃状态对外提供服务ActiveNN与StandbyNN状态同步ActiveNN的状态信息必须实时同步到StandbyNN,针对状态同步,可以借助一个共享存储系统来实现,如NFS(NetworkFileSystem)、QJM(QuorumJournalManager)或者ZookeeperHDFS联邦架构虽然HDFSHA解决了“单点故障”问题,但是正常工作时仍然是一个NN工作,仍然存在问题:系统扩展性方面,元数据存储在NN内存中,受内存上限的制约。整体性能方面,吞吐量受单个NN的影响。隔离性方面,一个程序可能会影响其他运行的程序,如一个程序消耗过多资源导致其他程序无法顺利运行。HDFSHA本质上还是单名称节点在HDFS联邦架构中,设计了多个相互独立的NN,使得HDFS的命名服务能够水平扩展,这些NN分别进行各自命名空间和块的管理,不需要彼此协调每个DN要向集群中所有的NN注册,并周期性的发送心跳信息和块信息,报告自己的状态Blockpool(块池)就是属于单个命名空间的一组block(块)每一个DN为所有的blockpool存储块DN是一个物理概念,而blockpool是一个重新将block划分的逻辑概念HDFSFederation联邦架构HDFS联邦拥有多个独立的命名空间NS,其中,每一个命名空间NS管理属于自己的一组块,这些属于同一个命名空间的块组成一个“块池”BlockPool。一个BlockPool由属于同一个NS的数据块组成,每个BlockPool内部自治,各自管理各自的block,不会与其他blockpool交流NN和BlockPool一起被称作NSvolume,它是管理的基本单位当一个NS被删除后,所有DN上与其对应的blockpool也会被删除每个DN会为多个块池提供块的存储,块池中的各个块实际上是存储在不同DN中的Hadoop2.X中有两个重要的变更:(1)HDFS的NameNode可以以集群的方式布署,增强了NameNodes的水平扩展能力和高可用性,分别是:HDFSFederation与HA(2)MapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARN(YetAnotherResourceNegotiator)HDFSFederation+HA架构HDFS的高可用HA+HDFSFederation联邦,形成HDFS2.x的架构HDFS写入数据流程客户端通过调用FileSystem对象的create()来创建文件;客户端发起文件写入请求,通过RPC与NN建立通讯;NN检查目标文件,返回是否可以上传client请求第一个block该传输到哪些DataNode服务器上NN根据配置文件中指定的备份数量及机架感知原理进行文件分配,返回可用的DN的地址Client端和NN分配的多个DN构成pipeline管道Client调用FSDataOutputStream的write方法往pipeline管道里写大小为64K的packet数据,packet数据通过pipeline管道不断流向对应的DN节点上进行存储当一个block块写入完成之后,客户端继续向NN获取下一个block块的位置信息,继续写入当把所有块写入完成后,Client调用FSDataOutputStream.close()方法,关闭输出流最后调用FileSplete()方法,告诉NN节点写入成功HDFS读取数据流程客户端通过调用FileSystem对象的open()来读取希望打开的文件客户端向NN发起RPC请求,来确定请求文件block所在的位置NN会视情况返回文件的部分或者全部block列表,对于每个block,NN都会返回含有该block副本的DN地址;这些返回的DN地址,会按照集群拓扑结构得出DN与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离Client近的排靠前;心跳机制中超时汇报的DN的排靠后Client调用FSDataInputStream的read方法读取数据,进行读取数据的的Client选取排序靠前的DN来读取block,如果客户端本身就是DN,那么将从本地直接获取数据(短路读取特性)当读完一批block块后,若文件读取还没结束,客户端会继续向NN获取下一批的block列表,继续读取所有block块读取完成后,Client调用FSDataInputStream.close()方法,关闭输入流,并将读取来所有的block块合并成一个完整的最终文件HDFS的优点高容错性数据自动保存多个副本;通过增加副本的形式,提高容错性某一个副本丢失以后,可以自动恢复,这是由HDFS内部机制实现的适合批处计算向数据移动数据位置暴露给计算框架适合大数据处理处理数据达到GB、TB、甚至PB级别的数据能够处理百万规模以上的文件数量能够处理10K节点的规模流式文件访问一次写入,多次读取;文件一旦写入不能修改,只能追加能保证数据的一致性可构建在廉价机器上通过多副本机制,提高可靠性提供了容错和恢复机制HDFS的优点低延迟数据访问受限由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟访问数据的业务需求不适合HDFS无法高效存储大量小文件存储大量小文件的话,它会占用NameNode大量的内存来存储文件、目录和块信息;这样是不可取的,因为NameNode的内存总是有限的不支持多用户写入HDFS在同一时间内,只能有一个用户执行写操作不支持任意修改文件仅支持数据末尾append(追加),不支持文件的随机修改HDFS常用命令HDFS有很多shell命令,其中,fs命令可以说是HDFS最常用的命令利用该命令可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。该命令的用法为:hadoopfs[genericOptions][commandOptions]备注:Hadoop中有三种Shell命令方式:hadoopfs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统hadoopdfs只能适用于HDFS文件系统hdfsdfs跟hadoopdfs的命令作用一样,也只能适用于HDFS文件系统HDFS的基本操作命令(1/2)HDFS的操作主要包括文件的基本管理,如创建目录、上传文件、下载文件、删除文件等以下是HDFS的一些基本操作命令:创建目录:在HDFS中创建新目录可以使用hadoopfs–mkdir命令。例如,hadoopfs-mkdir/newdir将在HDFS的根目录下创建一个名为newdir的新目录。如果要创建多级目录,可以使用-p选项,如hadoopfs-mkdir-p/dir1/dir2/dir3。上传文件:将文件上传到HDFS可以使用hadoopfs–put命令。例如,hadoopfs-putlocalfile.txt/hdfsdir/localfile.txt将把本地文件localfile.txt上传到HDFS的/hdfsdir/目录下,并命名为localfile.txt。也可以使用–copyFromLocal命令实现相同的功能。下载文件:从HDFS下载文件到本地可以使用hadoopfs–get命令。例如,hadoopfs-get/hdfsfile.txtlocalfile.txt将从HDFS的/hdfsfile.txt下载到本地,并命名为localfile.txt。也可以使用–copyToLocal命令实现相同的功能。HDFS的基本操作命令(2/2)删除文件或目录:在HDFS中删除文件或目录可以使用hadoopfs–rm命令。例如,hadoopfs-rm/hdfsfile.txt将删除HDFS上的/hdfsfile.txt文件。如果要删除目录及其下的所有文件,可以使用–r选项,如hadoopfs-rm-r/dir。查看文件或目录信息:可以使用hadoopfs–ls命令查看HDFS上的文件或目录信息。例如,hadoopfs-ls/将列出HDFS根目录下的所有文件和目录。除了以上基本操作外,HDFS还支持其他更高级的操作,如文件复制、移动、重命名、修改权限等。这些操作可以通过相应的命令来实现;以上命令都是在Hadoop的命令行界面中执行。同时,Hadoop也提供了JavaAPI、RESTAPI等接口,方便用户在程序中集成和操作HDFS。HDFS常用命令实例:hadoopfs-ls<path>:显示<path>指定的文件的详细信息hadoopfs-mkdir<path>:创建<path>指定的文件夹HDFS常用命令实例:hadoopfs-cat<path>:将<path>指定的文件的内容输出到标准输出(stdout)hadoopfs-copyFromLocal<localsrc><dst>:将本地源文件<localsrc>复制到路径<dst>指定的文件或文件夹中HDFS的Web界面在配置好Hadoop集群之后,可以通过浏览器登录“http://[NameNodeIP]:50070”访问HDFS文件系统第二章
大数据离线处理开发实践1.大数据离线批处理技术栈2.分布式文件系统HDFS3.分布式计算框架MapReduce4.分布式资源管理组件YARN5.分布式内存计算框架S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春部编版(五四制)小学语文四年级下册第17课《记金华的双龙洞》课堂笔记
- 电气自动化施工组织设计方案
- 电梯拆除施工方案
- 《物质的量的单位-摩尔》化学授课课件教案
- 《感应电流的产生条件》教案物理科课件
- 2026年婚姻家庭民事起诉状常见问题及应对策略
- 【9化一模】2026年安徽合肥市包河区九年级中考一模化学试卷
- 第1章 项目概述与需求分析
- 八年级下册英语期中5篇热点主题作文期中必考
- 丁善德钢琴曲《第二新疆舞曲》的作品分析与演奏处理
- 粽子的数学知识
- 2025届高考语文专项【语用新增题型】修改错别字名校最模拟题
- JJF(津) 65-2022 钢直尺检定仪校准规范
- 老年人与儿童火灾安全教育
- 父母房产赠予儿子合同范例
- 幼儿园年度业务活动开展情况总结
- 家装渠道合同协议书
- (高清版)JT∕T 1402-2022 交通运输行政执法基础装备配备及技术要求
- JTT495-2014 公路交通安全设施质量检验抽样方法
- 从班会课到成长课程德育教师的班会课微革命
- 《诚实守信,立身之本》主题班会课件
评论
0/150
提交评论