`
deepnighttwo
  • 浏览: 51954 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spark On Yarn编译,部署和测试

阅读更多

 

环境

Spark On Yarn环境准备:

Spark:0.9.1 release。注意要选择relase版本(不是incubating版),踩到的坑会比较少。下载页面 http://spark.apache.org/downloads.html 

Hadoop:2.0.0-cdh4.2.1。MRv2(Yarn)

环境:cygwin(Git console also works)

编译机器:内存够大(2G以上吧)

 

如果带宽够大,你就成功30了。如果你有SSD,你就成功80%了。

 

准备

下载后解压spark,然后SparkBuild.scala做一些修改。SparkBuild.scala是Spark使用的build系统sbt的配置文件。相当于maven的pom文件。

 

修改project/SparkBuild.scala:

1) force protobuf dependency:这个版本是hadoop 2.0.0-cdh4.2.1用的版本。不写定版本会有问题。

    libraryDependencies ++= Seq(

   "com.google.protobuf"      % "protobuf-java"    % "2.4.0a" force(),

2)修改maven repo。搜索resolvers ++= Seq,对于有local maven repo的情况下,修改为本地的repo。

3)修改maven local repo地址。如果之前用过maven了。可以指定local repo

        resolvers ++= Seq(Resolver.file("Local Maven Repo", file("D:/repository"))),

 

编译

进入Spark Home,执行

SPARK_HADOOP_VERSION=2.0.0-cdh4.2.1 SPARK_YARN=true sbt/sbt assembly

 

编译很慢,约一个小时。如果dependency需要下载就不好说了。

 

Tips:如果有问题,可以尝试proxy:export HTTP_PROXY=http://127.0.0.1:port

 

拷贝

把需要的内容拷贝到hadoop集群上。比如spark目录。这个目录包含下面的目内容:

bin和conf下的所有文件:

./bin/run-example

./bin/spark-shell

./bin/pyspark

./bin/compute-classpath.sh

./bin/spark-class

./conf/fair-scheduler.xml

./conf/metrics.properties.template

./conf/spark-env.sh

./conf/fairscheduler.xml.template

./conf/log4j.properties

./conf/slaves

 

和spark & example:

./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar

./examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar

 

分发

可以参考下面的脚本分发

#!/bin/sh
#Author: Meng Zang <mzang@ctrip.com>
#Date: 2014-04-11

NODES_ADDRESS=~/spark/nodes

TMP_SPARK=~/spark

SPARK=/usr/local/spark

sync() 
{
#    sudo mkdir ${SPARK}
#    sudo cp $TMP_SPARK/* $SPARK

    for node in $(cat $NODES_ADDRESS) 
    do
        ssh -p 1022 $node "mkdir -p $TMP_SPARK"
        ssh -p 1022 $node "sudo mkdir -p $SPARK"
        rsync -vaz --delete -e 'ssh -p 1022' $TMP_SPARK/ $node:$TMP_SPARK
        ssh -p 1022 $node "sudo cp $TMP_SPARK/* $SPARK"
    done  
}

case "$1" in
   'sync')
     sync
     ;;
   *)
     echo "Usage: $0 {sync}"
     exit 1
esac

exit 0

 

执行example

 

# step into spark dir

export HADOOP_CONF_DIR=/etc/hadoop/conf 
export YARN_CONF_DIR=/etc/hadoop/conf 

SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
    ./bin/spark-class org.apache.spark.deploy.yarn.Client \
    --jar examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar \
     --class org.apache.spark.examples.SparkPi \
     --args yarn-standalone \
     --num-workers 3 \
     --master-memory 4g \
     --worker-memory 2g \
     --worker-cores 1

 

执行过程中,可以去MRv2的web console查看。也可以在控制台看到执行的report

 

 

14/04/11 16:43:44 INFO Client: Application report from ASM: 
	 application identifier: application_1397119957695_0037
	 appId: 37
	 clientToken: null
	 appDiagnostics: 
	 appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com
	 appQueue: default
	 appMasterRpcPort: 0
	 appStartTime: 1397205809221
	 yarnAppState: RUNNING
	 distributedFinalState: UNDEFINED
	 appTrackingUrl: SVR2368HP360.hadoop.test.sh.ctriptravel.com:8088/proxy/application_1397119957695_0037/
	 appUser: op1
14/04/11 16:43:45 INFO Client: Application report from ASM: 
	 application identifier: application_1397119957695_0037
	 appId: 37
	 clientToken: null
	 appDiagnostics: 
	 appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com
	 appQueue: default
	 appMasterRpcPort: 0
	 appStartTime: 1397205809221
	 yarnAppState: RUNNING
	 distributedFinalState: UNDEFINED
	 appTrackingUrl: SVR2368HP360.hadoop.test.sh.ctriptravel.com:8088/proxy/application_1397119957695_0037/
	 appUser: op1
14/04/11 16:43:46 INFO Client: Application report from ASM: 
	 application identifier: application_1397119957695_0037
	 appId: 37
	 clientToken: null
	 appDiagnostics: 
	 appMasterHost: SVR2370HP360.hadoop.test.sh.ctriptravel.com
	 appQueue: default
	 appMasterRpcPort: 0
	 appStartTime: 1397205809221
	 yarnAppState: FINISHED
	 distributedFinalState: SUCCEEDED
	 appTrackingUrl: 
	 appUser: op1

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Hive on Spark安装配置详解.pdf

    在Spark on YARN模式下,又分为Cluster和Client两种部署模式。Cluster模式下,Driver程序在ResourceManager上运行,而Client模式下,Driver在提交应用程序的客户端上运行。 接下来,我们将按照以下步骤进行配置: ...

    spark2.4.8_on_hadoop3.3.3

    通过编译Spark以支持Hadoop 3.3.3和Hive 2,我们可以利用Spark的高性能计算能力和Hadoop的分布式存储,实现高效的数据处理和分析。在实际应用中,还需要对Spark的配置、资源管理以及编程模型有深入理解,才能充分...

    Apache Spark 2.0.2 中文文档

    - **Spark on YARN**:探讨如何在 Hadoop YARN 上部署和运行 Spark 应用程序。 #### 1.4 更多 - **Spark 配置**:提供有关如何配置 Spark 应用程序的详细信息。 - **Spark 监控**:介绍如何监控 Spark 应用程序的...

    CDP7.1.7+SPARK3 全套下载地址.zip

    "SPARK3_ON_YARN"标签表明Spark3是在YARN上运行的,这允许Spark作业与其他Hadoop生态系统的应用共享集群资源。YARN作为Hadoop的第二代资源管理系统,负责集群中所有计算资源的管理和调度,确保高效利用硬件资源,...

    spark-2.4.0-bin-hadoop2.7.zip

    Spark支持四种运行模式:本地模式(用于测试)、集群模式(如YARN、Mesos或standalone)、Spark on Kubernetes以及云服务提供商的托管Spark。 6. **编程接口**: Spark提供了Python(PySpark)、Java、Scala和R的...

    win10下搭建Hadoop环境(jdk+mysql+hadoop+scala+hive+spark) 3.docx

    下载Spark的预编译版本,配置`spark-env.sh`和`spark-defaults.conf`文件,指定Hadoop的配置路径、Spark的工作内存、主节点等参数。启动Spark的Master和Worker节点,可以通过`start-all.sh`命令完成。 在整个过程中...

    Hadoop 2.7.4 Windows 64位 编译bin

    总之,Hadoop 2.7.4 Windows 64位编译bin包为Windows用户提供了在本地开发和测试大数据处理应用的便利。通过理解和掌握上述知识点,用户可以在Windows环境下高效地利用Hadoop进行大数据处理任务。

    hadoop2.6.3-spark1.5.2-hbase-1.1.2-hive-1.2.1-zookeeper-3.4.6安装指南

    - 最后,启动Spark相关服务,如Spark History Server,如果需要,配置Spark on YARN。 8. **测试与优化** - 测试安装是否成功,可以上传文件到HDFS,运行Hadoop MapReduce作业,启动Hive会话,创建HBase表并插入...

    flink-1.13.1 cdh6.3.2

    本文将详细介绍如何在CDH 6.3.2上部署和运行Flink 1.13.1。 首先,我们需要理解CDH 6.3.2的环境。CDH是一个包含Hadoop、Hive、HBase、Spark等组件的统一平台,提供了企业级的大数据处理能力。对于Flink的部署,CDH...

    Flink安装-简介.docx

    在本文中,我们将详细介绍如何在 Standalone 模式下安装和配置 Flink,以及进行基本的 WordCount 测试。 首先,选择合适的 Flink 版本至关重要。在这个例子中,我们选择了 Flink 1.10.1。每个版本都有其特定的特性...

    Spark开发及本地环境搭建指南.pdf

    2. **Python环境配置**:如果打算使用PySpark(Python on Spark),则需要确保安装了JDK 1.6.x版本。 3. **开发工具**:建议使用IntelliJ IDEA作为主要的开发工具,并且可以使用IDEA 13作为示例来进行操作。 4. **...

    cdh- flink 1.13.6

    描述中的“cdh-6.2.1 flink 1.13.6”表明这个Flink版本是为CDH 6.2.1构建的,强调了其与YARN(Yet Another Resource Negotiator)的兼容性,这意味着用户可以在YARN上部署和管理Flink作业,实现资源的有效管理和调度...

    FLINK-1.12.0-CDH6.2.1-0001-el7.zip

    用户无需手动编译和配置,可以直接通过CDH的管理工具如CM(Cloudera Manager)来安装和管理这些parcel,大大简化了部署流程。 标签"CDH Flink"表明这个压缩包是针对CDH环境优化的Flink版本,意味着它可能包含了一些...

    eclipse-hadoop-plugin.rar

    因此,这个插件不仅适用于开发传统的MapReduce程序,还可以用于开发基于YARN的应用,如Spark on YARN等。 在安装插件时,确保你的Eclipse版本与Hadoop Plugin兼容,通常推荐使用Java 7或更高版本的JDK。安装完成后...

    storm-tez:使用TEZ在纱线POC上进行风暴

    用户可以通过解压此文件来查看和编译源代码,然后在本地或集群环境中部署和测试这个集成解决方案。 6. **集成与优化**:通过将Storm与Tez结合,可以利用Tez的DAG执行模型优化 Storm作业的执行效率,同时借助YARN的...

Global site tag (gtag.js) - Google Analytics