spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?

我64位机器,当时hadoop启动的时候出现这个问题是因为hadoop本身自带的本地库是32位的,我现在hadoop2.2.0已经替换了本地库为64位的了,并且编译spark的时候采用了相对应的版本:
SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
但是现在进入spark shell的时候依然最后会出现如下警告,有没有人成功解决了这个问题呢?我spark是0.9.1版本的,谢谢各位大神!
WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

主要是jre目录下缺少了libhadoop.so和libsnappy.so两个文件。具体是,spark-shell依赖的是scala,scala依赖的是JAVA_HOME下的jdk,libhadoop.so和libsnappy.so两个文件应该放到$JAVA_HOME/jre/lib/amd64下面。
这两个so:libhadoop.so和libsnappy.so。前一个so可以在HADOOP_HOME下找到,如hadoop\lib\native。第二个libsnappy.so需要下载一个snappy-1.1.0.tar.gz,然后./configure,make编译出来,编译成功之后在.libs文件夹下。
当这两个文件准备好后再次启动spark shell不会出现这个问题。

作者:Edward Lee
链接:http://www.zhihu.com/question/23974067/answer/26267153
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间: 2024-08-25 00:32:13

spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?的相关文章

WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?)

原文地址: https://www.zhihu.com/question/23974067/answer/26267153 原文内容: 我64位机器,当时hadoop启动的时候出现这个问题是因为hadoop本身自带的本地库是32位的,我现在hadoop2.2.0已经替换了本地库为64位的了,并且编译spark的时候采用了相对应的版本:SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly但是现在进入spark shell的时候依

Hadoop中WordCount代码-直接加载hadoop的配置文件

Hadoop中WordCount代码-直接加载hadoop的配置文件 在Myeclipse中,直接编写WordCount代码,代码中直接调用core-site.xml,hdfs-site.xml,mapred-site.xml配置文件 package com.apache.hadoop.function; import java.io.IOException; import java.util.Iterator; import java.util.StringTokenizer; import 

Hadoop本地库介绍及相关问题解决方法汇总

1.hadoop本地库的作用是什么?2.哪两个压缩编码器必须使用hadoop本地库才能运行?3.hadoop的使用方法?4.hadoop本地库与系统版本不一致会引起什么错误?5.$ export HADOOP_ROOT_LOGGER=DEBUG,console有什么作 本帖最后由 pig2 于 2014-3-20 20:46 编辑目的 鉴于性能问题以及某些Java类库的缺失,对于某些组件,Hadoop提供了自己的本地实现. 这些组件保存在Hadoop的一个独立的动态链接的库里.这个库在*nix平

HADOOP docker(八):hadoop本地库

前言2. Native Hadoop Library3. 使用本地库4. 本地库组件5. 支持的平台6. 下载7. 编译8. 运行时观察9. 检查本地库10. 如果共享本地库 小伙伴还记得每次启动hdfs就会报can't find native libriaries吗?今天我们就来聊聊这个~ 文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html

《Entity Framework 6 Recipes》中文翻译系列 (29) ------ 第五章 加载实体和导航属性之过滤预先加载的实体集合和修改外键关联

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-13  过滤预先加载的实体集合 问题 你想过滤预先加载的实体集合,另外,你想使用Code-First来管理数据访问 解决方案 实体框架不支持直接使用Include()时过滤关联实体集合,但我们可以通过创建一个匿名类型来完成同样的事情,匿名类型包含实体和要过滤的关联实体集合. 假设你有如图5-28所示的概念模型 图5-28 一个包含movies(电影)和它的categories(目录)的模

git问题:git提交的时候总是提示key加载失败,总是需要手工将key加到Pageant中

问题描述: 重装过一次系统,在重装之前git+tortoisegit配合很好,提交的时候都能自动加载ppk,但是重装系统后,也重新生成pulic key上传到了服务器,但是每次提交的时候都提示key加载失败,必须手工的将key加载到pageant中才可以正常提交 问题分析: 每个git项目的config文件都保存了ppk的地址,重装完系统重新生成key后,ppk的保存路径和文件名都发生了变更,所以导致每次提交的时候,依据config都找不到ppk的地址,所以报错! 解决办法: 打开Tortois

js文件最后加载(在window.load事件发生后再加载js文件),用于解决因jQuery等js库导致网页加载慢的问题

需引入文件:lazyload-min.js <script src="JS/lazyload-min.js" type="text/javascript"></script> 插入代码: function loadscript() { LazyLoad.loadOnce([ 'JS/touch.js', 'http://libs.baidu.com/jquery/1.2.3/jquery.min.js' ], loadComplete); }

类的加载机制和反射——一、类的加载、连接和初始化

类的加载.连接和初始化 1.JVM和类 (1)当调用java命令运行某个Java程序时,该命令会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少线程,他们都处于该Java虚拟机进程里. (2)同一个JVM的所有线程.所有变量都处于同一个进程里,他们都使用该JVM进程的内存区. 下面的ATast1和ATest2的输出结果分别是7和6,因为这两个不是位于同一个JVM中的. public class A { //定义该类的类变量 public static int a = 6

页面加载时让其显示笼罩层与加载等待图片

页面加载时让其显示笼罩层与加载等待图片(结局比较完美,过程很坎坷,所以一定总结整理下,备用): 用了ajax异步,是因为js内容不能即时的显示出来,因为js是单线程,要把队列中的任务执行完后才会执行刚才对js的处理 要用beforeSend,complete的时候必须要用ajax异步 beforeSend: function () {},//程序一开始便会执行该函数,使用该方法必须使用异步ajax complete: function () {},//complete在success或error