Spark 1.3.1 部署
来源:互联网 发布:乖离数据下载很慢 编辑:程序博客网 时间:2024/05/16 17:52
1 安装环境
Spark 1.3.1需要JDK1.6或更高版本,我们这里采用jdk 1.7.0_67
Spark 1.3.1需要Scala 2.10或更高版本,我们这里采用scala 2.11.6
2 部署Hadoop
Spark目前支持多种分布式部署方式:
1、Standalone Deploy Mode
2、Amazon EC2
3、Apache Mesos
4、Hadoop YARN
第一种方式是单独部署(可单机或集群),不需要有依赖的资源管理器,其它三种都需要将spark部署到对应的资源管理器上。本文采用基于Hadoop YARN的部署方式。
Hadoop部署方式参考:http://blog.csdn.net/wenjian68/article/details/37541689
3 安装scala
3.1 下载scala
wget http://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.tgz
3.2 解压文件
tar -zxvf scala-2.11.6.tgz
3.3 配置环境变量
$vim /etc/profile
SCALA_HOME=/usr/local/scala-2.11.6PATH=$PATH:$SCALA_HOME/binecho SACLA_HOMEPATH
$ source/etc/profile
3.4 验证scala
$ scala -versionScala code runnerversion 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
$ scalaWelcome to Scalaversion 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_67).Type inexpressions to have them evaluated.Type :help formore information.
4 安装spark
4.1 下载解压
wget http://mirror.bit.edu.cn/apache/spark/spark-1.3.1/spark-1.3.1-bin-hadoop2.6.tgztar -zxvfspark-1.3.1-bin-hadoop2.6.tgz
4.2 配置profile
$vim /etc/profile
export SPARK_HOME=usr/local/jediael/spark-1.3.1export PATH=$PATH:$SPARK_HOME/bin echo SPARK_HOMEPATH
$source/etc/profile
4.3 配置spark-env.sh
$vim $JAVA_HOME/conf/spark-env.sh
export JAVA_HOME=/usr/local/jdk1.7.0_67exportSCALA_HOME=/usr/lib/scala-2.11.6exportSPARK_MASTER_IP=masterexportSPARK_WORKER_INSTANCES=1exportSPARK_WORKER_MEMORY=1024mexportSPARK_MASTER_PORT=8090exportSPARK_MASTER_WEBUI_PORT=8091exportSPARK_WORKER_PORT=8092exportSPARK_WORKER_WEBUI_PORT=8093
4.4 配置slaves
$vim $JAVA_HOME/conf/slaves
slave1
4.5 配置spark-defaults.conf
$vim conf/spark-defaults.conf
spark.master spark://master:8090spark.eventLog.enabled truespark.eventLog.dir hdfs://master:9000/spark_log
4.6 启动集群
$./sbin/start-all.sh
如果start-all方式无法正常启动相关的进程,可以在$SPARK_HOME/logs目录下查看相关的错误信息。其实,你还可以像Hadoop一样单独启动相关的进程,在master节点上运行下面的命令:
在Master上执行:
./sbin/start-master.sh
在Worker上执行:
./sbin/start-slave.sh 3 spark://master:8090 --webui-port 8091
然后检查进程是否启动,执行jps命令,可以看到Worker进程或者Master进程。然后可以在WEB UI上查看http://masterSpark:8091/可以看到所有的work 节点,以及他们的 CPU 个数和内存等信息。
4.7 Local模式运行demo
比如:
./bin/run-exampleSparkLR 2 local
或者
./bin/run-exampleSparkPi 2 local
这两个例子前者是计算线性回归,迭代计算;后者是计算圆周率
4.8 shell 交互式模式
./bin/spark-shell--master spark://master:8090
如果在conf/spark-env.sh中配置了MASTER:
exportMASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
就可以直接用 ./bin/spark-shell启动了。
spark-shell作为应用程序,是将作业提交给spark集群,然后spark集群分配到具体的worker来处理,worker在处理作业的时候会读取本地文件。
这个shell是修改了的scala shell,打开一个这样的shell会在WEB UI中可以看到一个正在运行的Application
5 一个 scala & spark 例子
这个例子首先用shell 生成 150,000,000 个随机数,然后用spark 统计每个随机数频率,以观察随机数是否均匀分布。
shell:
generateNum(){ c=1 while [[ $c -le 5000000 ]] do echo $(($RANDOM/500)) ((c++)) done}for i in `seq 3`do generateNum> ${i}.txt &donewaitecho "--------------- DONE -------------------"cat [0-9]*.txt > num.txt
hadoop fs -put/usr/local/hadoop-2.2.0/data/num.txt /spark
scala:
val file =sc.textFile("hdfs://master:9000//spark//num.txt")val count = file.flatMap(line => line.split("")).map(word => (word, 1)).reduceByKey(_+_)count.sortBy(_._2).map(x => x._1 + "\t" +x._2).saveAsTextFile("hdfs://master:9000//spark//result")
shell:
hadoop fs -cat /spark/result/p* | sort -k2n
- Spark 1.3.1 部署
- spark 1.5.1 集群部署
- Spark-1.3.1部署在hadoop-2.6.0
- spark部署
- spark部署
- Spark部署
- Spark 1.3.0源码编译及部署
- [Spark]Spark 应用程序部署工具spark-submit
- Spark独立部署模式
- 部署、编译、运行spark
- Spark安装部署
- spark/shark 部署 (zz)
- Spark集群部署
- Spark集群部署
- Spark on Yarn部署
- 菜鸟部署测试spark
- Spark部署及应用
- hive on spark部署
- 证照速打王注册器使用说明
- 【转】 MATLAB图像增强程序举例
- java替换字符串中符合正则表达式的内容
- 异地多活数据流基础设施DRC --双11支持571亿交易额背后的武器
- QT5.4程序发布
- Spark 1.3.1 部署
- Linux系统下sh脚本文件的介绍
- 基于FPGA的脱机手写体汉字识别系统
- 如何成为一名软件架构师?
- Redis 指南(4)- jedis工具类的封装
- sencha touch报错 Cannot read property 'apply' of undefined
- 区别java关键字this和super
- 欢迎使用CSDN-markdown编辑器
- notepad 如何同时选中同一列的数据 Alt