HdfsDataExchanger 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
HdfsDataExchanger 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
HdfsDataExchanger 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 未知
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 SebastianHe
适用人群 未知
收录时间 2018-10-12

软件简介

背景

当前比较流行的hdfs间数据迁移工具有hadoop默认提供的distcp,阿里开源的DataX,这些工具能够满足常规的大部分需求,但是当时碰到hadoop版本不一致、keberos授权等场景时就行不通了。针对这些特殊的应用场景和实际需求我就构思并实现了HdfsDataExchanger这种实现方案。通过在一台可以访问两边hadoop集群的中转机上部署HdfsDataExchanger就可以实现将一个集群的数据迁移到另一个集群。HdfsDataExchanger提供单机多线程数据迁移,不支持分布式并行执行。

功能介绍

  1. 不同版本的hdfs间文件迁移。

  2. 本地文件系统与hdfs间文件迁移。

avatar

原理说明

  • 抽象一套hdfs文件操作接口。

  • 使用源集群和目标集群对应版本的hadoop分别实现接口。

  • 使用jetty的WebAppClassLoader分别加载两套(源和目标)hdfs相关的jar,并创建对应的FileSystem。

  • 使用源FileSystem读取数据到缓冲区,然后使用目标FileSystem将缓冲区的数据写入到目标文件。

    avatar

使用说明

  • data-exchanger目录下包含完整的部署目录

    1. h1为hadoop1的配置(conf)和相关的jar包(jars)

    2. h2为hadoop2的配置(conf)和相关的jar包(jars)

    3. main为主程序相关的配置(conf)、相关的jar包(jars)和启动脚本(bin)

  • 配置说明

    参数名说明
    thread.count并行进行迁移数据的线程数量
    buffer.size读取数据缓冲区大小
    src/dest.hdfs.resource.path源/目标hdfs的jar包目录
    src/dest.filesystem.implement源/目标针对抽象出的hdfs接口(com.sebastian.fdx.fs.api.BaseFileSystem)的实现类,WebAppClassLoader根据此配置加载对应的实现
    src/dest.hdfs.conf.path源/目标对应的core-site.xml和hdfs-site.xml
    1. h1和h2的jars目录下应该包含依赖的所有hadoop jar包,当前只包含了fdx-hadoopX-filesystem-1.0-SNAPSHOT.jar,用户在使用时需根据实际的hadoop版本自行编译,并将依赖的jar和编译出来的jar一并放到对应的目录下。

    2. main/jars目录放fdx-executor和fdx-filesystem-api编译出的jar以及依赖的所有jar。

    3. main/conf/parameter.xml

  • 执行
    bin/run.sh src_path1 src_path2 ... dest_path 将src_pathX下的所有文件、目录复制到dest_path下

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
org.apache.directory.server:apacheds-kerberos-codec 存在使用具有密码学弱点缺陷的PRNG漏洞
此软件包的受影响版本容易受到加密问题的影响。静态 IV 用于具有 CBC 模式的对称加密。 CBC模式的IV预计是随机的。静态 IV 使生成的密文更加可预测并且容易受到字典攻击。
MPS-2022-12540
2022-08-08 20:54
Apache Log4j SQL注入漏洞
SQL注入
根据设计,Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器。消息转换器 %m 可能总是包含在内。这允许攻击者通过将精心制作的字符串输入到记录的应用程序的输入字段或标题中来操纵 SQL,从而允许执行意外的 SQL 查询。请注意,此问题仅在专门配置为使用 JDBCAppender(不是默认设置)时才会影响 Log4j 1.x。从 2.0-beta8 版本开始,重新引入了 JDBCAppender,适当支持参数化 SQL 查询,并进一步自定义写入日志的列。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23305 MPS-2022-1444
2022-08-08 20:54
Netty 环境问题漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.42.Final之前版本中存在安全漏洞。攻击者可利用该漏洞实施HTTP请求走私攻击。
CVE-2019-16869 MPS-2019-12064
2022-08-08 20:54
jackson-mapper-asl 代码问题漏洞
XXE
jackson-mapper-asl是一款基于Jackson JSON处理器构建的数据映射软件包。 jackson-mapper-asl 1.9.x版本中存在代码问题漏洞。远程攻击者可借助特制数据利用该漏洞获取敏感信息。
CVE-2019-10172 MPS-2019-15048
2022-08-08 20:54
Apache Log4j 代码问题漏洞
反序列化
Log4j是美国阿帕奇(Apache)软件基金会的一款基于Java的开源日志记录工具。Log4j 1.2版本中包含一个SocketServer类,在未经验证的情况下,该SocketServe类很容易接受序列化的日志事件并对其进行反序列化,在结合反序列化工具使用时,可以利用该类远程执行任意代码。
CVE-2019-17571 MPS-2019-17271
2022-08-08 20:54
Google Guava 访问控制错误漏洞
关键资源的不正确权限授予
Google Guava是美国谷歌(Google)公司的一款包括图形库、函数类型、I/O和字符串处理等的Java核心库。 Guava 30.0版本之前存在访问控制错误漏洞,该漏洞源于Guava存在一个临时目录创建漏洞,允许访问机器的攻击者可利用该漏洞潜在地访问由Guava com.google.common.io. Files. createTempDir() 创建的临时目录中的数据。攻击者可以利用该漏洞访问特殊目录。
CVE-2020-8908 MPS-2020-17429
2022-08-08 20:54
Apache Log4j 信任管理问题漏洞
证书验证不恰当
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。 Apache Log4j中存在信任管理问题漏洞,该漏洞源于SmtpAppender没有验证主机名称与SMTPS连接的SSL/TLS证书是否匹配。攻击者可通过实施中间人攻击利用该漏洞拦截SMTPS连接,获取日志消息。
CVE-2020-9488 MPS-2020-6684
2022-08-08 20:54
Google protobuf 安全漏洞
不正确的行为次序
Google protobuf是美国谷歌(Google)公司的一种数据交换格式。 protobuf-java 存在安全漏洞,该漏洞允许一个小的恶意负载可以通过创建大量导致频繁、重复暂停的短期对象来占用解析器几分钟。
CVE-2021-22569 MPS-2021-19066
2022-08-08 20:54
Apache Zookeeper 安全漏洞
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。 Apache Zookeeper 3.4.9版本和3.5.2版本中存在安全漏洞。攻击者可利用该漏洞造成拒绝服务。
CVE-2017-5637 MPS-2017-11297
2022-08-08 20:54
Apache Hadoop 安全漏洞
信息暴露
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop中存在安全漏洞。攻击者可通过构建含有XML指令的配置文件利用该漏洞获取私有文件。以下版本受到影响:Apache Hadoop 0.23.x版本,2.7.5之前的2.x版本,2.8.3之前的2.8.x版本,3.0.0-alpha版本至3.0.0-beta1版本。
CVE-2017-15713 MPS-2018-0896
2022-08-08 20:54
Netty和Play Framework 输入验证错误漏洞
输入验证不恰当
Netty是Netty项目社区的一个提供了异步的、事件驱动的Java网络应用程序框架和工具,它用以快速开发高性能、高可靠性的网络服务器和客户端程序。Play Framework是一套开源的Java Web应用框架。 Netty和Play Framework中存在安全漏洞。远程攻击者可利用该漏洞绕过cookies上的httpOnly标识,获取敏感信息。 以下产品和版本受到影响:Netty 3.9.8.Final之前的版本,3.10.3.Final之前的3.10.x版本,4.0.28.Final之前的4.0.x版本,4.1.0.Beta5之前的4.1.x版本;Play Framework 2.3.9之前的2.x版本。
CVE-2015-2156 MPS-2017-11682
2022-08-08 20:54
Apache Commons Compress 资源管理错误漏洞
不可达退出条件的循环(无限循环)
Apache Commons Compress是美国阿帕奇(Apache)基金会的一个用于处理压缩文件的库。 Apache Commons Compress 1.7版本至1.17版本中存在资源管理错误漏洞,该漏洞源于在数据流结束后,ZipArchiveInputStream的读取方法没有返回正确的文件结束符指示。攻击者可通过发送特制的ZIP归档文件利用该漏洞造成拒绝服务。
CVE-2018-11771 MPS-2018-11233
2022-08-08 20:54
Apache Ant 信息泄露漏洞
将资源暴露给错误范围
Apache Ant是美国阿帕奇(Apache)基金会的一套用于Java软件开发的自动化工具。该工具主要用于软件的编译、测试和部署等。 Apache Ant 1.1版本至1.9.14版本和1.10.0版本至1.10.7版本中存在信息泄露漏洞。攻击者可利用该漏洞泄漏敏感信息。
CVE-2020-1945 MPS-2020-7418
2022-08-08 20:54
Apache HttpComponents Incomplete Fix SSL证书验证安全绕过漏洞
输入验证不恰当
HttpComponents简称HttpCore, 是一组底层Http传输协议组件,支持两种I/O模型,阻塞I/O模型和和非阻塞I/O模型。 Apache HttpComponents不安全修复SSL证书验证存在安全绕过漏洞,允许攻击者进行中间人攻击或冒充受信任的服务器发起进一步攻击
CVE-2012-6153 MPS-2014-4288
2022-08-08 20:54
Eclipse Jetty 信息泄露漏洞
信息暴露
Eclipse Jetty是Eclipse基金会的一个开源的、基于Java的Web服务器和Java Servlet容器。 Eclipse Jetty 9.2.9.v20150224之前版本中的异常处理代码功能存在安全漏洞。远程攻击者可借助HTTP头中的非法字符利用该漏洞获取进程内存的敏感信息。
CVE-2015-2080 MPS-2016-5010
2022-08-08 20:54
JCraft JSch 路径遍历漏洞
路径遍历
JCraft JSch是一款使用Java语言编写的SSH2实现。 JCraft JSch 基于Windows平台的0.1.54之前版本中存在路径遍历漏洞。远程攻击者可利用该漏洞写入任意文件。
CVE-2016-5725 MPS-2017-0498
2022-08-08 20:54
Apache Log4j 安全漏洞
当攻击者对 Log4j 配置具有写访问权限时,Log4j 1.2 中的 JMSAppender 容易受到不受信任数据的反序列化。攻击者可以提供 TopicBindingName 和 TopicConnectionFactoryBindingName 配置,导致 JMSAppender 执行 JNDI 请求,从而以类似于 CVE-2021-44228 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSAppender(不是默认设置)时影响 Log4j 1.2。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2021-4104 MPS-2021-38359
2022-08-08 20:54
Jetty输入验证漏洞
密码学问题
Jetty是Eclipse基金会的一个自由和开源项目,是一个基于Java的Web服务器和Java Servlet容器。 Jetty在处理哈希表单张贴和更新哈希表单时,哈希生成函数中存在漏洞。攻击者可利用此漏洞通过在HTTP POST请求中发送特制的表单,造成哈希冲突,导致较高的CPU消耗。
CVE-2011-4461 MPS-2011-4130
2022-08-08 20:54
Apache Zookeeper 信任管理漏洞
凭据管理错误
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。 Apache Zookeeper中存在安全漏洞,该漏洞源于程序记录明文admin密码。本地攻击者可通过读取日志利用该漏洞获取敏感信息。
CVE-2014-0085 MPS-2014-1943
2022-08-08 20:54
Apache Zookeeper 访问控制错误漏洞
授权机制缺失
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。 Apache ZooKeeper 3.4.10之前版本和3.5.0-alpha版本至3.5.3-beta版本中存在访问控制错误漏洞,该漏洞源于程序没有强制执行身份验证/授权检测。攻击者可利用该漏洞修改目标系统上的数据。
CVE-2018-8012 MPS-2018-6313
2022-08-08 20:54
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
3 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部