文章目录
注:以下步骤中,从第1步到第8步,除了元数据库的安装之外,其他步骤都是要在集群所有节点上执行的!
1. 官网下载Spark安装包
下载要安装版本的安装包:https://archive.apache.org/dist/spark/。
我这里下载的是:https://archive.apache.org/dist/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.6.tgz。建议用迅雷下载,会比较快。
2. 解压安装包
将下载好的安装包上传到集群某个节点的/opt目录,解压
tar -zxvf spark-2.3.1-bin-hadoop2.6.tgz spark
3. Spark配置
进入到Spark安装路径conf目录下:cd …/spark/conf/。复制以下3个文件:
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
cp log4j.properties.template log4j.properties(INFO改为WARN)
1. 配置spark-env.sh
这个文件主要是配置Spark的环境变量。
文件中添加以下环境变量,vi spark-env.sh:
export HADOOP_CONF_DIR=/etc/hadoop/conf # Hadoop配置文件所在目录
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop # Hadoop安装路径
export LD_LIBRARY_PATH=\$HADOOP_HOME/lib/native:\$LD_LIBRARY_PATH
主要让Spark找到Hadoop的安装目录。
2. 配置spark-defaults.conf
这个文件主要是一些Spark相关的配置项。
以下以Spark on YARN为例,vi spark-defaults.conf:
spark.master yarn # 指定yarn作为资源调度框架
spark.eventLog.enabled true # 启动事件日志, 以便后续日志分析
spark.eventLog.dir hdfs://master-1:8021/spark_eventlog
spark.serializer org.apache.spark.serializer.KryoSerializer # Kryo序列化性能要好于默认的Java序列化
spark.driver.memory 2g # 指定默认Driver端内存
spark.yarn.archive hdfs://master-1:8021/archive # 将Spark程序运行所需的jar打包放到这个目录,避免每次提交任务都要从本地Spark安装目录下拷贝jar包
Spark有不计其数的配置项,可根据个人需求进行配置。具体可参考官网https://spark.apache.org/docs/latest/configuration.html。
3. 配置log4j.properties
可以配置Spark任务的日志级别。
4. scp安装文件
将解压配置好的Spark安装文件拷贝到其他节点:
scp username@hostname:/opt/spark username@hostname:/opt
5. 测试
- 启动spark shell命令行,写一段简单的Spark程序:
./bin/spark-shell --master yarn --num-executors 2 --executor-cores 1 --executor-memory 512M
- 或启动spark sql命令行,执行一些简单的SQL语句:
./bin/spark-sql --master yarn --num-executors 2 --executor-cores 1 --executor-memory 512M