【问题标题】:Apache Tika not able to parse HDFS filesApache Tika 无法解析 HDFS 文件
【发布时间】:2018-03-13 12:33:30
【问题描述】:

test-on-Unix with internet

test-on Spark without internet

我正在使用 Tika 库来解析存储在 Hadoop Cluster 中的文档。

我正在使用以下代码:-

import tika
import urllib3
from tika import parser

data = parser.from_file("hdfs://localhost:50070/user/sample.txt")

在 linux 上,如果我给出一个本地路径,tika 能够解析,但对于 hdfs 路径,我得到一个

Spark I/O error: No such file or directory.

任何线索/替代方案都会非常有帮助。

【问题讨论】:

    标签: hadoop pyspark hdfs apache-tika


    【解决方案1】:

    Tika python 模块不支持从 HDFS 读取,因为我检查了源代码。您应该使用以下命令将 tika jar 添加到 pyspark/spark-shell 并检查 Tika Usage Documentation 以了解如何解析文件(parser.from_file 是不适用于 HDFS 的 Python 实现):

    ./pyspark --jars /path/to/your/local/tika/jar/file
    

    ./spark-shell --jars /path/to/your/local/tika/jar/file
    

    请注意,从 HDFS 读取数据的端口号是 9000 或 8020,而不是 50070。

    【讨论】:

    • 这两个端口我都试过了。得到同样的错误。不确定 Tika 是否可以解析 HDFS 文件。
    • @SugandhaMishra Tika python 模块不支持从 HDFS 读取,因为我检查了源代码。您应该使用pyspark --jars /path/to/your/jar 命令将 tika jar 添加到 pyspark,并在 Spark + HDFS 框架中使用它。测试一下。
    • 感谢您的快速回复。这是我所做的:- tika jar 位于 usr/share/java 中的本地 unix 从本地 unix 我进入 pyspark shell 并执行 tika jar。 pyspark --jars /usr/share/java/tika-server-1.16.jar 进入spark shell后,我运行了上面的代码,但是我得到的输出是:'在服务器上找不到文件'。我的疑问是:如果在 tika 解析器中,我给出了一个 hdfs 路径('hdfs://localhost:50070/.."),我是否需要在使用 pyspark --jars 时提及 tika jar 的 hdfs 路径/path/to/your/jar?任何关于它的指针都会很有帮助
    • @SugandhaMishra 不,不需要将 jar 文件放入 HDFS。它适用于本地路径。错误(“在服务器上未找到文件”)何时发生?我需要更多细节。如果您使用 --jars 开关运行 pyspark,您应该使用 py4j 的 java 类(参见此处的示例:stackoverflow.com/questions/33544105/…)。如果你可以使用 spark-shell,你只需导入 org.apache.tika._ 并使用它。
    • 感谢您的洞察力。首先,错误发生在以下行: data = parser.from_file(hdfs://localhost_or_ip:9000/....") 请注意,当我运行相同的代码来解析本地 unix 中的文件而不是集群时(通过给出 path =“home/filename.txt”),它运行得非常好。似乎它没有像您在上面确认的那样读取 hdfs 路径。我尝试了您输入 pyspark shell 的代码(pyspar --jars 开关)和使用 py4j 类。在 shell 中,我可以导入 org.apache.tika.parser,但是当我使用 parser.from_file 时,它​​会抛出一个错误,提示未定义解析器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-05-07
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多