详情页标题前

腾讯云对象存储Hadoop-cos-DistChecker 工具

详情页1

功能说明

Hadoop-cos-DistChecker 是一个校验迁移目录完整性的工具。用户在使用hadoop distcp命令从 HDFS 迁移数据到 COS 上后,基于 MapReduce 的并行能力,Hadoop-cos-DistChecker 工具可以快速地进行源目录目标目录的校验比对。

使用环境

Hadoop-cos v5.8.2以上,详见 hadoop-cos releaseHadooop MapReduce 的运行环境。注意如果是自建 Hadoop 集群,则 Hadoop-cos 依赖需要选择最新版本(GitHub release 版本为5.8.2以上)才能支持 CRC64 校验码的获取。如果是使用腾讯云 EMR 套件,则2020年5月8日后创建的集群才包含该 Hadoop-cos 版本,早于这个时间创建的集群,请 联系我们

使用说明

由于 Hadoop-cos-distchecker 需要获取 Hadoop-cos(CosN 文件系统)中的文件 CRC64 校验值,因此,在运行该工具以前,需要将配置项 fs.cosn.crc64.checksum.enabled 置为 true 以支持获取 Hadoop-cos 文件的 CRC64 校验和,待工具运行完成后,再将该选项置回 false 以关闭 CRC64校验和的获取。注意由于 Hadoop-COS 支持的 CRC64 校验和与 HDFS 文件系统的 CRC32C 校验和无法兼容,因此在使用完该工具以后,务必将上述配置项恢复为关闭状态,否则可能会导致 Hadoop-cos 在某些调用文件系统 getFileChecksum 接口的场景下运行失败。

参数概念

源文件列表:源文件路径列表是用户执行以下命令,导出的待检查的子目录和文件列表。

hadoop fs -ls -R hdfs://host:port/{source_dir} | awk '{print $8}' > check_list.txt

示例格式如下:

/benchmarks/TestDFSIO/benchmarks/TestDFSIO/io_control/benchmarks/TestDFSIO/io_control/in_file_test_io_0/benchmarks/TestDFSIO/io_control/in_file_test_io_1/benchmarks/TestDFSIO/io_data/benchmarks/TestDFSIO/io_data/test_io_0/benchmarks/TestDFSIO/io_data/test_io_1/benchmarks/TestDFSIO/io_write/benchmarks/TestDFSIO/io_write/_SUCCESS/benchmarks/TestDFSIO/io_write/part-00000

源目录:指源文件列表所在的目录,这个目录通常也是distcp命令进行数据迁移时的源路径。如下所示,hdfs://host:port/source_dir为源目录。

hadoop distcp hdfs://host:port/source_dir cosn://examplebucket-appid/dest_dir

此外,这个路径也是源文件路径列表中公共父目录,例如上述的源文件列表的公共父目录就是:/benchmarks目标目录:待比较的目标目录。

命令行格式

Hadoop-cos-DistChecker 是一个 MapReduce 作业程序,按照 MapReduce 作业的提交流程即可:

hadoop jar hadoop-cos-distchecker-2.8.5-1.0-SNAPSHOT.jar com.qcloud.cos.hadoop.distchecker.App    [optional parameters]

说明 Optional parameters 表示 Hadoop 可选参数。

使用步骤

下面以校验 hdfs://10.0.0.3:9000/benchmarkscosn://hdfs-test-1250000000/benchmarks为例,介绍工具的使用步骤。首先,执行以下命令:

hadoop fs -ls -R hdfs://10.0.0.3:9000/benchmarks | awk '{print $8}' > check_list.txt



腾讯云对象存储Hadoop-cos-DistChecker 工具


将待检查源路径导出到一个 check_list.txt 的文件中,这个文件里面保存的就是源文件路径列表,如下所示:

腾讯云对象存储Hadoop-cos-DistChecker 工具

然后,将 check_list.txt 放入到 HDFS 中,执行如下:

hadoop fs -put check_list.txt hdfs://10.0.0.3:9000/



腾讯云对象存储Hadoop-cos-DistChecker 工具


最后,执行 Hadoop-cos-DistChecker,将hdfs://10.0.0.3:9000/benchmarkscosn://hdfs-test-1250000000/benchmarks进行对比,然后输出结果保存到cosn://hdfs-test-1250000000/check_result路径下,命令格式如下:

hadoop jar hadoop-cos-distchecker-2.8.5-1.0-SNAPSHOT.jar com.qcloud.cos.hadoop.distchecker.App hdfs://10.0.0.3:9000/check_list.txt hdfs://10.0.0.3:9000/benchmarks cosn://hdfs-test-1250000000/benchmarks cosn://hdfs-test-1250000000/check_result



腾讯云对象存储Hadoop-cos-DistChecker 工具


Hadoop-cos-DistChecker 会读取源文件列表和源目录执行 MapReduce 作业,进行分布式检查,最后的检查报告会输出到cosn://examplebucket-appid/check_result路径下。

腾讯云对象存储Hadoop-cos-DistChecker 工具


检查报告如下:

hdfs://10.0.0.3:9000/benchmarks/TestDFSIO       hdfs://10.0.0.3:9000/benchmarks/TestDFSIO,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO,None,None,None,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control    hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_control,None,None,None,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control/in_file_test_io_0  hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control/in_file_test_io_0,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_control/in_file_test_io_0,CRC64,1566310986176587838,1566310986176587838,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control/in_file_test_io_1  hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_control/in_file_test_io_1,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_control/in_file_test_io_1,CRC64,-6584441696534676125,-6584441696534676125,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data       hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_data,None,None,None,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data/test_io_0     hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data/test_io_0,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_data/test_io_0,CRC64,3534425600523290380,3534425600523290380,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data/test_io_1     hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_data/test_io_1,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_data/test_io_1,CRC64,3534425600523290380,3534425600523290380,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write      hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_write,None,None,None,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write/_SUCCESS     hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write/_SUCCESS,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_write/_SUCCESS,CRC64,0,0,SUCCESS,'The source file and the target file are the same.'hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write/part-00000   hdfs://10.0.0.3:9000/benchmarks/TestDFSIO/io_write/part-00000,cosn://hdfs-test-1250000000/benchmarks/TestDFSIO/io_write/part-00000,CRC64,-4804567387993776854,-4804567387993776854,SUCCESS,'The source file and the target file are the same.'

检查报告格式

检查报告是以如下格式展示:

check_list.txt中的源文件路径 源文件绝对路径,目标文件绝对路径,Checksum算法,源文件的checksum值,目标文件的checksum值,检查结果,检查结果描述

其中检查结果分为以下7种:SUCCESS:表示源文件和目标文件都存在,且一致。MISMATCH:表示源文件和目标文件都存在,但不一致。UNCONFIRM:无法确认源文件和目标文件是否一致,这种状态主要是由于 COS 上的文件可能是 CRC64 校验码特性上线前就存在的文件,无法获取到其 CRC64 的校验值。UNCHECKED:未检查。这种状态主要是由于源文件无法读取或无法获取源文件的 checksum 值。SOURCE_FILE_MISSING:源文件不存在。TARGET_FILE_MISSING:目标文件不存在。TARGET_FILESYSTEM_ERROR:目标文件系统不是 CosN 文件系统。

常见问题

为什么检查报告的 CRC64 值出现负数?

因为 CRC64 值,有可能是20位的值,此时已超过 Java long 型的表示范围,但是其底层字节是一致的,而打印 long 型时,会出现负数表示。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144274.html

(0)
上一篇 2023年12月9日 上午1:44
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器服务DaemonSet 管理同尘科技

    简介 DaemonSet 主要用于部署常驻集群内的后台程序,例如节点的日志采集。DaemonSet 保证在所有或部分节点上均运行指定的 Pod。 新节点添加到集群内时,也会有自动部署 Pod;节点被移除集群后,Pod 将自动回收。 调度说明 若配置了 Pod 的 nodeSelector 或 affinity 参数,DaemonSet 管理的 Pod 将按照…

    2023年12月9日
  • 腾讯云负载均衡【2023年02月24日】健康探测源 IP 切换100.64.0.0/10网段公告

    尊敬的腾讯云客户,您好!感谢您长期以来对腾讯云的关注和支持!为了给您提供更便捷的负载均衡服务,从2023年02月24日12:00:00起,腾讯云负载均衡(Cloud Load Balancer)实例的健康探测源 IP,将从负载均衡 VIP 变更为 100.64.0.0/10 网段。使用 100.64.0.0/10 网段作为健康探测源 IP,可以有效避免地址冲…

    腾讯云 2023年12月9日
  • 腾讯云CVM服务器内核及 IO 相关问题

    使用实例自助检测,可从检测报告中获取实例的异常情况。本文主要介绍实例自助检测报告中,内核及 IO 相关问题现象、引发原因及处理步骤。 内核问题定位及处理 故障现象 内核相关故障,可能导致机器无法登录或异常重启。 可能原因 内核 hung_task hung task 机制通过内核线程 khungtaskd 实现,khungtaskd 监控 TASK_UNIN…

    腾讯云 2023年12月9日
  • 阿里云RDS数据库UUID生成器(sequential-uuids)-云淘科技

    RDS PostgreSQL支持Sequential UUID generators插件,该插件提供顺序模式的UUID生成。 前提条件 RDS PostgreSQL实例版本满足以下要求: 实例大版本为PostgreSQL 10或以上。 内核小版本为20220228以上。查看和升级内核小版本,请参见升级内核小版本。 您的账号类型必须为高权限账号。您可以在RDS…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云TDSQL-C MySQL版连接与网络

    如何访问 TDSQL-C MySQL 版? 连接 TDSQL-C MySQL 版的方式如下:内网地址连接:通过内网地址连接 TDSQL-C MySQL 版,使用云服务器 CVM 直接连接云数据库的内网地址,这种连接方式使用内网高速网络,延迟低。需注意,云服务器和数据库须是同一账号,且同一个 VPC 内(保障同一个地域)。外网地址连接:通过外网地址连接 TDS…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。