SparkStandalone模式安装

来源:互联网 发布:淘宝750海报图片 编辑:程序博客网 时间:2024/06/05 02:11

实验目的

1、了解Spark Standalone模式的安装

2、了解Spark Standalone模式运行原理

实验环境

1、Linux Ubuntu 14.04

2、jdk1.7

3、hadoop-2.6.0-cdh5.4.5

4、scala-2.10.4.tgz安装包

5、spark-1.6.0-bin-hadoop2.6.tgz安装包

实验内容

Spark的standalone安装模式,可以使spark以集群的方式运行。

在单节点或多节点集群上 ,安装spark Standalone模式。

实验步骤

1、Spark的运行依赖jdk,hadoop,scala。在这里默认已安装jdk以及hadoop伪分布模式。

2、上传所需的Spark的安装包spark-1.6.0-bin-hadoop2.6.tgz及scala安装包Scala2.10.4,到/apps/toolbox目录下。

此处建议使用scala-2.10.4版本。官网中支出,若要使用scala2.11版本,则需要重新编译spark,并且编译时,需要指定scala版本的类型。

关于spark版本,没有严格要求。所以我们使用spark1.6版本。

3、安装Scala。切换目录到/apps/toolbox目录下,将/apps/toolbox目录下scala-2.10.4.tgz,解压缩到/apps目录下。并将解压后的目录名改为/apps/scala

view plain copy
  1. cd /apps/toolbox/  
view plain copy
  1. tar -xzvf /apps/toolbox/scala-2.10.4.tgz -C /apps/  
view plain copy
  1. cd /apps  
view plain copy
  1. mv /apps/scala-2.10.4/ /apps/scala  

使用vim打开用户环境变量~/.bashrc

view plain copy
  1. vim ~/.bashrc  

将scala的环境变量,追加的用户环境变量中。

view plain copy
  1. export SCALA_HOME=/apps/scala  
  2. export PATH=$SCALA_HOME/bin:$PATH  

执行source命令,使系统环境变量生效。

view plain copy
  1. source ~/.bashrc  

4、切换目录到/apps/toolbox目录下,将spark的安装包spark-1.6.0-bin-hadoop2.6.tgz,解压缩到/apps目录下,并将解压后的目录名,重命名为spark

view plain copy
  1. cd /apps/toolbox  
view plain copy
  1. tar -xzvf /apps/toolbox/spark-1.6.0-bin-hadoop2.6.tgz -C /apps/  
view plain copy
  1. cd /apps/  
view plain copy
  1. mv /apps/spark-1.6.0-bin-hadoop2.6/ /apps/spark  

使用vim打开用户环境变量~/.bashrc

view plain copy
  1. vim ~/.bashrc  

将Spark的配置信息追加到用户环境变量中。

view plain copy
  1. #spark  
  2. export SPARK_HOME=/apps/spark  
  3. export PATH=$SPARK_HOME/bin:$PATH  

执行source命令,使用户环境变量生效。

view plain copy
  1. source ~/.bashrc  

5、切换目录到/apps/spark/conf目录下,将conf目录下的配置文件slaves.template重命名为slaves。

view plain copy
  1. mv slaves.template  slave  

在slave中,存储了所有worker节点的的ip或主机名。使用vim打开slaves文件,将所有worker节点的ip添加进去。由于目前只有一台节点,所以是

view plain copy
  1. 127.0.0.1  

6、将/apps/spark-env.sh.template文件,重命名为/apps/spark-env.sh

view plain copy
  1. mv spark-env.sh.template spark-env.sh  

使用vim,打开/apps/spark/conf/spark-env.sh文件,添加如下配置

view plain copy
  1. JAVA_HOME=/apps/java  
  2. HADOOP_CONF_DIR=/apps/hadoop/etc/hadoop  
  3. SPARK_MASTER_IP=127.0.0.1  
  4. SPARK_MASTER_PORT=7077  
  5. SPARK_MASTER_WEBUI_PORT=8080  
  6. SPARK_WORKER_CORES=1  
  7. SPARK_WORKER_MEMORY=1g  
  8. SPARK_WORKER_PORT=7078  
  9. SPARK_WORKER_WEBUI_PORT=8081  
  10. SPARK_EXECUTOR_INSTANCES=1  

SPARK_MASTER_IP、SPARK_MASTER_PORT、SPARK_MASTER_WEBUI_PORT,分别指spark集群中,master节点的ip地址、端口号、提供的web接口的端口。

SPARK_WORKER_CORES、SPARK_WORKER_MEMORY:worker节点的内核数、内存大小。

这里的workder节点的内存大小,为1024MB,此处可用根据自己机器配置调高,设置为1g,2g或其他。

7、若spark集群,是由多台服务器构成,则需要对每台服务器配置jdk环境变量、安装Scala、修改环境变量。并将以上配置完毕的spark的安装包,拷贝到各个服务器上。各个服务器安装包位置,尽量保持一致。

8、启动hadoop,首先需要保证hadoop进程已启动。切换目录到/apps/spark/sbin目录下,启动spark。

view plain copy
  1. cd /apps/spark/sbin  
view plain copy
  1. ./start-all.sh  

执行jps,查看进程变化

view plain copy
  1. jps  
view plain copy
  1. 5144 NodeManager  
  2. 5555 Master  
  3. 4690 DataNode  
  4. 4868 SecondaryNameNode  
  5. 5691 Jps  
  6. 5041 ResourceManager  
  7. 4562 NameNode  
  8. zhangyu@0ed3f46ad512:~$  

9、切换目录到/apps/spark/bin目录下,使用spark shell客户端,访问服务端,验证安装完的spark是否可用。

view plain copy
  1. cd /apps/spark/bin  
view plain copy
  1. ./spark-shell --master spark://localhost:7077  

进入命令行模式

view plain copy
  1. 16/12/05 09:50:42 INFO repl.SparkILoop: Created sql context (with Hive support)..  
  2. SQL context available as sqlContext.  
  3. scala>  

执行测试

在spark shell中,使用scala执行个例子。在HDFS上的/spark/1/目录下,放有一个文件,名为sample_data。首先将文件转变为RDD。

view plain copy
  1. var mytxt = sc.textFile("hdfs://localhost:9000/spark/1/sample_data");  

统计文件的行数

view plain copy
  1. mytxt.count();  

可用看到输出为

view plain copy
  1. res3: Long = 4  

表明安装正确。

注意:在刚才执行统计过程中,由于Log4j的日志输出级别为info级别,所以会在屏幕上输出很多的log,很难定位程序的输出结果。

切换目录到/apps/spark/sbin目录下,停止spark。

view plain copy
  1. cd /apps/spark/sbin  
view plain copy
  1. ./stop-all.sh  

再切换目录到/apps/spark/conf目录下,将目录下log4j.properties.template重命名为log4j.properties

view plain copy
  1. cd /apps/spark/conf  
view plain copy
  1. mv /apps/spark/conf/log4j.properties.template /apps/spark/conf/log4j.properties  

使用vim打开log4j.properties文件,修改log4j.rootCategory内容为

view plain copy
  1. log4j.rootCategory=WARN, console  

再次启动spark

view plain copy
  1. cd /apps/spark/sbin  
view plain copy
  1. ./start-all.sh  

执行spark-shell命令

view plain copy
  1. scala> val mytxt = sc.textFile("hdfs://localhost:9000/myspark/mywordcount")  
  2. mytxt: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[1] at textFile at <console>:27  
  3. scala> mytxt.count  
  4. res0: Long = 4  
  5. scala>  

可以看到输出的内容相对于调整log4j日志级别前,更加精简了。

提交报告暂时保存
0 0