使用hdfs-slurper 将数据导入hdfs

    slurper 可以将任何格式的数据导入HDFS, 这里有 github地址 这里鄙视下百度,居然搜索不到!

 

第一步,下载安装 

git clone git@github.com:alexholmes/hdfs-file-slurper.git
cd hdfs-file-slurper
mvn package

将target下的hdfs-slurper-0.1.8-package.tar.gz 解压到 /usr/local目录下(笔者的工作环境是ubuntu)

配置sluper,配置文件在conf目录下

slurper.conf 配置

#被传输数据的名称
DATASOURCE_NAME = test


#数据源目录,输入到这的任何文件都会自动复制到目标目录中(中间会被复制到临时目录中)
SRC_DIR = file:/data/hadoop/tmp/slurper/in


#工作目录,来自数据源的文件在复制到目标目录前被移入这个目录
WORK_DIR = file:/data/hadoop/tmp/slurper/work

#在复制完成后,文件从工作目录移入最终目录,另外REMOVE_AFTER_COPY可以设置被用于设置删除源文件,这时不能设置COMPLETE_DIR
COMPLETE_DIR = file:/data/hadoop/tmp/slurper/complete


REMOVE_AFTER_COPY = false

#在复制文件中遇到的任何错误都会被移入这个目录
ERROR_DIR = file:/data/hadoop/tmp/slurper/error



#临时目录,文件第一次被复制到目标文件系统上的临时目录。然后文件复制完成后,通过slurper将这个文件移入目标文件
DEST_STAGING_DIR = hdfs:/tmp/slurper/stage

#源文件最终存放目录
DEST_DIR = hdfs:/tmp/slurper/dest

file://URI 表示本地文件系统,hdfs://URI表示HDFS中的文件路径

slurper-env.sh 中要配置hadoop bin文件目录

运行:

1. 先创建 源文件目录 /data/hadoop/tmp/slurper/in

2.

bin/slurper.sh  --config-file conf/slurper.conf

 

3.将测试文件复制 到源文件目录,然后就可以看到日志,并且在hdfs上查看文件了

 

动态设置目标路径:

在slurper bin 目录下有一脚本 sample-python.py

#!/usr/bin/python

import sys, os, re

# read the local file from standard input
input_file=sys.stdin.readline()

# extract the filename from the file
filename = os.path.basename(input_file)

# extract the date from the filename
match=re.search(r'([0-9]{4})([0-9]{2})([0-9]{2})', filename)

year=match.group(1)
mon=match.group(2)
day=match.group(3)

# construct our destination HDFS file
hdfs_dest="hdfs:/data/%s/%s/%s/%s" % (year, mon, day, filename)

# write it to standard output
print hdfs_dest,

修改配置文件:

#DEST_DIR = hdfs:/tmp/slurper/dest
SCRIPT = /usr/local/hdfs-slurper-0.1.8/bin/sample-python.py

再次运行 slurper,然后将文件复制到源文件目录,如果文件 格式不符合正则表达式匹配结果,会报错

 

 

生产环境中,可以使用bin/slurper-inittab.sh 脚本连续操作

此外,sluerper可以将hdfs中的数据导入本地系统!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hdfs --daemon start datanode是Hadoop分布式文件系统(HDFS)命令之一,用于启动一个数据节点(Datanode)守护进程。 数据节点是HDFS集群中存储和管理实际数据的节点,它们负责处理客户端的读写请求,并与其他数据节点进行通信和数据同步。启动数据节点后,可以使用hdfs dfsadmin -report命令来查看当前HDFS集群中的节点信息,包括数据节点的数量、容量和使用情况等。 另外,可以使用hdfs --daemon stop datanode命令来停止数据节点守护进程。这可以在需要维护或调整集群配置时使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [hdfs --daemon start datanode指令介绍](https://blog.csdn.net/m0_47256162/article/details/129386984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [大数据笔记--Hadoop(第六篇)](https://blog.csdn.net/weixin_45895096/article/details/123469589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值