如何将 jar 从我的本地文件系统和 Hadoop 分布式文件系统 (HDFS) 传递到 -Dpig.additional.jars
?
假设我有两个 jar :
- /home/local/myjar1.jar
- hdfs:///user/notlocal/myjar2.jar
第一个 jar 在我的本地目录中。第二个 jar 在 HDFS 中。
我想在 Hadoop 集群上运行 test_script.pig1
并将以上两个 jar 包含在 -Dpig.additional.jars
中。
pig -x mapreduce -f test_script.pig1 -Dpig.additional.jars=/home/local/myjar1.jar:hdfs:///user/notlocal/myjar2.jar
不起作用因为 hdfs
被视为一个文件(因为它后面有一个冒号)。
我如何使它工作?
最佳答案
我没有找到将 Hadoop 分布式文件系统 (HDFS) 上的 jars 传递到本地文件系统的方法。
我想到了一个解决方法:将 HDFS jar 移动到本地文件系统。
假设我有两个 jar :
- /home/local/myjar1.jar
- hdfs:///user/notlocal/myjar2.jar
第一个 jar 在我的本地目录中。第二个 jar 在 HDFS 中。
我将 HDFS 上的 myjar2.jar
复制到我的本地文件系统:
hadoop fs -copyToLocal/user/notlocal/myjar2.jar/home/local/
然后我做了:
pig -x mapreduce -f test_script.pig1 -Dpig.additional.jars=/home/local/myjar1.jar:/home/local/myjar2.jar
关于hadoop - -Dpig.additional.jars 包含 HDFS 和本地文件系统上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002210/