Jar Hadoop Hadoop_类路径问题
这个问题并不是指在整个集群中分发jar供工作人员使用 它指的是在客户机上指定多个附加库。更具体地说:我试图运行以下命令以检索SequenceFile的内容:Jar Hadoop Hadoop_类路径问题,jar,hadoop,classpath,Jar,Hadoop,Classpath,这个问题并不是指在整个集群中分发jar供工作人员使用 它指的是在客户机上指定多个附加库。更具体地说:我试图运行以下命令以检索SequenceFile的内容: /path/to/hadoop/script fs -text /path/in/HDFS/to/my/file 它向我抛出以下错误:text:java.io.IOException:WritableName无法加载类:util.io.DoubleArrayWritable 我有一个名为DoubleArrayWritable的可写类
/path/to/hadoop/script fs -text /path/in/HDFS/to/my/file
它向我抛出以下错误:text:java.io.IOException:WritableName无法加载类:util.io.DoubleArrayWritable
我有一个名为DoubleArrayWritable的可写类。事实上,在另一台计算机上,一切都运行良好
我试图将HADOOP\u类路径设置为包含包含该类的jar,但没有结果。实际上,在运行时:
/path/to/hadoop/script classpath
结果不包含我添加到HADOOP_类路径中的jar
问题是:在运行hadoop时如何指定额外的库(除了hadoop脚本自动包含在类路径中的库之外,还有其他库)
更多可能有帮助的信息:
- 我无法修改hadoop.sh脚本(或任何相关脚本)
- 我无法将我的库复制到hadoop安装目录下的/lib目录
- 在从hadoop.sh运行的hadoop-env.sh中有一行:
,这可能解释了为什么忽略我的hadoop\u CLASSPATH env变量export hadoop\u CLASSPATH=$hadoop\u HOME/lib
HADOOP\u类路径
export HADOOP_CLASSPATH=/path/to/jar/myjar.jar:$HADOOP_CLASSPATH; \
hadoop fs -text /path/in/HDFS/to/my/file
我会做好的。因为在这种情况下,这个变量在<代码> Hadoop Env.S/<代码>中被重写,因此,请考虑使用<代码> -LIJARARS < /C>选项来代替:
hadoop fs -libjars /path/to/jar/myjar.jar -text /path/in/HDFS/to/my/file
或者手动调用FsShell
:
java -cp $HADOOP_HOME/lib/*:/path/to/jar/myjar.jar:$CLASSPATH \
org.apache.hadoop.fs.FsShell -conf $HADOOP_HOME/conf/core-site.xml \
-text /path/in/HDFS/to/my/file
尝试将jar文件添加到默认类路径变量中,并将HADOOP_类路径附加到该变量中。 然后执行您的命令
export CLASSPATH=/your/jar/file/myjar.jar:$CLASSPATH:$HADOOP\u CLASSPATH
/path/to/hadoop/script fs-text/path/in/HDFS/to/my/file
如果有人想检查hadoop类路径,请在终端中输入hadoop类路径
。要编译它,请使用以下命令:
javac-cp$(hadoop classpath):path/To/jars/*java_file.java
是的,但是hadoop脚本执行以下操作:导出hadoop\u CLASSPATH=$hadoop\u HOME/lib。它重写了我的HADOOP_类路径正如我说的,我不想设置“分布式”类路径。我只想在客户端设置类路径machine@Razvan:好的。然后可以手动调用FsShell(参见上面的示例)