Spark-Core高级班知识分享一

本文深入讲解了Apache Spark的基础知识,包括如何使用spark-shell进行程序开发,调整日志级别,以及通过WebUI监控应用状态。详细介绍了SparkContext和SparkSession的使用,并以WordCount为例,展示了数据处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习:
http://spark.apache.org
https://github.com/apache/spark
源码

bin目录下:./spark-shell
启动后,默认日志级别是warn,我们进入到自定义编译的spark包中vi log4j.properties
修改,log4j.rootCategory = INFO,console

SparkContext:应用程序的入口。

打开WebUI,进入到4040端口下,右上角有一个spark-shell,默认名字是Application UI,一个机器上可以会同时启动或运行多个Spark程序,端口会自增,一个应用程序跑在哪个端口上,通过查看日志得知。
sc => SparkContext
master = local[*]
设置Spark用用程序运行在哪里,以什么方式运行。
spark://host:port Standalone
mesos://host:port
yarn Hadoop YARN
K8s

在deploying -->submitting Appications
在启动页面,local[],单个local无任何并行度可言,local[K],
local[
]:Run Spark locally with as many worker threads as logical cores on your machine
翻译:机器有多少个core,就有多少个线程

app id,对应的web UI界面是在Environment下体现

SparkSession:初步理解为一个框,里面可以取很多东西

问题:Spark Shell这个名字是在哪里来的呢?
cd bin
cat spark-shell

spark-shell底层调用的是spark-submit --name “spark-shell” 通过这个脚本设置进来的。

使用spark来实现一个wordcount

在scala中进行操作:

val file = sc.textFile(“file://home/hadoop/data/ruozeinput.txt”)

file.flatMap(.split("\t")).map(,1)

file.flatMap(.split("\t")).map(,1).reduceByKey(+)

按照Key的字典顺序进行排列的。

进行降序排列
result.map(x => (x.2,x.1)) //对元素进行对调
val result = file.flatMap(
.split("\t"))
.map(
,1)
.reduceByKey(+)
.sortByKey(false)
.map(x._2,x._1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值