我的系统上安装了sqoop,flume和spark,但我不确定如何导入图像文件。
我能够使用sqoop从RDBMS导入数据,并且能够使用flume导入文本文件。
如何在hdfs上导入图像?
答案 0 :(得分:0)
Hadoop没有文件类型的概念(例如Windows),因此您可以使用任何工具将图像导入Hadoop。
如果BLOB列中有图像,则使用SQOOP。
Flume支持二进制数据,因此您可以使用BlobDeserializer。
BlobDeserializer
此反序列化器为每个事件读取二进制大对象(BLOB),通常每个文件一个BLOB。例如PDF或JPG文件。请注意,此方法不适用于非常大的对象,因为整个BLOB都缓存在RAM中。
在HDFS中,基本命令-put
或-copyFromLocal
将起作用。
$ hdfs dfs -put about.png /tmp
$ hdfs dfs -ls /tmp/about.png
-rw-r--r-- 3 testuser supergroup 53669 2017-06-30 11:34 /tmp/about.png
$
或者您可以使用WebHDFS API远程执行此操作。
参考文献:
Import BLOB (Image) from oracle to hive https://flume.apache.org/FlumeUserGuide.html#blobdeserializer https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Create_and_Write_to_a_File