标签: hadoop-native-library

在OS/X上找不到Hadoop本机库

hadoop从github 下载了源代码,并使用以下native选项进行编译:

mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true
Run Code Online (Sandbox Code Playgroud)

然后我将.dylib文件复制 到$ HADOOP_HOME/lib

cp -p hadoop-common-project/hadoop-common/target/hadoop-common-2.7.1/lib/native/*.dylib /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/lib
Run Code Online (Sandbox Code Playgroud)

LD_LIBRARY_PATH已更新并且hdfs已重新启动:

 echo $LD_LIBRARY_PATH
 /usr/local/Cellar/hadoop/2.7.2/libexec/lib:
 /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home//jre/lib
Run Code Online (Sandbox Code Playgroud)

(注意:这也意味着Hadoop的答案"无法为你的平台加载native-hadoop库"错误在docker-spark上?对我来说不起作用..)

checknative仍然统一返回false:

$stop-dfs.sh && start-dfs.sh && hadoop checknative
16/06/13 16:12:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [sparkbook]
sparkbook: stopping namenode
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
16/06/13 16:12:50 WARN util.NativeCodeLoader: …
Run Code Online (Sandbox Code Playgroud)

macos hadoop hadoop-native-library

14
推荐指数
2
解决办法
1万
查看次数

OpenCV库加载在hadoop但不能正常工作

我正在尝试将OpenCV与Hadoop一起使用.以下是我的代码.我只是测试OpenCV库是否与Hadoop一起工作,即当我在public int run(String[] args)Hadoop 函数中运行OpenCV代码时 .

我在互联网上搜索,并找到了一些如何libopencv_java310.so在Hadoop中添加OpenCV本机库()的方法.我尝试了一些方法,但它没有用.例如本教程.

它说添加JAVA.LIBRARY.PATHhadoop-config.sh文件.但它没有用.我收到了这个错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
at line
System.loadLibrary(Core.NATIVE.LIBRARY.NAME);
Run Code Online (Sandbox Code Playgroud)

最后,我将OpenCV本机库(libopencv_java310.so)添加到此路径(从Internet获得解决方案)

$HADOOP_HOME/lib/native
Run Code Online (Sandbox Code Playgroud)

它似乎有效.我没有得到上述错误.但是我在下一行得到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1(Ljava/lang/String;)
Run Code Online (Sandbox Code Playgroud)

此错误符合以下条件:

CascadeClassifier cad = new CascadeClassifier();
Run Code Online (Sandbox Code Playgroud)

据我所知,如果未加载OpenCV本机库,则会出现此错误.但是现在加载了库,我不知道这个错误的原因是什么.

 public int run(String[] args) throws Exception {
    Configuration conf = new Configuration();
    Job job = Job.getInstance(conf);
    job.setJarByClass(readVideoFile.class);
    job.setJobName("smallfilestoseqfile");
    job.setInputFormatClass(readVideoInputFormat.class);
    job.setNumReduceTasks(1);
    FileInputFormat.setInputPaths(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(Text.class);
    job.setMapperClass(readVideoMapper.class);

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    CascadeClassifier cad …
Run Code Online (Sandbox Code Playgroud)

java opencv hadoop java.library.path hadoop-native-library

6
推荐指数
1
解决办法
504
查看次数

配置 Spark on Yarn 以使用 hadoop 本机库

概括

我是 Spark 新手,在使用 Snappy 压缩保存文本文件时遇到了问题。我不断收到下面的错误消息。我遵循了互联网上的许多指示,但没有一个对我有用。最终,我找到了一个解决方法,但我希望有人就正确的解决方案提供建议

java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z
Run Code Online (Sandbox Code Playgroud)

技术栈

  • Ubuntu 20.04.1 64 位
  • Hadoop 3.3.0
  • 火花3.0.0
  • OpenJDK 1.8.0_272

我只使用 Spark-shell 来测试我的代码,并使用以下命令启动它:

spark-shell --master yarn \
  --num-executors 1 \
  --executor-memory 512M
Run Code Online (Sandbox Code Playgroud)

我尝试解决该问题的方法

在.bashrc中添加以下环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
Run Code Online (Sandbox Code Playgroud)

在spark-env.sh中添加以下环境变量

export JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/opt/hadoop/lib/native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hadoop/lib/native
export SPARK_YARN_USER_ENV="JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH,LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
Run Code Online (Sandbox Code Playgroud)

检查 Snappy 库是否存在

hadoop checknative
...
Native library checking:
hadoop:  true /opt/hadoop/lib/native/libhadoop.so.1.0.0
zlib:    true /lib/x86_64-linux-gnu/libz.so.1
zstd  :  true /lib/x86_64-linux-gnu/libzstd.so.1
snappy:  true /lib/x86_64-linux-gnu/libsnappy.so.1
lz4:     true revision:10301
bzip2:   true …
Run Code Online (Sandbox Code Playgroud)

hadoop-yarn apache-spark hadoop-native-library

5
推荐指数
0
解决办法
1932
查看次数