`

spark部署安装调试

阅读更多
本节记录spark下载-->编译-->安装-->使用

首先从主站下载spark源码包(源码包更利于我们学习spark)
http://spark.apache.org/downloads.html
注意选择所需要的相对应的spark源码版本,在此我们选择使用spark-1.3.0

spark的所有版本源码全部托管在 github上面
https://github.com/apache/spark
spark 源码包编译有三种方式
1:SBT编译
2:Maven编译
3:打包编译 make-distribution.sh

note:编译spark需要maven 3.0.4+   jdk1.6+,据说spark1.5之后jdk需要1.7+版本支持
编译之前,需要调整maven 缓存大小
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

maven编译参数设置:
1:hdfs版本参数设置
# Apache Hadoop 1.2.1
mvn -Dhadoop.version=1.2.1 -DskipTests clean package

# Cloudera CDH 4.2.0 with MapReduce v1
mvn -Dhadoop.version=2.0.0-mr1-cdh4.2.0 -DskipTests clean package

# Apache Hadoop 0.23.x
mvn -Phadoop-0.23 -Dhadoop.version=0.23.7 -DskipTests clean package

2:yarn框架支持
# Apache Hadoop 2.2.X
mvn -Pyarn -Phadoop-2.2 -Dhadoop.version=2.2.0 -DskipTests clean package

# Apache Hadoop 2.3.X
mvn -Pyarn -Phadoop-2.3 -Dhadoop.version=2.3.0 -DskipTests clean package

# Apache Hadoop 2.4.X or 2.5.X
mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=VERSION -DskipTests clean package

Versions of Hadoop after 2.5.X may or may not work with the -Phadoop-2.4 profile (they were
released after this version of Spark).

# Different versions of HDFS and YARN.
mvn -Pyarn -Phadoop-2.3 -Dhadoop.version=2.3.0 -Dyarn.version=2.2.0 -DskipTests clean package

3:hive 和jdbc支持
# Apache Hadoop 2.4.X with Hive 13 support
mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -Phive-thriftserver -DskipTests clean package

# Apache Hadoop 2.4.X with Hive 12 support
mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -Phive-0.12.0 -Phive-thriftserver -DskipTests clean package

4:scala支持
注意:scala默认是2.10

spark源码包中提供了一个打包shell make-distribution.sh
我们只需要提供相应的参数,便可以完成打包
./make-distribution.sh --tgz -Pyarn -Phadoop-2.4 Dhadoop.version=2.4.0 -Phive-0.13.1 -Phive-thriftserver

在此需要注意一下,由于国内网络限制,所以请在maven setting.xml 中配置镜像地址
<mirror>
  <id>nexus-osc</id>
  <mirror>*</mirror>
  <name>Nexus osc</name>
  <url>http://maven.oschina.net/conyent/groups/public/</url>
</morrir>

配置google的域名解析器
 nameserver 8.8.8.8
 nameserver 8.8.4.4


执行编译脚本,会发现开始时间很长,原因是make-distribution.sh脚本中有一段代码是检测hive hadoop 版本信息,可以将这一段代码直接写死。
VERSION=$("$MVN" help:evaluate -Dexpression=project.version 2>/dev/null | grep -v "INFO" | tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
    | grep -v "INFO"\
    | tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
    | grep -v "INFO"\
    | fgrep --count "<id>hive</id>";\
    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
    # because we use "set -o pipefail"
    echo -n)

============改写成===========
VERSION=1.3.0 #spark版本
SPARK_HADOOP_VERSION=2.4.0 #hadoop版本
SPARK_HIVE=1 #支持hive



Standalone Mode配置方式
如下图为架构图




配置spark-env.sh文件 需要配置的参数如下
JAVA_HOME
SCALA_HOME
HADOOP_CONF_DIR
SPARK_MASTER_IP
SPARK_MASTER_PORT
SPARK_MASTER_WEBUI_PORT
SPARK_WORKER_CORES
SPARK_WORKER_PORT
SPARK_WORKER_WEBUI_PORT
SPARK_WORKER_INSTANCES


启动
./sbin/start-master.sh  //启动主节点
./sbin/start-slave.sh   //启动从节点
./bin/spark-shell --master spark://IP:PORT //启动application


测试运行实例
scala> val textFile = sc.textFile("README.md")  //加载文件到内存
       textFile.count() //计算行数
       textFile.first() //返回第一行
       //返回一个行包含Spark的字符数组
       scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
//找出包含字节最多的行  
textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)
//单词统计
val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
wordCounts.collect()


使用java 代码调用api
public class SimpleApp {
  public static void main(String[] args) {
    String logFile = "YOUR_SPARK_HOME/README.md"; // Should be some file on your system
    SparkConf conf = new SparkConf().setAppName("Simple Application");
    JavaSparkContext sc = new JavaSparkContext(conf);
    JavaRDD<String> logData = sc.textFile(logFile).cache();

    long numAs = logData.filter(new Function<String, Boolean>() {
      public Boolean call(String s) { return s.contains("a"); }
    }).count();

    long numBs = logData.filter(new Function<String, Boolean>() {
      public Boolean call(String s) { return s.contains("b"); }
    }).count();

    System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);
  }
}
  • 大小: 182.5 KB
  • 大小: 79.2 KB
分享到:
评论

相关推荐

    spark部署学习资料

    Spark部署学习资料是为那些希望深入理解如何在不同环境下配置和运行Spark应用程序的人准备的。这份资料将帮助初学者掌握Spark的核心概念、部署策略以及优化技巧。 一、Spark架构与核心概念 Spark的核心组件包括...

    1Spark生态和安装部署

    ### Spark 生态与安装部署详解 #### 一、Spark 是什么? Spark 是一款开源的大规模数据处理框架,它能够提供高效的数据处理能力,特别是在大规模数据集上的处理速度远远超过传统的 MapReduce 框架。Spark 的核心...

    Spark安装文档以及介绍

    1. **机器部署**:至少准备两台Linux服务器,并确保已安装JDK。 2. **下载Spark安装包**:可以从官方网站或镜像站点下载适合版本的Spark安装包。 3. **上传并解压安装包**:使用FTP或SCP工具将安装包上传至Linux...

    Spark安装包、安装文档

    总结,Spark作为一个强大的大数据处理框架,通过其核心组件提供多种处理能力,并且易于部署和使用。安装Spark需要下载、配置环境变量、启动服务以及进行测试,而提供的`spark搭建`文档则会详细指导这些步骤,帮助...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    安装Spark时,需要与Hadoop版本兼容,并配置相关环境变量。 Hive是基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。通过Hive,用户无需编写Java MapReduce程序,就能对...

    Spark源代码在Eclipse中的部署、编译、运行.doc

    在本文中,我们将详细探讨如何在Eclipse环境中部署、编译和运行Apache Spark的源代码。Apache Spark是一个流行的开源大数据处理框架,它提供了快速、通用和可扩展的数据处理能力。而Eclipse是一款广泛使用的Java集成...

    spark源代码部署

    这个过程对于理解Spark的工作原理、进行自定义开发或调试是非常有价值的。通过源代码部署,开发者可以直接查看和修改Spark的源代码,这有助于深入学习Spark的架构和算法,对于提升开发者的技能和解决问题能力有显著...

    openfire+spark+sparkweb

    将SparkWeb的相关文件部署到Web服务器的公共目录,并根据Openfire服务器配置调整相关参数。 4. **安装和配置Ice**:Ice是ZeroC开发的一种分布式对象框架,用于构建跨平台的实时应用程序。在Windows环境下,可以使用...

    Spark源码在Eclipse部署

    ### Spark源码在Eclipse部署 #### 一、导入工程 **1. 使用Eclipse-3.5.2** 为了确保能够顺利导入Spark源码到Eclipse开发环境中,首先需要安装Eclipse版本3.5.2(即Galileo)。值得注意的是,尽管Eclipse后续版本...

    spark0.2 和 spark0.5

    此外,Spark Shell提供了交互式环境,便于快速测试和调试代码。 4. **多语言支持**:虽然最初的版本主要面向Scala开发者,但Spark 0.2已经初步实现了Java和Python接口,使得更多开发者能够利用Spark。 5. **基本的...

    实验七:Spark初级编程实践

    【Spark 初级编程实践】 Spark 是一个分布式计算框架,常用于大数据处理,它提供了高效的数据...同时,实验也强调了 Scala 作为 Spark 的主要编程语言,以及 sbt 和 spark-submit 在构建和部署 Spark 应用中的作用。

    spark上机实验手册

    Spark是一种开源的分布式大数据处理框架,其上机实验手册是针对想要独立完成Spark安装部署和基础开发学习的用户设计的。通过这份手册,用户可以在没有任何课堂辅导的情况下,自行完成安装、配置和基础的编程实践。 ...

    Spark源代码在Eclipse3.5.2中的部署、编译、运行.doc

    在本文中,我们将详细探讨如何在Eclipse 3.5.2中部署、编译和运行Spark源代码。首先,我们需要准备必要的软件...完成这些步骤后,你将能够成功地在本地环境中运行Spark,这对于学习、调试或开发Spark功能是非常有用的。

    spark调试中常见的错误集锦

    调试spark-submit的yarn部署 spark-submit --master yarn --packages com.databricks:spark-xml_2.12:0.16.0 --py-files service-prod.zip service-index.py

    spark-assembly-1.5.2-hadoop2.6.0.jar

    Spark-assembly-1.5.2-hadoop2.6.0.jar是Spark中的一个重要组件,它是Spark的核心库,包含了所有Spark模块的合并版本,便于用户在运行Spark应用时进行一次性部署。本文将深入解析这个组件的关键知识点。 1. Spark...

    Spark 2.0.2 Spark 2.2 中文文档 本资源为网页,不是PDF

    调试应用 Spark 属性 重要提示 在一个安全的集群中运行 用 Apache Oozie 来运行应用程序 Kerberos 故障排查 Spark 配置 Spark 监控 指南 作业调度 Spark 安全 硬件配置 构建 Spark

    spark_deploy

    在"spark_deploy"这个主题中,我们主要关注的是如何部署和配置Spark集群,以实现大规模数据处理任务的高效执行。 首先,理解Spark的部署模式至关重要。Spark提供了多种部署方式,包括本地模式(Local)、独立模式...

    spark-3.0.1-bin-hadoop2.7.tgz

    在实际应用中,Spark 3.0.1的安装和部署可以通过下载"spark-3.0.1-bin-hadoop2.7.tgz"压缩包完成。这个压缩包包含了运行Spark所需的全部组件,包括Spark的二进制文件、配置文件、示例程序和文档。用户解压后,可以...

Global site tag (gtag.js) - Google Analytics