spark 简介
建议先阅读我的博客 大数据基础架构
spark 一个通用的计算引擎,专门为大规模数据处理而设计,与 mapreduce 类似,不同的是,mapreduce 把中间结果 写入 hdfs,而 spark 直接写入 内存,这使得它能够实现实时计算。
spark 由 scala 语言开发,他能够和 scala 完美结合,同时实现了 java、python、R 等接口。
安装与集群搭建
第一步:安装环境
1. 安装java:很简单,请自行百度
2. 安装 hadoop 集群:具体参考我的博客 hadoop 集群搭建
3. 安装 scala:spark tar 包带有 scala 依赖,所以无需专门安装
4. python2.7 以上版本:如果要使用 pyspark 才需要安装
第二步:下载并安装
1. 官网下载 spark
下载地址 spark
注意选择 hadoop 对应的版本
2. 解压 tar 包
上传至集群的每个节点,解压,设置环境变量
export SPARK_HOME=/usr/lib/spark
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin:$PATH
3. 配置 spark
进入 spark 解压目录,需要配置 conf/slaves,conf/spark-env.sh 两个文件
注意这两个文件是不存在的,需要 cp 复制一下
cp slaves.template slaves
cp spark-env.sh.template spark-env.sh
slaves
末尾去掉 localhost,加上以下内容
hadoop10
hadoop11
hadoop12
hadoop13
spark-env.sh
加上以下内容
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64 export SPARK_MASTER_IP=hadoop1 export SPARK_MASTER_PORT=7077 export SPARK_WORKER_MEMORY=1G
设置 spark 的主节点 和 端口;
spark_worker_memory 表示计算时使用的内存,越大越好,spark 是基于内存的计算
4. 向其他节点远程下发配置
scp -r conf/ root@hadoop11:/usr/lib/spark scp -r conf/ root@hadoop12:/usr/lib/spark scp -r conf/ root@hadoop13:/usr/lib/spark
5. 启动 spark
cd /usr/lib/spark/sbin、
./start-all.sh
停止就是对应的 stop
6. 验证是否启动成功
6.1 jsp 查看进程
主节点显示 master 和 worker 两个进程
从节点显示 worker 进程
6.2 浏览器访问 http://192.168.10.10:8080/
第三步:操作 spark 集群
客户端操作 hadoop 集群的命令都在 spark 的 bin 目录下
1. spark-shell 模式 【 scala 模式】
输入命令
spark-shell # 也可以设置参数 spark-shell --master spark://hadoop10:7077 --executor-memory 600m
2. pyspark 模式 【python 模式】
输入命令 pyspark 即可
[root@hadoop10 spark]# bin/pyspark Python 2.7.12 (default, Oct 2 2019, 19:43:15) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. 19/10/02 22:08:17 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.4.4 /_/ Using Python version 2.7.12 (default, Oct 2 2019 19:43:15) SparkSession available as 'spark'. >>>
如果出现 NameError: name 'memoryview' is not defined,说明 python 版本不对,2.7 及以上
如果出现未导入包什么的,请自行解决,一般是 python 没装好
若是想用 python 程序直接启动 pyspark,需配置 /etc/profile
# python can call pyspark directly export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/pyspark:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
参考资料:
https://www.cnblogs.com/swordfall/p/7903678.html 安装
https://www.jianshu.com/p/5626612bf10c 安装
https://blog.csdn.net/penyok/article/details/81483527 安装