加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

怎样将数据移入和移出Hadoop?

发布时间:2018-10-13 15:09:48 所属栏目:教程 来源:赵钰莹
导读:【新产物上线啦】51CTO播客,随时随地,碎片化进修 企业在项目中完全行使Hadoop之前,数据移动是必需办理的工作之一。怎样将数千台主机日记数据放入Hadoop?从相关型可能No/NewSQL体系以及Hadoop中获取数据的最有用要领是什么?怎样将Hadoop中天生的Lucene索
副问题[/!--empirenews.page--] 【新产物上线啦】51CTO播客,随时随地,碎片化进修

企业在项目中完全行使Hadoop之前,数据移动是必需办理的工作之一。怎样将数千台主机日记数据放入Hadoop?从相关型可能No/NewSQL体系以及Hadoop中获取数据的最有用要领是什么?怎样将Hadoop中天生的Lucene索引输出随处事器?这些流程怎样实现自动化?

本文是《Hadoop从入门到能干》大型专题的第5章,将完全解答上述题目,让企业走上无忧数据移动之路。本章,我们将起首先容怎样将差异位置和差异名目标数据移动到Hadoop,之后将讲授怎样将数据移出Hadoop。

5.1 数据移动的要害要素

将大量数据移入和移出Hadoop面对许多挑衅,包罗数据同等性和资源对数据源和方针的影响。然而,在深入研究这些技能之前,我们必要接头在处理赏罚数据移动时应该留意的身分。

幂等

在编程中,一个幂等操纵的特点是其恣意多次执行所发生的影响均与一次执行的影响沟通。换句话说,幂等操纵无论执行几多次城市发生沟通的功效。在相关数据库中,插入凡是不是幂等的,由于多次执行不会发生沟通的功效数据库状态。可能,更新凡是是幂等的,由于它们将发生沟通的最终功效。

无论何时写入数据,都应该思量幂等性,Hadoop中的数据进口和出口没有很大区别。漫衍式日记网络框架如那里理赏罚数据重传?如安在多个使命并行插入数据库的MapReduce功课中确保幂等举动?

聚合

数据聚合进程组合了多个数据元素。在数据进口的上下文中,这将大量小文件移动到HDFS。在现实操纵中,我们也许谋面对NameNode内存以及MapReduce执行时刻慢等题目,将文件或数据聚合在一路可以缓解此类题目,这是一个必要思量的成果。

数据名目转换

数据名目转换将一种数据转换为另一种名目标操纵。凡是,源数据名目不得当在MapReduce等器材中举办处理赏罚。譬喻,假如源数据回收多行XML或JSON名目,则也许必要思量预处理赏罚步调。这会将数据转换为可以拆分的情势,譬喻每行一个JSON或XML元素,可能将其转换为Avro等名目。

数据压缩

数据压缩不只有助于镌汰静态数据的占用空间,并且在读取和写入数据时也具有I/O上风。

可用性和可规复性

可规复性应承进口或出口器材在操纵失败时重试。因为任何数据源,吸取器或Hadoop自己都不行能100%可用,因此在产生妨碍时可重试很是重要。

靠得住的数据传输和数据验证

在数据传输中,搜查正确性的要领是验证数据在传输进程中是否产生破坏。当行使异构体系(如Hadoop数据进口和出口)时,数据通过差异主机,收集和协议传输只会增进数据传输进程中呈现题目的也许性。搜查原始数据(如存储装备)正确性的常用要领是轮回冗余校验(CRC),这是HDFS内部用于维护块级完备性的常用要领。

另外,因为天生数据的软件存在错误,源数据自己也许存在题目。在进口时执行数据验证应承举办一次性搜查,而不是在产生题目时处理赏罚数据的全部下流斲丧者,强制这些斲丧者必需更新以处理赏罚数据中的错误。

资源耗损和机能

资源耗损和机能别离是体系资源操作率和体系服从的怀抱。进口和出口器材凡是不会对体系施加大量负载(资源耗损),除非有很是可观的数据量。对付机能,要思量的题目包罗器材是否并行执行操纵,假如是,提供了什么机制来调解并行度。假如数据源是出产数据库而且正在行使MapReduce提取该数据,请不要行使大量并发map使命来导入数据。

监控

监控确保成果在自动化体系中按预期执行。对付数据进口和出口,监控分为两部门:确保进口和出口中涉及的历程存活,并验证源和方针数据是否按预期天生。监控还应包罗验证正在移动的数据量是否到达预期程度; 数据中不测的降落或高电流将提示隐藏的体系题目或软件错误。

展望执行

MapReduce具有一个称为展望(Speculative)执行的成果,可以在功课竣事时为仍在执行的使命启动备份,这有助于防备迟钝的硬件影响功课执行时刻。可是,这种做法也也许有题目,假如行使map使命执行插入相关数据库,你应该知道可以有两个并行历程插入沟通的数据。

增补:展望执行(Speculative Execution)是指在集群情形下运行MapReduce,也许是措施Bug,负载不均可能其他的一些题目,导致在一个JOB下的多个TASK速率纷歧致,好比有的使命已经完成,有的却只跑了10%,按照木桶道理,这些使命将成为整个JOB的短板,假如集群启动了展望执行,这时为了最大限度的进步短板,Hadoop会为该task启动备份使命,让speculative task与原始task同时处理赏罚一份数据,哪个先运行完,则将哪个功效作为最终功效,而且在运行完成后Kill掉其它一个使命。

5.2 将数据移入Hadoop

在Hadoop中处理赏罚数据的第一步是将其提供应Hadoop。有两种首要要领可用于将数据移入Hadoop:在HDFS层(数据推送)写入外部数据,或在MapReduce层读取外部数据(更像是拉取)。在MapReduce中读取数据具有以下利益:操纵可以轻松并行并具有容错手段。然而,并非全部数据都可以行使MapReduce会见,譬喻在日记文件下,其他体系必要依靠传输,包罗用于最终数据hop的HDFS。

本节,我们将先容将源数据移动到Hadoop的要领,将行使上一节中的计划留意事项作为搜查和领略差异器材的尺度。

5.2.1 HDFS呼吁行

Hadoop绑缚了很多要领来将数据导入HDFS。本节将先容这些内置器材怎样满意数据移动中的各类需求,可以行使的第一个也是最简朴的器材是HDFS呼吁行。

为功课选择正确的数据获取器材

本节中的初级器材合用于一次性文件移动,可能处理赏罚基于文件的旧数据源和方针。可是,以这种方法移动数据很等闲就会被Flume和Kafka(本章稍后先容)等器材所裁减,这些器材提供了自动数据移动管道。

注:Kafka是一个更好的平台,用于从A到B(B可所以Hadoop集群)移动数据,而不是老式的“复制文件”。行使Kafka,只需将数据泵入个中,就拥有了及时(譬喻通过Storm)或离线/批量功课(譬喻通过Camus)斲丧数据。这种要领将在之后的章节中先容。

行使CLI加载文件

假如必要手动执行,那么HDFS呼吁行界面(CLI)就是最吻合的器材。它应承执行在通例Linux文件体系上可执行的大大都操纵。本节,我们将重点先容怎样将数据从当地文件体系复制到HDFS中。

题目

行使shell将文件复制到HDFS。

办理方案

HDFS呼吁行界面可用于一次性移动,可能可以将其归并到剧本中以举办一系列移动。

接头

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读