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版本: // Hadoop version to build against. For example, "0.20.2", "0.20.205.0", or // "1.0.4" for Apache releases, or "0.20.2-cdh3u5" for Cloudera Hadoop. val HADOOP_VERSION = "1.0.4" val HADOOP_MAJOR_VERSION = "1" // For Hadoop 2 versions such as "2.0.0-mr1-cdh4.1.1", set the HADOOP_MAJOR_VERSION to "2" //val HADOOP_VERSION = "2.0.0-mr1-cdh4.1.1" //val HADOOP_MAJOR_VERSION = "2"解决方案1. 受了https://groups.google.com/forum/#!topic/spark-users/XKj__psY-EA这个帖子的启发,替换了SPARK_HOME/lib_managed/jars下的hadoop-core-1.0.4.jar,换成了自己hadoop-client里hadoop/lib下的hadoop-2-core.jar包。2. 在SPARK_HOME/conf下要添加hadoop的配置文件。我是添加了hadoop-site.xml和hadoop-default.xml两个配置文件。原因是,前者提供了连接的hdfs集群信息和账户密码;后者提供了下面这个配置:<property> <name>fs.hdfs.impl</name> <value>org.apache.hadoop.hdfs.DistributedFileSystem</value> <description>The FileSystem for hdfs: uris.</description> </property>完成这两步后,进入./spark-shell,运行下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下找到,比如hadooplib
ativeLinux-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别的包的一些兼容啊,版本提升的问题。具体问题具体再解决吧。(全文完) Spark 的详细介绍:请点这里 Spark 的下载地址:请点这里相关阅读:Spark简介及其在Ubuntu下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm安装Spark集群(在CentOS上) http://www.linuxidc.com/Linux/2013-08/88599.htmHadoop vs Spark性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htmSpark安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htmSpark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htmHadoop学习总结之二:HDFS读写过程解析 http://www.linuxidc.com/Linux/2011-11/47056.htm《Hadoop实战》中文版+英文文字版+源码【PDF】 http://www.linuxidc.com/Linux/2012-10/71901.htmHadoop: The Definitive Guide【PDF版】 http://www.linuxidc.com/Linux/2012-01/51182.htm更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13