您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页spark_集群安装与简单测试

spark_集群安装与简单测试

来源:欧得旅游网


Spark集群安装

1. 确保服务器已安装jdk

若没有安装,请参照相应的文档安装。本次安装使用的jdk版本:jdk1.6.0_31

2. 安装 Scala 2.11.2

Spark 1.2.1 依赖 Scala 2.11.2, 我们必须要安装Scala 2.11.2.

上传scala-2.11.2.tgz到服务器, 并保存到home目录.

1、解压scala压缩包:

$ tar -zxf scala-2.11.2.tgz

2、root权限将压缩包传到/usr/lib目录下:

$ sudo mv scala-2.11.2 /usr/lib

3、编辑/etc/profile文件,

$ sudo vim /etc/profile 增加系统参数:

export SCALA_HOME=/usr/lib/scala-2.11.2

export PATH=$PATH:$SCALA_HOME/bin:$JAVA_HOME/bin

export JAVA_HOME=/usr/jdk/jdk1.6.0_31

4、source /etc/profile文件,使环境变量生效;

$ source /etc/profile

5、测试下scala安装是否成功

$ scala -version

若有如下信息展示,表示scala安装成功:

Scala code runner version 2.11.2 -- Copyright 2002-2013, LAMP/EPFL

3. 安装spark

3.1在master上安装并配置Spark

上传spark-1.2.1-bin-hadoop2.4.tgz至服务器,解压:

$ tar -zxf spark-1.2.1-bin-hadoop2.4.tgz

创建一个spark目录,将解压后的目录上传到spark目录中:

$ mkdir /home/spark

$ mv spark-1.2.1-bin-hadoop2.4 /home/spark

设置环境变量:

$ vim /home/spark/.bash_profile

增加如下参数:

export SPARK_HOME=/home/spark/spark-1.2.1-bin-hadoop2.4

export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export

PATH=$PATH:${SPARK_HOME}/bin:${SCALA_HOME}/bin:${JAVA_HOME}/bin

保存后退出

#source下.bash_profile。

$ source /home/spark/.bash_profile

把spark-env.sh.template重命名成spark-env.sh

$ cd /home/spark/spark-1.2.1-bin-hadoop2.4/conf

$ mv spark-env.sh.template spark-env.sh

在spark-env.sh中增加如下参数:

$ vim spark-env.sh

# 插入如下参数:

export SCALA_HOME=/usr/lib/scala-2.11.2 --scala安装目录

export JAVA_HOME=/usr/jdk/jdk1.6.0_31--jdk目录

export SPARK_MASTER_IP=192.168.150.128

export SPARK_WORKER_MEMORY=2g

export HADOOP_HOME=/usr/lib/Hadoop --指定hadoop的安装目录

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop/ --指定yarn配置文件目录

export

SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/lib/hive/lib/mysql-connector-java-5.1.31-bin.jar --指定mysql的jar。为sparkSQL使用

其中:SPARK_MASTER_IP为master的ip,SPARK_WORKER_MEMORY为worker

节点占用的内存

# 保存退出

在/conf/slaves文件中添加Spark worker的hostname, 一行一个。

$ vim slaves

yudong1

yudong2

yudong3

# 保存退出

将hive的配置文件:hive-site.xml复制到spark的conf目录下;

Spark的详细配置文件为spark-defaults.conf。可以通过该文件更改spark的默认配置;

3.2在所有worker上安装并配置Spark

在其他worker节点安装scala和spark,配置参数同上面;

注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命

令,master认为worker的spark路径与自己一样。

3.3 启动 Spark 集群

在master上执行

$ cd /home/spark/spark-1.2.1-bin-hadoop2.4/sbin

$ ./start-all.sh

打印出如下信息:

starting org.apache.spark.deploy.master.Master, logging to

/home/spark/spark-1.2.1-bin-hadoop2.4/sbin/../logs/spark-root-org.apache.spark.deploy.master.Master-1-yudong1.out

yudong3: starting org.apache.spark.deploy.worker.Worker, logging to /home/spark/spark-1.2.1-bin-hadoop2.4/sbin/../logs/spark-root-org.apache.spark.deploy.worker.Worker-1-yudong3.out

yudong2: starting org.apache.spark.deploy.worker.Worker, logging to /home/spark/spark-1.2.1-bin-hadoop2.4/sbin/../logs/spark-root-org.apache.spark.deploy.worker.Worker-1-yudong2.out

yudong1: starting org.apache.spark.deploy.worker.Worker, logging to /home/spark/spark-1.2.1-bin-hadoop2.4/sbin/../logs/spark-root-org.apache.spark

.deploy.worker.Worker-1-yudong1.out

查看进程是否正常:

$ jps

2735 AmbariServer

21060 Jps

4766 QuorumPeerMain

20784 Master

2879 NodeManager

20928 Worker

30 NameNode浏览master的web UI(默认http://localhost:8080). 若8080端口被占用,会自动切换成8081端口,可以在SPARK_HOME/logs下的

spark-root-org.apache.spark.deploy.master.Master-1-yudong1.out日志中查看目前使用的端口信息。页面如下所示:

从上图可以看到所有的worker节点,以及它们的CPU个数和内存等信息。当有应用在执行时,可以在Running Application下查看到,当应用执行成功后,可以在Completed Application栏查看到。

3.4 进入spark-shell工作台

cd $SPARK_HOME/bin

执行如下命令:# spark-shell,系统会打印出如下日志:

出现上图所示的scala>,表示spark集群安装成功。

4.spark on yarn

Spark在YARN中有yarn-cluster和yarn-client两种运行模式。

使用Spark on yarn,要确保环境变量HADOOP_CONF_DIR或YARN_CONF_DIR已经设置;

在YARN集群中运行Spark应用程序的命令:

SPARK_JAR= ./spark-class org.apache.spark.deploy.yarn.Client \\

--jar \\

--class \\

--args \\

--num-workers \\

--master-class

--master-memory \\

--worker-memory \\

--worker-cores \\

--name \\

--queue \\

--addJars \\

--files \\

--archives

例如:

1. SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly-0.8.1-incubating-hadoop2.2.0.jar \\

2. ./spark-class org.apache.spark.deploy.yarn.Client \\

3. --jar examples/target/scala-2.9.3/spark-examples-assembly-0.8.1-incubating.jar \\

4. --class org.apache.spark.examples.SparkPi \\

5. --args yarn-standalone \\

6. --num-workers 3 \\

7. --master-memory 2g \\

8. --worker-memory 2g \\

9. --worker-cores 1

在yarn集群上运行spark sql命令:

./spark-sql

-- master yarn< MASTER_URL>

-- deploy-mode client

-- jars < JARS location>

-- conf < PROP=VALUE>

-- executor-memory< Memory per executor>

--executor-cores < cores per executor >

-- driver-memory < Memory for driver >

-d,--define Variable subsitution to apply to hive

commands. e.g. -d A=B or --define A=B

--database Specify the database to use

-e SQL from command line

-f SQL from files

-h connecting to Hive Server on remote host

--hiveconf Use value for given property

--hivevar Variable subsitution to apply to hive

commands. e.g. --hivevar A=B

-i Initialization SQL file

-p connecting to Hive Server on port number

-S,--silent Silent mode in interactive shell

-v,--verbose Verbose mode (echo executed SQL to the

console)

例如:

spark-sql --master yarn --deploy-mode client --conf

spark.shuffle.service.enabled=true --conf spark.dynamicAllocation.enabled=true --executor-memory 1g --executor-cores 1 --driver-memory 2G --jars /home/spark/spark-1.2.1-bin-hadoop2.4/lib/datanucleus-api-jdo-3.2.6.jar \"select count(*) from vw_user_call;\"

-e

在yarn的监控页面(http://ip:8088),可以查看spark on yarn的application运行情况:

5. 停止 Spark 集群

$ cd $SPARK_HOME/sbin

$ ./stop-all.sh

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务