您的位置:首页 > 其它

Spark 伪分布式安装教程

2016-04-13 10:20 363 查看

前言

  MR跑迭代算法的局限性太大,后续想将一部分任务转移到spark上。公司其他组每天有提交Spark任务在Yarn上运行。但是他们的客户机,我们组没有权限登录,而且他们也没有相应的测试机器。于是一咬牙,一跺脚,算了,自己搭环境吧。找了台我们自己的测试机开干。

  动手之前,自然先要google(再一次提醒同学们,百度出来的结果基本不是你想要的。所以玩大数据的同学,如果你还没梯子,赶紧准备一个)一把相应的资料。发现伪分布式的安装过程好像不是很复杂的样子(后来事实证明,比我想象的还要简单)。还说啥,赶紧动手吧。。。

安装步骤

1.spark官网的下载地址:

http://spark.apache.org/downloads.html

给大家上个spark版本信息的图



基本每隔一两个月就有新的Release版本。由此可见现在身为apache顶级项目的spark,到底有多火。。。同志们,你们再不看spark,你们就out啦。。

2.根据自己的hadoop版本,选择相应的spark版本,我选的版本是1.6.0。然后下载相应的bin版本。当然愿意折腾的同志可以自己下源码来编译。现在的时候,多选几个镜像试试,不同的镜像之间速度差距很大。天朝的墙,你懂的。

3.将下载好的.tgz包扔到你想要的任何位置,然后tar -zxvf,解压,得到解压包名为 spark-1.6.0-bin-hadoop2.4

4.先看一把里头都有些啥东东(因为文件太多,只显示一层)

[lei.wang@datanodetest03 soft]$ tree -L 1 spark-1.6.0-bin-hadoop2.4

spark-1.6.0-bin-hadoop2.4

├── bin

├── CHANGES.txt

├── conf

├── data

├── ec2

├── examples

├── lib

├── LICENSE

├── licenses

├── NOTICE

├── python

├── R

├── README.md

├── RELEASE

└── sbin

10 directories, 5 files

5.cd 到bin目录中,执行spark-shell, ./spark-shell,然后出现以下界面:



如果出现了下面的scala命令行形式,恭喜你,安装成功!

简单测试

1.scala shell命令行简单测试

scala> val a = sc.parallelize(1 to 9,3)

a: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at console:27

scala> val b = a.map(x => x*2)

b: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[1] at map at console:29

scala> a.collect

res0: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> b.collect

res1: Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)

2.运行自带的example

cd到bin目录下,执行run-example

[lei.wang@datanodetest03 bin]$ ./run-example org.apache.spark.examples.SparkPi 2 spark://192.168.9.228:7077

Using Spark’s default log4j profile: org/apache/spark/log4j-defaults.properties

16/04/13 10:14:02 INFO SparkContext: Running Spark version 1.6.0

16/04/13 10:14:02 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable



16/04/13 10:14:06 INFO DAGScheduler: ResultStage 0 (reduce at SparkPi.scala:36) finished in 0.670 s

16/04/13 10:14:06 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:36, took 0.874986 s

Pi is roughly 3.13466

16/04/13 10:14:06 INFO SparkUI: Stopped Spark web UI at http://192.168.9.228:4041

16/04/13 10:14:06 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!



由此可见这个例子是计算pi值的。

注意:

1.执行命令中的2表示起两个线程跑,如果不指定这个数值,代码跑不起来,会报错。

2.如果将命名换成./run-example org.apache.spark.examples.SparkPi spark://localhost:7077,就是将本地地址换成localhost,代码也跑不起来,也会报错,具体原因暂时未知。应该是跟各种配置项有关
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: