如何将数据移入和移出Hadoop?
Hadoop -put命令的行为与Linux中的Linux cp命令不同,如果目标已存在,则会被覆盖; 在Hadoop中,副本失败并显示错误:
必须添加-f选项以强制覆盖文件:
与Linux cp命令非常相似,可以使用相同的命令复制多个文件。在这种情况下,最后一个参数必须是HDFS中复制本地文件的目录:
可以使用Linux管道将命令输出传递到HDFS文件——使用相同的-put命令并在其后添加单独的连字符,这告诉Hadoop从标准输入读取:
要测试文件或目录是否存在,请使用-test命令和-e或-d选项分别测试文件或目录是否存在。如果文件或目录存在,则命令的代码为0;如果不存在,则为1:
如果只想在HDFS中“touch”文件(创建一个新的空文件),那么touchz选项可以完成该工作: ![]() ![]() CLI专为交互式HDFS活动而设计,它也可以合并到脚本中,以用于自动执行某些任务。CLI的缺点是级别较低,并且没有内置任何自动化机制。它需要为每个命令分配一个fork,如果在bash脚本中使用可能没问题,但如果试图将HDFS功能集成到Python或Java应用程序中,可能就会出现问题。在这种情况下,为每个命令启动外部进程的开销可能也是想要避免的。 使用REST加载文件 CLI便于快速运行命令和编写脚本。但是,它会产生为每个命令分配一个单独进程的开销,这可能是想要避免的,特别是编程语言与HDFS连接时。 问题 没有HDFS本机接口的编程语言如何与HDFS交互。 解决方案 使用Hadoop的WebHDFS接口,该接口为HDFS操作提供全功能的REST API。 讨论 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |