概念
说明:
基于内存的计算框架。
名词:
特点:
快。
模块
- spark core (核心库)
- spark sql (sql)
- spark streaming (准时间计算)
- spark mllib (机器学习库)
- spark graph (图上计算)
安装
- local
- 解压
- 配置环境变量
- source环境变量
- 打开命令行,输入spark-shell,能显示出scala环境即正常。
- 集群模式
- standalone
- 机器分配
- standalone
| - | h152 | h153 | h154 |
|---|---|---|---|
| master | Y | ||
| slave | Y | Y |
- 上传到h152
- 解压 tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
- 配置SPARK_HOME PATH (/etc/profile)
#SPARK_HOME export SPARK_HOME=/opt/module/spark-2.1.1-bin-hadoop2.7 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin - 配置JAVA_HOME (在sbin/spark-config.sh最后行追加export JAVA_HOME=/opt/module/jdk1.8.0_144)
- 分发spark-2.1.1-bin-hadoop2.7/到h153,h154
- 配置master节点的slaves节点 ($SPARK_HOME/conf/slaves)
h153 h154 - 启动集群 ($SPARK_HOME/sbin/start-all.sh)
- 查看进程xcall jps
master //h152 worker //h153 worker //h154 - webui http://h152:8080/
- yarn
skip - mesos
skip
- yarn
rpc端口 7077
单机测试
- start-thriftserver.sh
- start-thriftserver.sh –hiveconf hive.server2.thrift.port 50000 改端口
- beeline
!connect jdbc:hive2://localhost:10000
# 让输入用户名/密码时直接回车即可使用dbeaver连接测试,若是连接不上服务,可查看是否防火墙原因。
word count
wordcount.txt的内容如下
hello word1
hello word2
hello word3
hello word3- shell
val rdd1 = sc.textFile("/root/wordcount.txt")
var rdd2 = rdd1.flatMap(line=>line.split(" "))
var rdd3 = rdd2.map(word=>(word,1))
var rdd4 = rdd3.reduceByKey(_ + _)
rdd4.collect- java
api
- SparkContext spark程序的入口点,封装了整个spark运行环境的信息。
- RDD 弹性分布式数据集
命令(创建分区表,删除分区)
CREATE TABLE tmp_sales(id INT) PARTITIONED BY (country STRING, quarter int);
insert into tmp_sales PARTITION (country = 'abc', quarter = 1) values(1);
insert into tmp_sales PARTITION (country = 'abc', quarter = 1) values(2);
insert into tmp_sales PARTITION (country = 'abc', quarter = 2) values(1);
insert into tmp_sales PARTITION (country = 'abc', quarter = 2) values(2);
select * from tmp_sales limit 10;
– 根据两个字段确定分区再删除
ALTER TABLE tmp_sales DROP PARTITION (country = 'abc', quarter=1);
– 根据一个字段确定分区再删除
ALTER TABLE tmp_sales DROP PARTITION (country = 'abc');
删除不存在的分区时会报异常:
org.apache.spark.sql.AnalysisException: No partition is dropped. One partition spec 'Map(country -> abc, quarter -> 1)' does not exist in table 'tmp_sales' database 'default';; nested exception is java.sql.SQLException: 查看所有配置参数 set -v
–conf spark.sql.crossJoin.enabled=true
spark.sql.crossJoin.enabled true When false, we will throw an error if a query contains a cartesian product without explicit CROSS JOIN syntax.
问题
给dbeaver指定java路径,在dbeaver.ini中添加如下即可(dbeaver的命令行参数是两行)
-vm
D:/apps/jdk8u151/bin/javaw.exedbeaver文件内容示例如下(…代码其它配置):
...
-vm
D:/apps/jdk8u151/bin/javaw.exe
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
...作者:张三 创建时间:2026-03-12 18:51
最后编辑:张三 更新时间:2026-03-12 18:54
最后编辑:张三 更新时间:2026-03-12 18:54