Spark基础
官方文档:spark.apache.org/docs/latest
Spark背景
MapReduce局限性:
1>) 繁杂
map/reduce (mapjoin没有reduce)
low_level
constained
需求 测试 每次改代码再测试
2>) 技术效率低
进程几百:MapTask ReduceTask JVM复用
IO: chain 网络+磁盘
排序:都要排序 :面试题:key类型是实现什么接口?
Memory:
...
不适合迭代处理
不适合实时流式处理
很多框架各自为战
Spark概述和特点
spark.apache.org
Speed
memory
thread
sort (可设置)
DAG rdd.map.filter....collect
Ease of use
high-level operators: join、 group 、 count。。。
generality
Runs Everywhere
小结:
fast + general engine
write code: java/Scala/Python/R interactive shell
run:memory/ADG/thread model/.....版本介绍和选择依据参考:
如何学习Spark
mail list
user@spark.apache.org
apache-spark-user-list/
meetup/峰会
源码样例
github.com/apache/spark
source code
环境:
centos6
hadoop000(hadoop) hadoop001 hadoop002
app 存放安装软件的目录
software 存放软件包的tar
data 存放测试数据
lib存放我们自己的jar
source 存放源码的位置
Spark安装
官网下载源码解压
编译Spark源码的前置要求
java 8+, Python 2.7+/3.4+ Spark 2.3.0 Scala 2.11.xx
安装jdk
apache-maven安装
解压配置.bash_proile
export MAVEN_HOME/home/hadoop/app/apache-maven-3.3.9
export PATH=$MAVE_HOME/bin:$PATH
建议:修改maven本地仓库的地址 $MAVE_HOME/conf/setting.xml
安装scala-2.11.9.tgz
解压配置.bash_proile
export MAVEN_HOME/home/hadoop/app/scala-2.11.9
export PATH=$MAVE_HOME/bin:$PATH
source ~.bash_proile
验证:mvn -v
git安装下 yum install git
编译安装
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
./build/mvn -DskipTests clean package
修改源码编码默认hadoop版本
pom.xml
profile
Apache Hadoop 2.7.x and later
./build/mvn -pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
Hive 1.2.1 support
./build/mvn -Pyarn -Phive -Phive -thriftserver -DskipTests clean package
开发环境编译
./build/mvn -pyarn -Phive -Phive -Phadoop-2.6 -Dhadoop.version=2.6.3 -DskipTests clean
生产环境
./dev/make-distribution.sh \
--name hadoop-2.6.0-cdh6.7.0 --(就填写hadoop版本号) \
--tgz \
--Dhadoop.version=2.6.3 \
--Phadoop-2.6 \
--Phive -Phive-thriftserver \
--Pyarn
根据报错配置仓库源
修改脚本 加快编译速度
vim make-distribution.zh 注释点下面几个编译检查参数
VERSION=2.2.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh6.7.0
SPARK_HIVE=1
编译文档
http://spark.apache.org/docs/2.3.0/building-spark.html
more --- building spark
Spark安装包目录结构说明
bin 存放客户端相关脚本
conf 配置文件模板
data 存放测试数据
examples Spark 自带的测试用例 重点查看自带的代码样例
jars jar包
sbin 存放服务端相关脚本
yarn 存放yarn相关jar包
源码
github.com/apache/spark