SFTP 问题解决

-----author:茅哥

相信对于很多的大数据开发工作人员,特别是数据采集接入人员,对于sftp这一重要组件想必是不陌生的吧,特别是那些众多小文件,需要通过sftp采集数据后解析进入大数据平台的HDFS,入到大数据平台的Hive等库表中。

那么在使用SFTP的过程中,必然会出现各种各样的问题,今天茅哥就带大家看看我在实际开发过程碰到的巨坑吧,分享给大家,避免大家少走弯路。




sftp大文件下载 java_sftp大文件下载 java


为了方便大家直接借鉴使用,我就不使用截图了,命令都是手打,方便大家复制使用!!!

登录

本地登录:

sftp mao@node8 mao@123

远程登录

lftp -u mao,mao@123 sftp://10.140.10.112

问题一:最大可打开文件数量限制

默认的最大可打开文件数据为1024,当需要传入的小文件增多时,就会发现很多人抱怨你的sftp不好用,打开的文件数量被限制了,那么如何更改用户的最大打开文件数量呢?如下:

修改最大的文件数(永久生效)

注意

不要用ulimit去设置,智能临时会话生效!!!且此时的UsePAM的值为yes!

问题二:操作sftp响应慢,卡顿严重

排查发现usepam配置是处于打开状态,该参数设置为yes时,会对用户的每次登陆进行校验,但是一直会有登陆失败的日志写入到btmp文件中,导致btmp文件过大,出现了卡顿现象!

修改UsePAM设置:改为no

问题三:修改UsePAM值为no后,openfiles设置的值失效

UsePAM参数详解

该参数是设置登录认证,关闭后设置为no,limits.conf设置的最大可打开文件数就会失效,从65536变回1024;过一段时间后你就会发现问题一又来了!!!所以不得不将UsePAM设置为yes。

那么自然而然问题二就没办解决了!该参数设置为yes,会导致随机出现登录失败,登录失败次数到达65536后无法登录,需重置,导致日志文件/var/log/btmp文件过大,服务器节点负载过高,出现响应慢卡顿情况。

如下命令可以检查登录失败的次数

解决usepam为yes出现的问题

问题四:此时可能出现账号无法登录现象

用户登录失败次数过多时(我这里设置的65535),会出现被锁定的现象,需要等待一定的时间,才可以继续登录。

所以还需要在定时任务的脚本中增加,重置sftp登录失败的次数!

总结

如上四个步骤下来后,你就会发现,文件的最大可打开数量、卡顿现象、账号锁定现象等问题都通通解决了。

跟着茅哥一起进入大数据吧,带你学习不同的大数据内容。带你一起跳过当年踩过的坑!!!