mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS

image.png 之前好像在群里和大家 讨论过 越过公司跳板机 在python程序里直接提取 HDFS 或者hive 数据,但是 大家好像都没有很好的方法,反而有其他操作比较繁琐折中的方法,比如有设置ip 白名单 ,这种对于 固定工作的还够用,但是有局限性,假如员工经常周六日在家加班 员工出差在外地的话,就需要人工再去配置 临时白名单,容易出现 遗漏或者往期临时ip 不小心被非法使用。
人毕竟 都比较懒 ,聪明的人就更懒,任何让我们感受到不够便捷的操作都会让我们产生厌烦。之前尝试各种方法都作罢了,现在 又碰到了这些可恶的跳板机 ,不得已就得自己好好整整,这次我一定要跨越它。
当然我刚开始不是想自己整,我找到我司运维,运维小哥好像很厉害,我把我的困惑告诉了他,他很不屑的丢给我 一句,你可以使用 ssh 隧道tunnel 技术。。。。
这个我也知道呀,可是不会操作呀,结果他还是告诉我 需要我自己整,好吧 ,既然没有人帮,那我自己来吧。
首先 安装 ssh tunnel mac 客户端,只有7mb ,我安装的2016 版,其实mac Terminal 也是可以做tunnel的,但是我嫌 麻烦,ssh tunnel mac客户端是其中的一款,而且非常优秀哦。
mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS
文章图片
image.png 首先 我们要对 ssh tunnel 技术稍微了解一下,其实ssh tunnel 并没有 不经过跳板机了,只是 操作足够自动化,在穿过 跳板机的时候,你没有感觉罢了。它需要你把服务器要调用程序的ip 和port 映射到你本地电脑 ip 和你设置的没有被占用的本地电脑端口 port上,这种映射关系 在启动后被一直长连接着,你这样直接操作本地的port 就等于在操作 服务器的程序的port。
mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS
文章图片
image.png mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS
文章图片
image.png 需要注意的就是服务器上的你的程序的ip 和port ,一定要准确,另外就是 跳板机的登录port
还有你本地机器的 没有被占用的port
【mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS】这些都 配置好了 ,点击 create 配置就OK了,刚开始是没有 connect ,然后点击连接。
mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS
文章图片
image.png 然后在本地 的pycharm IDE中 书写python 程序

from pyhive import hive import numpy asnp importpandas aspd conn = hive.Connection(host='127.0.0.1', port=4200, username='zhn',auth='LDAP',password="a12b" ,database='demodb')cursor=conn.cursor() cursor.execute('select * from fkdb.tab_client_label limit 10') for result in cursor.fetchall(): print(result)

然后奇迹就出现了,查询到的服务器hive库中的数据在本地就呈现出来了

mac|mac ssh 隧道| 使用 ssh tunnel 越过跳板机 操作服务器 hive HDFS
文章图片
image.png 是不是很方便,但是对算法研发人员方便了,但是对公司来说不太安全,使用 ssh tunnel 我可以做到 【偷数据】,直接读取 并 本地落盘
而且 这种不能被正常的监控到,我司敏感数据 如果要导出的时候,本来会有报警,但是我使用ssh tunnel 不会报警,【看到即可得到】

    推荐阅读