如何从 HDFS 获取和查看 oracle BLOB (Image) 数据到本地系统?

Posted

技术标签:

【中文标题】如何从 HDFS 获取和查看 oracle BLOB (Image) 数据到本地系统?【英文标题】:How to get and view oracle BLOB (Image) data from HDFS to local system? 【发布时间】:2016-06-07 14:32:05 【问题描述】:

我在 oracle 数据库中存储了一个图像文件作为 BLOB,并使用下面的 Sqoop 命令将文件传输到 HDFS -

sqoop import --connect jdbc:oracle:thin:@hostname --username -password --m 5 --table table_name  --target-dir '' --split-by id;

现在我想在本地系统中查看图像文件。但是从HDFS传输文件到我的本地系统后,我只能看到一些十六进制代码,而不是图像。

我尝试使用 Java 代码将十六进制代码转换为 Base64 字符串。但没有成功。

文件的示例输入:

47 49 46 38 39 61 00 05 87 02 f7 00 00 00 00 00 00 00 33 00 00 66 00 00 99 00 00 cc 00 00 ff 00 2b 00 00 2b 33 00 2b 66 00 2b 99 00 2b cc 00 2b ff 00 55 00 00 55 33 00 55 66 00 55 99 00 55 cc ........

是否有任何 Sqoop 命令可以直接将 oracle 的 BLOB 作为图像(.jpg/.jpeg)存储到 HDFS?或者是否有其他解决方案?

【问题讨论】:

我的回答你有什么收获吗? 【参考方案1】:

部分答案可以在这里找到

Re-parsing Blob data stored in HDFS imported from Oracle by Sqoop

本质上解析为像avro这样的二进制格式。

然后使用类似的方式将字段流式传输到您的本地系统

How to view an image from blob column in Oracle with JasperReports?

【讨论】:

以上是关于如何从 HDFS 获取和查看 oracle BLOB (Image) 数据到本地系统?的主要内容,如果未能解决你的问题,请参考以下文章

如何从Oracle到hive

如何用sqoop查看oracle的表

如何从 Oracle SQL 中的 BLOB 获取文本内容

如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)

如何从 HDFS 获取只需要的文件?

我如何获取Oracle,查看正在运行的程序是啥?