ftp提取文件到hdfs

实际场景中,我们经常需要通过ftp协议把不同数据源的文件统一汇入到hdfs数据中心,经过实践,有以下的三种方法,分别列出其优缺点及适用场景。

一、先把文件ftp到本地,然后用命令上传到HDFS

HDFS上传命名

hdfs dfs –put [local_path] [hdfs_path]

优点:文件在本地可以进行本地化的一系列操作后,再放回hdfs中
缺点:文件传输经过两层,并且从源服务器到本地提取是单机串行,比较消耗时间。

适用于文件放入hfds前需要预处理的情景,如:.zip压缩文件不被hadoop支持的,所以我们可以先在本地转压缩方式然后再放入hdfs中。

1.ftp下载到本地

两种方法:
1)ftp工具下载

mget_ftp()
{
user=
passwd=
host=
local local_dir=$1
local remote_dir=$2
test -e $local_dir ||mkdir -p $local_dirftp -inv $host <<EOFuser $user $passwdbinarycd $remote_dirlcd $local_dirhashprompt offmget *#rmdelete /data/cyf_test/*#rmdir /data/cyf_testclosebye
EOF
}

2)wget

mget_using_wget()
{
local remote_dir=$1
wget ftp://IP:PORT/$REMOTE_DIR/* --ftp-user=$NAME --ftp-password=$PASSWORD --dont-remove-listing -r
}

这种方法会在本地建立一个和ftp服务器相同的目录结构
或者自定目录

wget --ftp-user=$USER --ftp-password=$PASSWORD ftp://$HOST/$remote_dir/$file -O $local_dir/$file

wget的速度相对于lftp和ftp快很多。
3)lftp
需要安装lftp
获取远程ftp上的列表

lftp -e 'ls;quit' sftp://$USER:$PASSWORD@$HOST/$REMOTE_DIR|sed '1,2d'|awk '{print $NF}' > $REMOTE_LIST

对数据下载

lftp sftp://$USER:$PASSWORD@$HOST  -e "get $REMOTE_DIR/$file -o $LOCAL_DIR; bye"

2.删除ftp服务器上的文件

del_file_from_ftp()
{
u=
p=
ip=
local file=$1
local remote_dir=$2
ftp -inv $ip <<EOFuser $u $pbinarypromptdelete $remote_dir/$filebye
EOF
}mdel_ftp()
{
local local_dir=$1
local remote_dir=$2
for file in `find $local_dir ! -name ".*"|sed '1d'|awk -F "/" '{print $NF}'`
dodel_file_from_ftp $file $remote_dir
done
}
//设置ssh互信登录
mdel_ftp_using_ssh()
{
local local_dir=$1
local remote_dir=$2
for file in `find $local_dir ! -name ".*"|sed '1d'|awk -F "/" '{print $NF}'`
dossh  -t $USER@$IP "rm $remote_dir/$file"
done
}

3.上传到HDFS

upload_data_to_hdfs()
{
local upload_dir=""
local des_hdfs_dir=""
for file in `ls -l $LOCAL_DIR|grep "*.dat"|sed '1d'|awk '{print $NF}'`
doecho "upload $file to $des_hdfs_dir"$HDFS_EXE dfs -put $upload_dir/$file $des_hdfs_dir
done
}

二、HDFS dfs -cp

hdfs dfs –cp [ftp://username:password@hostname/ftp_path] [hdfs:///hdfs_path]

优点:简单,提取速度快
缺点:CLI执行不会显示进度
适用场景:适用于小文件的ftp拷贝。

这种方法没有实际使用过。

三、hadoop distcp

hadoop distcp [ftp://username:password@hostname/ftp_path] [hdfs:///hdfs_path]

优点:简单,能显示拷贝进度,并且是分布式提取的,数据比较快。
缺点: 如果拷贝的文件是不断有其他程序写入,会报错,因为该命令最后要对数据进行checksum导致两边不一致,当然,该命令是主要用于集群间拷贝的。

适用场景:大量文件或大文件的拷贝。

ftp提取文件到hdfs相关推荐

  1. ftp 服务器 文件 连接 导出,ftp 服务器 文件 连接 导出

    ftp 服务器 文件 连接 导出 内容精选 换一换 "数据导入"章节适用于MRS 3.x及后续版本.Loader是实现MRS与外部数据源如关系型数据库.SFTP服务器.FTP服务器 ...

  2. vb获取服务器文件路径,vb打开ftp服务器文件路径

    vb打开ftp服务器文件路径 内容精选 换一换 该任务指导用户使用Loader将数据从HDFS/OBS导出到SFTP服务器.创建或获取该任务中创建Loader作业的业务用户和密码.确保用户已授权访问作 ...

  3. 文件上传到ftp服务器大小变小,ftp服务器文件上传大小设置

    ftp服务器文件上传大小设置 内容精选 换一换 文件选择上传控件,用于上传文件. Windows场景中,当把源端服务器迁移到华为云后,目的端服务器C盘的已用空间比对应源端服务器C盘的已用空间大至少1G ...

  4. ftp读取服务器文件是否存在,java读取ftp服务器文件是否存在

    java读取ftp服务器文件是否存在 内容精选 换一换 弹性云服务器通过SNAT访问公网上服务器,出现TCP建链失败的情况,可通过以下方法进行排查.执行以下命令,查看远端服务器是否开启了"t ...

  5. 直接打开服务器上的文件,ftp服务器文件直接打开

    ftp服务器文件直接打开 内容精选 换一换 Atlas 200 DK开发者板支持通过USB接口或者网线与Mind Studio进行连接,连接示例图如图1所示.Ubuntu服务器若想与Atlas 200 ...

  6. vs安装一直在提取文件_Visual Studio 2019下载及安装教程

    宸1分钟前 这可是我珍藏多年的资源啊. Visual Studio 2019 Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.是目前最流行的Windows ...

  7. 不限文件类型的ftp服务器,ftp服务器文件类型

    ftp服务器文件类型 内容精选 换一换 在SAP系统中,如果选择共享文件系统由SFS Turbo而非NFS Server提供时,例如SAP HANA中的Backup卷或者Shared卷,您需要创建SF ...

  8. ftp服务器上传的文件打不开,ftp服务器文件有的上传不了

    ftp服务器文件有的上传不了 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器 ...

  9. 记录一下提取文件夹中所有文件名字

    配置Opencv很有用 快速提取文件夹中所有文件的名称! - 简书 (jianshu.com)

最新文章

  1. keepalived_nginx实现discuz负载均衡和高可用
  2. Mybatis入门及于hibernate的区别
  3. Window (Standard IO)
  4. ICCV 2019 Oral | 三维ZAO脸,单张图片估计人脸几何,效果堪比真实皮肤
  5. 算法提高 质因数2(java)
  6. Servlet规范之Filter工作原理
  7. Scrapy框架的用法实例
  8. 虚拟环境使用自动化软件能够节省成本吗?
  9. 大小仅17KB!这个微型风格迁移模型太好玩了 | 代码+教程
  10. pair的用法 make_pair
  11. 三国将星录java阵容_三国将星录,通关攻略
  12. can硬件结构和工作原理_汽车CAN总线工作原理及测量方法详解
  13. window10 无法访问 Toshiba e-studio355 扫描打印一体机的机器扫描文件夹
  14. 计算机对环境保护的应用,计算机技术在环境保护中的应用
  15. Fixture证书权限导致CSR申请证书失败的问题 [已解决]
  16. unity实用技能,控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
  17. oracle中笛卡尔积怎么用,Oracle的表连接方法(四)笛卡尔积
  18. 通过PS制作手机图标心得总结
  19. 牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )
  20. cuda-z/gpu-z/cpu-z工具分析GPU显卡和CPU算力信息

热门文章

  1. Vue 个别手机或者 IOS8.2浏览器打不开,显示空白的解决方案
  2. windows server实现DNS(三)DNS辅助区域
  3. APP推广场景化:让用户主动下载你的产品!
  4. 3D真人手办自己也能做,颠覆你的想象!
  5. 在android Studio中设计app的底部导航栏
  6. 桌面云客户端资源计算机,关于云桌面技术的实验室资源共享平台建设.pdf
  7. Android学习系列(19)--App离线下载
  8. Android的http网络请求失败
  9. python双手打字_盲法介绍及python盲打练习系统
  10. Transformer:SegFormer个人总结