首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

Spark连接Hadoop读取HDFS有关问题小结

2013-09-12 
Spark连接Hadoop读取HDFS问题小结Spark与hadoop版本我使用0.7.2的Spark版本,且是pre-built过的版本,支持的

Spark连接Hadoop读取HDFS问题小结

Spark与hadoop版本

我使用0.7.2的Spark版本,且是pre-built过的版本,支持的hadoop版本是hadoop1。在http://spark-project.org/files/上能下载的预编译过的spark版本里,凡是预编译cdh4的压缩包,下载后解压会中断,文件本身有问题。我在google论坛上发帖说明了这个问题:https://groups.google.com/forum/#!topic/spark-users/Y4iJ1458d18。所以我现在使用预编译了1代hadoop的spark,来连接2代hadoop。按理说在编译spark的时候,通过改动SPARK_HOME/project/SparkBuild.scala,可以指定要支持的hadoop版本:

val file = sc.textFile("hdfs://xxx")file.count()
能正常跑出结果的话就OK了。


其他问题

这边再提供一个Unable to load native-hadoop library 和 Snappy native library not loaded的解决方案。这个问题主要是jre目录下缺少了libhadoop.so和libsnappy.so两个文件。具体是,spark-shell依赖的是scala,scala依赖的是JAVA_HOME下的jdk,libhadoop.so和libsnappy.so两个文件应该放到JAVA_HOME/jre/lib/amd64下面。要注意的是要知道真正依赖到的JAVA_HOME是哪一个,把两个.so放对地方。这两个so:libhadoop.so和libsnappy.so。前一个so可以在HADOOP_HOME下找到,比如hadoop\lib\native\Linux-amd64-64。第二个libsnappy.so需要下载一个snappy-1.1.0.tar.gz,然后./configure,make编译出来。snappy是google的一个压缩算法,在hadoop jira下https://issues.apache.org/jira/browse/HADOOP-7206记录了这次集成。


单替换了hadoop的core包后,可能还会出一些WARN或者ERROR的提示,主要牵扯到的是hadoop别的包的一些兼容啊,版本提升的问题。具体问题具体再解决吧。


(全文完)


热点排行