Hadoop ls与Unix ls差异:为何/tmp/abc下文件仅Hadoop命令可见?
问题解答:本地文件系统与HDFS的核心差异
嗨,作为刚入门Hadoop的新手,碰到这个问题真的太常见啦!我来给你把这个事儿讲明白:
核心原因:两个完全独立的存储空间
你登录的Unix服务器的本地文件系统,和Hadoop集群的**HDFS(分布式文件系统)**是完全分开的两个存储系统——就像两台毫不相干的电脑,它们的文件不会互相可见。
两个命令的本质区别
- 执行
ls /tmp/abc时,你是在查看当前登录的Unix机器本地磁盘里的/tmp/abc目录内容,这个路径只属于这台机器的本地存储。 - 执行
hadoop fs -ls /tmp/abc时,你是在查看Hadoop集群统一管理的分布式存储里的/tmp/abc目录,HDFS的数据分散存储在集群各个节点上,和你登录的那台机器的本地磁盘没有直接关联。
Informatica BDM的写入逻辑
当你通过Hadoop连接使用Informatica BDM写入文件时,它默认会把文件写到HDFS中,而不是你登录的Unix服务器的本地文件系统。这就是为什么你在本地看不到文件,但用Hadoop命令能找到的原因。
小补充:如果想写到本地怎么办?
要是你需要把文件写到Unix服务器的本地磁盘,在指定路径的时候要加上本地文件系统的前缀 file://,比如写成 file:///tmp/abc/test.txt,这样BDM就会把文件写入到本地的/tmp/abc目录下了。
内容的提问来源于stack exchange,提问作者Arkade
相关产品推荐
相关产品推荐

