oozie错误:不允许访问本地文件系统

d5vmydt9  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(384)

sqoop导入操作在作为oozie作业运行时出错。
我使用的是pesudo分布式hadoop集群。我遵循以下步骤。
1.启动oozie服务器
2.编辑的job.properties和workflow.xml文件
3.将workflow.xml复制到hdfs中
4.2.2工作
我的job.properties文件
名称节点=hdfs://localhost:8020
工作追踪者=localhost:8021
queuename=默认值
examplesroot=示例
oozie.use.system.libpath=true
oozie.wf.application.path=${namenode}/user/hduser/${examplesroot}/apps/sqoop
workflow.xml文件

<action name="sqoop-node">
    <sqoop xmlns="uri:oozie:sqoop-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <prepare>
            <delete path="${nameNode}/user/hduser/${examplesRoot}/output-data/sqoop"/>
            <!--<mkdir path="${nameNode}/user/hduser/${examplesRoot}/output-data"/>-->
        </prepare>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <command>import --connect "jdbc:mysql://localhost/db" --username user --password pass --table "table" --where "Conditions" --driver com.mysql.jdbc.Driver --target-dir ${nameNode}/user/hduser/${examplesRoot}/output-data/sqoop -m 1</command>
        <!--<file>db.hsqldb.properties#db.hsqldb.properties</file>
        <file>db.hsqldb.script#db.hsqldb.script</file>-->
    </sqoop>
    <ok to="end"/>
    <error to="fail"/>
</action>

<kill name="fail">
    <message>Sqoop failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>

我原以为这项工作能顺利进行。但这项工作失败了,它出现了以下错误。
不支持操作异常:不允许访问本地文件系统。
我不明白我错在哪里,为什么它不允许我完成这项工作?有人能帮我解决这个问题吗。

xeufq47z

xeufq47z1#

oozie sharelib(带有sqoop操作的依赖项)存储在hdfs上,服务器需要知道如何与hadoop集群通信。不允许访问存储在本地文件系统上的sharelib,请参阅cve-2017-15712。
请复习 conf/hadoop-conf/core-site.xml ,并确保它不使用本地文件系统。例如,如果hdfs namenode侦听localhost上的端口9000,请配置 fs.defaultFS 相应地。

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
...
</configuration>

或者,您可以删除rawlocalfilesystem类(虚拟实现)并重新启动服务器,但不建议这样做(即服务器易受cve-2017-15712攻击)。
希望这有帮助。也可以看到这个答案。

相关问题