作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想知道如何设置引用 HDFS 的类路径?我找不到任何引用。
java -cp "how to reference to HDFS?" com.MyProgram
如果我不能引用 hadoop 文件系统,那么我必须将所有引用的第三方库/jar 复制到每台 hadoop 机器上的 $HADOOP_HOME 下的某处……但我想通过将文件放入 hadoop 文件系统来避免这种情况。这可能吗?
程序运行的示例 hadoop 命令行(我的期望是这样的,也许我错了):
hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.3.jar -input inputfileDir -output outputfileDir -mapper /home/nanshi/myprog.java -reducer NONE -file /home/nanshi/myprog.java
但是,在上面的命令行中,我如何添加 java 类路径?像 -cp "/home/nanshi/wiki/Lucene/lib/lucene-core-3.6.0.jar:/home/nanshi/Lucene/bin"
最佳答案
我想您正在尝试做的是在您的分布式程序中包含第三方库。您可以做很多选择。
选项 1)我发现最简单的选项是将所有 jar 放在所有节点上的 $HADOOP_HOME/lib(例如/usr/local/hadoop-0.22.0/lib)目录中,然后重新启动您的 jobtracker 和 tasktracker。
选项 2) 为此使用 libjars 选项命令 hadoop jar -libjars comma_seperated_jars
选项 3) 将 jar 包含在 jar 的 lib 目录中。您必须在创建 jar 时执行此操作。
选项 4) 在您的计算机中安装所有 jar 并将它们的位置包含在类路径中。
选项 5) 您可以尝试将这些 jar 放在分布式缓存中。
关于java - 如何在 hadoop 文件系统上为 Java 程序设置类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696563/
我是一名优秀的程序员,十分优秀!