【Spark】Spark安装和Spark-shell使用

发布于:2021-09-26 11:33:36

一、spark的安装模式


1、本地模式(local),单点模式,非分布式模式,只需要用到一台机器;


2、standalone模式,是spark自己实现的独立调度器,它是一个资源调度框架;Spark可以通过部署与Yarn的架构类似的框架来提供自己的集群模式,该集群模式的架构设计与HDFS和Yarn大相径庭,都是由一个主节点多个从节点组成,在Spark 的Standalone模式中,主节点为master;从节点为worker;


3、Spark on Yarn模式和Spark on Mesos模式;


二、spark的standalone模式安装和启动


1、把 spark-1.3.0-bin-2.5.0-cdh5.3.6.tgz 包解压到 目录下



tar spark-1.3.0-bin-2.5.0-cdh5.3.6.tgz -C /opt/cdh-5.3.6

2、/opt/cdh-5.3.6/spark-1.3.0-bin-2.5.0-cdh5.3.6/conf/slaves 文件,里面是域名列表,表示从节点,这里只填1个



hadoop-senior.ibeifeng.com

3、log4j.properties.template 复制一份,并重命名为?log4j.properties;表示启用日志;


4、spark-env.sh.template 复制一份;并重命名为?spark-env.sh;增加以下内容:



JAVA_HOME=/opt/modules/jdk1.7.0_79
SCALA_HOME=/opt/modules/scala-2.10.4

HADOOP_CONF_DIR=/opt/cdh-5.3.6/hadoop-2.5.0-cdh5.3.6/etc/hadoop

SPARK_MASTER_IP=hadoop-senior.ibeifeng.com
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_WORKER_INSTANCES=1
SPARK_WORKER_DIR=1


5、spark-defaults.conf.template 复制一份;并重命名为 spark-defaults.conf;在最后一行加上内容:



spark.master spark://hadoop-senior.ibeifeng.com:7077

至此,standalone的配置完成;


6、启动hadoop单节点和退出安全模式;在/opt/cdh-5.3.6/hadoop-2.5.0-cdh5.3.6目录下依次运行命令:



sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
bin/hdfs dfsadmin -safemode leave


7、启动spark的master和worker节点


有2种启动方式;


一键启动:



sbin/start-all.sh

或者逐个启动,先启动master再启动worker



sbin/start-master.sh
sbin/start-slaves.sh


8、验证有没有启动


可以通过jps命令查看有无进程,有master和worker说明启动成功



或者通过webui监控界面来看


通过浏览器访问?http://hadoop-senior.ibeifeng.com:8080/



三、spark-shell 的用法


1、启动spark-shell


在/opt/cdh-5.3.6/spark-1.3.0-bin-2.5.0-cdh5.3.6目录运行命令



bin/spark-shell

会看到有scala的命令行输入框,说明已经启动成功;



scala>

在spark监控界面?http://hadoop-senior.ibeifeng.com:8080/?可以看到已经有应用在运行:



在spark-shell 的监控界面?http://hadoop-senior.ibeifeng.com:4040/jobs/?可以看到已经运行spark-shell



2、SparkContext 读取hdfs上的文件


hdfs上有文件 /user/root/mapreduce/wordcount/input/wc.input


文件内容如下:



在spark-shell中运行命令,SparkContext 读取hdfs上的文件;hdfs路径得是全路径;读取完文件后生成RDD,类型为String;再用collect提交,



scala> sc.textFile("hdfs://hadoop-senior.ibeifeng.com:8020/user/root/mapreduce/wordcount/input/wc.input")
res0: org.apache.spark.rdd.RDD[String] = hdfs://hadoop-senior.ibeifeng.com:8020/user/root/mapreduce/wordcount/input/wc.input MapPartitionsRDD[1] at textFile at :22
scala> res0.collect
res1: Array[String] = Array(hadoop hive, hive hadoop, hbase sqoop, hbase sqoop, hadoop hive)


可以再spark-shell监控界面看到任务



3、退出spark-shell的步骤


先停止?SparkContext,再退出?spark-shell



?


scala> sc.stop
scala> exit



?


四、master和worker的监控界面webui


在spark-env.sh中设置了master的端口,webui端口,设置了worker的端口,webui的端口;内容如下:



SPARK_MASTER_IP=hadoop-senior.ibeifeng.com
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_WORKER_INSTANCES=1
SPARK_WORKER_DIR=1



访问?http://hadoop-senior.ibeifeng.com:8080/?可以看到master节点的状况;


如下图可看到,master端口为7077,有1个worker从节点,端口为7078;正在运行的有一个应用,应用名为“Spark shell”


?


访问?http://hadoop-senior.ibeifeng.com:8080/?可以看到worker节点的状况;


如下图所示,worker端口为7078;executor序号为0,正在运行的有一个应用,应用名为“Spark shell”


?


访问http://hadoop-senior.ibeifeng.com:4040/executors/,spark-shell监控界面;


可以看到2个executor,序号为0的是worker的executor;driver的是?driver program(SparkContext)的executor;


?


?

相关推荐

最新更新

猜你喜欢