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

hdfs数据导入mysql_常用的导入工具之Sqoop将数据导入到HDFS

不需要重新写一个应用程序将数据导入HDFS中,值得考虑用一些线程的工具将数据导入。这些工具涵盖了很多常用的需求。ApacheFlume是一个将大规模流数据导入HDFS

不需要重新写一个应用程序将数据导入HDFS中,值得考虑用一些线程的工具将数据导入。这些工具涵盖了很多常用的需求。

Apache Flume是一个将大规模流数据导入HDFS的工具。最典型的应用是从另外一个系统中收集日志数据。如:银行的网络服务器-并实现在HDFS中的聚集操作以便用于后期的分析操作。Flume能够支持大量的数据源,其中一些通常用于包含tail,syslog和apache log4j的系统.

Flume节点允许以任何拓扑方式进行组织。典型配置是在每个源机器上运行一个Flume节点,通过多个层级的聚合节点,最后将数据存入HDFS中。

Flume提供了不同级别的数据投递可靠性。

Apache Sqoop是为了将数据从结构化存储设备批量导入HDFS中设计的。例如关系数据库。应用场景,是组织将白天生产的数据库中的数据在晚间导入Hive数据仓库中进行分析。

Sqoop数据导入工具的简单介绍

Hadoop平台的最大优势在于它支持不同形式的数据。HDFS能够可靠的存储日志和来自不同渠道的其他数据,MapReduce程序能够解析多种“即席”数据格式,抽取相关信息并将多个数据集组合成非常有用的结果。

但是为了能够和HDFS之外的数据存储进行交互,MapReduce程序需要使用外部API来访问数据。通常,一个组织中有价值的数据都存储在关系型数据库系统(RDBMS)等结构化的存储器中。Sqoop是一个开源工具,它允许用户将数据从结构化存储器综合功能抽取到Hadoop中,用于进一步的处理。抽取出的数据可以被MapReduce程序使用,也可以被其他类似于Hive的工具使用。也可以使用Sqoop将数据从数据库转移到HBase,形成最终的分析结果之后,Sqoop可以将这些结果导回数据存储器,供其他客户端使用。

9fcf3cd5769391cae26d739c56af2199.png

sqoop被组织成一组工具或命令。不选择工具,Sqoop便无所适从。

sqoop拥有一个可扩展的框架,使得它能够从任何支持批量数据传输的外部存储系统导入导出数据。一个Sqoop连接器(connector)就是这个框架下的一个模块化组件、用于支持Sqoop的导入和导出操作。Sqoop附带的连接器能够支持大多数常用的关系数据库系统,包括MySQL,postgreSql、Oracle、sqlserver和DB2.同时还有一个通用的JDBC连接器,用于连接支持jdbc协议的数据库。sqoop所提供的mysql和postgresql连接器都是经过优化的,通过使用数据库特定的API来提供高效率的批量数据传输工作。

sqoop可以将数据导入成几种不同的格式,文本文件时一种默认的人类可读的数据表示形式,并且是平台独立和最简单的数据格式。但文本文件不能保存二进制字段,并且在区分null值和null字符串时可能会出现问题。为了处理这种情况,应该使用sequenceFile格式活着avro格式。它们能够为导入的数据提供最精确的表示方式,同时还允许对数据进行压缩,并支持mapreduce并行处理同一文件的不同部分。

Sqoop除了能够将数据库表的内容写到HDFS,Sqoop同时还生成了一个JAVA源文件-widgets.java,保存在当前的本地目录中。在sqoop将数据库的表数据写到HDFS之前,会先用生成的代码对其进行反序列化。

sqoop时通过一个MapReduce作业从数据库中导入一个表,这个作业从表中抽取一行行记录,然后将记录写入HDFS.

5a6565b2a893cffc75cea8b8487b9eca.png

上图是sqoop的导入过程。

sqoop不需要每次都导入整张表,可以指定导入表的部分列。

在想HDFS中导入数据时,重要的是要确保访问的是数据源的一致性快照,最好的方法就是在导入时,不允许运行任何对表中数据进行更新的进程。

一旦数据被导入HDFS,就可以供定制的MapReduce程序使用。导入的文本格式数据可以供hadoop streaming中的脚本或以textinputformat为默认格式运行的MapReduce作业使用。

针对分析任务,使用Hive的系统来处理关系操作有利于加快分析任务的开发。所以Hive和sqooop共同构成了一个强大的服务于分析任务的工具链。

在数据库中使用大对象会有困难,像hadoop这样的系统更适合处理大型的、复杂的数据对象,sqoop能够从表中抽取大对象数据,并且将它们保存在HDFS中供进一步处理。

在sqoop中,导入时指将数据库从数据库系统移动到HDFS.与之相反,导出是将HDFS作为数据源,而将远程数据库作为目标。



推荐阅读
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • ftp和文件服务器,ftp和文件服务器的区别
    ftp和文件服务器的区别内容精选换一换obsftp工具于2021年2月9日正式下线,下线后OBS不再对此工具提供维护和客户支持服务,给您带来不便敬请谅解 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 环境:centos6.5,hadoop2.6.4集群1.解压安装sqoop从官网下载好安装包,发送到集群中任意一台主机即可。相信大家已经看到,1.99.7跟1.4.6是不兼容的,而 ... [详细]
  • 工作以来接触到的技术流
    2019独角兽企业重金招聘Python工程师标准下面是工作以来接触到的技术平台,以及技术方案。部分在项目中深入过,部分仅选型、实践过。不断补充中. ... [详细]
  • 本文_大数据之非常详细Sqoop安装和基本操作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之非常详细Sqoop安装和基本操作相关的知识,希望对你有一定的参考价值。大数据大数据之 ... [详细]
  • 不会搭建大数据平台,我被老板优化了...
    不会,搭建,大数,据,平台,我 ... [详细]
author-avatar
小永劲_289
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有