Spark学习笔记之一

Spark学习笔记

一.spark自带框架(不依赖其它的框架)的安装方式

1.配置单机式的spark集群【即master节点和worker节点在相同的主机上】

  • 将spark-env.sh-template文件修改成spark-env.sh
vi /spark/conf/spark-env.sh
export JAVA_HOME= #导入Java_HOME
export spark_master_host=localhost #指定master主机(localhost)
export spark_master_port=7077 #指定端口号(默认为7077)
  • 修改slaves文件
vi slaves
localhost #指定子节点所在的位置

2.配置高可用的spark集群

二.为什么worker知道master的地址?或者说二者之间是如何通信的?

1.执行流程大概如下:

  • 1)进入/usr/local/spark-2.2.0-bin-hadoop2.6/sbin,执行命令:./start-all.sh启动。
  • 2)在执行start-all.sh命令时,启动了本机的master进程,然后读取本机的slaves文件,即master知道需要启动的slaves的主机名。
  • 3)因为master所在主机使用的是Zookeper来搭建高可用的环境。所以master知道Zookeper的地址,同时worker也知道Zookeper的地址,所以间接的worker也知道了master的地址。

三.如何让spark依靠hdfs来计算数据

1.spark可以有三种部署方式

  • standalone 是spark自带的集群管理器,商业还很少使用
  • 2.Spark on mesos(二者联系最为密切)
  • 3.Spark on Yarn

2.spark只是一个自带的计算引擎
2.spark只是依靠hdfs来读取数据,进入hadoop的安装目录,使用命令sbin/start-dfs.sh来启动hdfs
3.集群上的任何一台机器上都可以执行spark-shell命令,但spark-shell 执行的是local模式,启动界面就可以看到spark和scala的版本号。呈现的进程是sparkSubmit,而并非是分布式集群。
4.启动分布式集群,切换到spark的sbin目录,执行命令:./start-all.sh
接着切换到bin目录,这次是指定master,使用如下命令:spark-shell --master spark://localhost:7077,可以查看web页面http://192.168.211.2:8080/的Application ID 信息,8080端口是spark的管理页面的端口,即从浏览器可以查看的端口。
5.执行上述命令之后,发生的变化如下:
- 1)出现CoarseGrainedExecutorBackend进程,它是真正负责计算Spark任务的进程

四.Spark-shell

1.支持scala,和python语言
2.一个Driver就包括main方法和分布式数据集RDD。spark shell本身就是一个driver

  • local 使用一个worker线程本地化运行spark(完全不并行)
  • local[*] 使用逻辑cpu个数数量的线程来本地化运行spark
  • local[k] 使用k个worker线程本地化运行spark,k是线程的数量【应该根据机器的cpu核数设定】
  • spark://host:port 指定连接到spark standalone master 默认端口是7077
  • yarn-client 以客户端模式连接yarn集群,集群的位置可以在HADOOP_CONF_FIR环境变量中找到
  • yarn-cluster 以集群模式连接yarn集群
  • mesos://host:port 连接到指定的Mesos集群。默认端口是5050

3.参数解析:

  • –master
  • –jars 添加依赖jar包到classpath中
  • –help 显示帮助信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值