[转载]Spark单机部署

原文地址:Spark单机部署作者:听风铃的声音

       本次部署使用的是Spark编译版:spark1.1.1-bin-hadoop1. 如果是源码,则需要先自己编译。该包的sbin目录下有很多.sh的脚本,用以实现部署。然而,这些.sh文本无法再windows下运行,这也是我后续转战linux的原因。

      首先介绍部署的前提环境:

           操作系统: ubuntu 14.04

           部署环境: 1) Java 1.7

                             2) Maven 3.2.3

                             3) spark1.1.1-bin-hadoop1  

       按照上篇博文单机Java应用程序开发中介绍的过程,在linux下重新创建了maven项目,并且打包成jar。值得一提的是,虽然到目前spark1.1.1版本已经发布,但是如果在maven项目的pom.xml中添加spark1.1.1版本以来,使用mvn compile编译出错,原因好像是在网上获取不到spark1.1.1对应的core。出现这个问题时,将依赖的version改为1.1.0版本即可解决。

       接下来,按照官方指南中的步骤进行安装单机集群。接下来记录我部署成功的过程。

  • 第一步:配置spark-env.sh

        将conf目录下的spark-env.sh.template复制成spark-env.sh.进入该文件,你可以找到单机部署的一些参数选项说明:

# Options for the daemons used in the standalone deploy mode:

# - SPARK_MASTER_IP, to bind the master to a different IP address or hostname

# - SPARK_MASTER_PORT / SPARK_MASTER_WEBUI_PORT, to use non-default ports for the master

# - SPARK_MASTER_OPTS, to set config properties only for the master (e.g. "-Dx=y")

# - SPARK_WORKER_CORES, to set the number of cores to use on this machine

# - SPARK_WORKER_MEMORY, to set how much total memory workers have to give executors (e.g. 1000m, 2g)

# - SPARK_WORKER_PORT / SPARK_WORKER_WEBUI_PORT, to use non-default ports for the worker

# - SPARK_WORKER_INSTANCES, to set the number of worker processes per node

# - SPARK_WORKER_DIR, to set the working directory of worker processes

# - SPARK_WORKER_OPTS, to set config properties only for the worker (e.g. "-Dx=y")

# - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. "-Dx=y")

在这里,我主要添加了master的ip和port设置:

export SPARK_MASTER_IP=192.168.17.128

export SPARK_MASTER_PORT=7077

export MASTER=spark://${SPARK_MASTER_IP}:{SPARK_MASTER_PORT}

export SPARK_WORKER_CORES=1

export SPARK_LOCAL_IP=192.168.17.128

  • 第二步:手动启动集群

      执行./sbin/start-master.sh,将启动master.然而,不像网站中所说,启动成功后返回master url,而只是显示下图中的内容

[转载]Spark单机部署

      master默认的端口为7077,在第一步配置中,我并未修改端口号,只是修改了ip。为了查询master的ip,可以在shell中输入netstat -nat,找到端口为7077的ip。

[转载]Spark单机部署

上图红色圈出的url,就是刚刚启动的master url。

      master启动成功后,接下来就是使用命令:./bin/spark-class org.apache.spark.deploy.worker.Worker spark://IP:PORT(此处为master url)启动worker。该命令执行后,光标将一直停留在Spark assembly has been built with Hive, including Datanucleus jars on classpath。

     打开另一个terminal,将打包好的jar(包括程序和依赖)提交到master:

     ./bin/spark-submit  --class xx  --master spark://192.168.17.128:7077  xxx.jars(绝对路径),如果未添加master url,默认将以local的方式执行。

     我所提交的程序实现的功能是计算README.md文件Spark和Apache两个字符串在文本中出现的行数,执行上述命令后,在当前shell将显示程序的运行结果:

[转载]Spark单机部署
当然,伴随着结果的输出,也出现了3个WARN。前两个WARN在其他情况下也会出现,最后一个WARN的出现,应该标志着配置出了一点问题,但是这没有影响程序的运行。

      转而查看另一个启动master和worker的shell,发现有ERROR输出:

[转载]Spark单机部署

 

     在浏览器中输入:localhost://8080 和localhost://8081,可以分别查看到master和worker的web ui。

在master web ui中,可以看到worker和它的CPU和内存情况,以及部署的应用程序的相关信息。[转载]Spark单机部署

[转载]Spark单机部署



 

 

 

   

       

 

         

            

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值