HdfsImporter 使用说明

最后更新于:2018-08-02 14:09:07

在使用前,请先阅读数据模型数据格式的介绍。

1. HdfsImporter 概述

HdfsImporter 与 BatchImporter 一样用于将历史数据或外部数据导入神策分析。

2. 运行环境

HdfsImporter 仅可在神策分析集群版使用,且只能运行在神策分析集群的 Hadoop 环境中。

3. 经典使用方法

一次新启动的导入步骤如下:

  1. 将数据置于神策分析集群上的 HDFS 中。例如 HDFS 集群 /data/input 目录,其中包含文件data01、data02、data03等文件,文件内容为每行一个符合数据格式的 Json。
  2. 切换到 sa_cluster 账户:sudo su - sa_cluster
  3. 请确定 HDFS 上数据不再进行修改(增删修改文件)后 ,运行 HdfsImporter

使用方式

sh /home/sa_cluster/sa/tools/hdfs_importer/bin/hdfs_importer.sh \
--path /data/input \
--project default

备注

  • 自 1.10 版本起,直接运行 jar 包的方式不再被支持。
  • 导入后清理数据较复杂,请检查好再操作。对同一份数据多次运行导入会导致数据重复。
  • path 可以是一个包含子目录的数据目录。
  • HdfsImporter 执行成功之后,数据大约会在 1分钟之后 被查询到。

4. 配置项说明

列出所有配置项:

sh /home/sa_cluster/sa/tools/hdfs_importer/bin/hdfs_importer.sh --help
参数 必填 说明 默认值
path 需要导入的数据所在的 HDFS 路径。
project 期望导入的 project 名称,不指定的则导入到 default。 default
all_data_without_track_signup 是否所有数据(包括之前各种类型导入)都不包含 track_signup 类型数据。若所有导入数据均不包含 track_signup 类型数据,添加这个选项可以提高导入速度。
split_max_size_mb MapReduce 每个 Mapper 处理分片的最大值。该值会影响 Mapper 数量。 256
job_queue_name MapReduce Job 的队列名。
split_reduce_size_mb MapReduce 每个 Reducer 处理的数据量大小。该值会影响 Reducer 的数据。Reducer 个数 = 输入的总数据量 / split_reduce_size_mb 。 2048
mapper_max_memory_size_mb MapReduce 每个 Mapper 使用的内存最大值。 1024
reduce_max_memory_size_mb MapReduce 每个 Reducer 使用的内存最大值。 2048
reduce_output_file_size_mb MapReduce 每个 Reducer 输出的文件最大值。 256
shuffle_partition_split_size Shuffer 时,每个 Mapper 切分 partition 的大小,一般用来调整数据分布不均匀 500000
expired_record_filter_after_hour 允许导入的数据时间区间截至未来的小时数,默认为 1,即超过未来 1 小时的数据将被过滤。 1
expired_record_filter_before_hour 允许导入的数据时间区间向前的小时数,默认为 17520,即超过 2 年以前的数据将被过滤。 17520
user_define_job_name 允许自定义 job name,比如在 HdfsImpoter-12345-[your_name] 中,your_name 是自定义的部分
debug 开始 debug 模式,数据只会以 JSON 文本的方式输出到相应的 HDFS 目录下,并且不会真正的导入到神策系统当中。

一个复杂的例子:

sh /home/sa_cluster/sa/tools/hdfs_importer/bin/hdfs_importer.sh \
--path /data/input \
--project test_project \
--all_data_without_track_signup \
--split_max_size_mb 128 \
--job_queue_name data_import_queue \
--split_reduce_size_mb 2048 \
--reduce_max_memory_size_mb 2048 \
--reduce_output_file_size_mb 256

5. 更新日志

2017-11-29 (SA 版本号:1.10.3329)

  1. 支持自定义 job_name 参数: user_define_job_name

2017-07-10 (SA 版本号:1.7.2628)

  1. 新增 Mapper 内存参数 mapper_max_memory_size_mb
  2. 支持用户自定义 InputFormat,详情请参考 github :HDFSImporter 自定义 InputFormat

2017-07-04 (SA 版本号:1.7.2614)

  1. 支持用户自定义预处理模块,详情请参考 github :HDFSImporter 预处理模块
  2. 新增 debug 模式