Spark- Linux下安装Spark

前期部署

1.JDK安装,配置PATH

可以参考之前配置hadoop等配置

2.下载spark-1.6.1-bin-hadoop2.6.tgz,并上传到服务器解压

[root@srv01 ~]# tar -xvzf spark-1.6.1-hadoop2.6.tgz /usr/spark-1.6.1-hadoop2.6

3.在 /usr 下创建软链接到目标文件夹

[root@srv01 usr]# ln -s spark-1.6.1-bin-hadoop2.6 spark

4.修改配置文件,目标目录 /usr/spark/conf/

[root@srv01 conf]# ls

docker.properties.template log4j.properties.template slaves.template spark-env.sh.template

fairscheduler.xml.template metrics.properties.template spark-defaults.conf.template

这里需要把spark-env.sh.template改名为spark-env.sh

export JAVA_HOME=/usr/jdk

#这个是单机版的配置,不能实现高可用

export SPARK_MASTER_IP=srv01export SPARK_MASTER_PORT=7077

再配置slaves ,都是我的集群的机器的hostname

srv01

srv02

srv03

5.分发到集群各个机器上,再软链接一下,保持集群一致性,参考step-3

[root@srv01 usr]# scp -r spark-1.6.1-bin-hadoop2.6 srv02:/usr

[root@srv01 usr]# scp -r spark-1.6.1-bin-hadoop2.6 srv03:/usr

6.Spark-sell

配置好,启动spark-shell,注意记得先关闭防火墙(也可以将spark写进PATH中)

输入 sc ,如果显示下面的,表示安装正常

scala>sc

res0: org.apache.spark.SparkContext= org.apache.spark.SparkContext@18811c42

74e7de4f1a5f65738cd727201925a492.png

7.测试单词计算案例

scala> sc.textFile("/root/file.log").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect.toBuffer

res7: scala.collection.mutable.Buffer[(String, Int)]= ArrayBuffer((scala,2), (spark,2), (hive,1), (hadoop,2), (mapreduce,1), (zookeeper,1), (hello,1), (redis,1), (world,1))

8.启动Spark集群模式(前提是3台机器的spark配置一样,配置文件spark-env.sh和slaves文件保持一致)

进入Spark的sbin目录下启动

./start-all.sh

这个脚本文件在sbin目录

通过Jps查看角色

[root@srv01 conf]# jps

13079 Master

13148 Worker  //这个worker的启动通过配置文件slaves

13234 Jps

下面是我的slaves的配置文件

srv01

srv02

srv03

slaves配置的决定了在哪几台机器上启动worker

下面的配置文件决定了在哪台机器上启动Master

b12d2b8d6390a1778bd2ea010b5aa586.png

启动Spark集群(如果有使用hdfs的场景,需要把hadoop的conf目录下的core-site.xml和dhfs-site.xml拷贝到spark的conf目录下,才能使用高可用的hdfs url)

1493b14b9d1817c390098c164f9229ec.png

1e2ad826cdc0f982c2de97a4578041a0.png 

15216bf937a57e526b57638f82d7834f.png

然后在通过网页查看spark的相关信息:

8c95b4ec97a5c43bc1fc173e745fbbb8.png执行第一个Spark程序

指定运行程序的主机名(Master)

./spark-submit --class org.apache.spark.examples.SparkPi --master spark://srv01:7077 --executor-memory 1G --total-executor-cores 2 /usr/spark-1.6.1-bin-hadoop2.6/lib/spark-examples-1.6.1-hadoop2.6.0.jar 500

0e852c7ff8f2cf26482ef7084bd490fe.png

IDEA上面编码使用集群上的spark运行程序

package com.rz.spark.base

import org.apache.log4j.{Level, Logger}

import org.apache.spark.{SparkConf, SparkContext}

object transactionApp {

def main(args: Array[String]): Unit = {

Logger.getLogger("org.apache.spark").setLevel(Level.OFF)

val conf = new SparkConf().setAppName(this.getClass.getSimpleName)

.setMaster("spark://hdp:7077")

val sc = new SparkContext(conf)

val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8,9))

println(rdd1.partitions.length)

sc.stop()

}

}

Logo

更多推荐