Skip to content

Instantly share code, notes, and snippets.

@greenqy
Last active January 31, 2024 03:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greenqy/01e5555423a2f2bd1427 to your computer and use it in GitHub Desktop.
Save greenqy/01e5555423a2f2bd1427 to your computer and use it in GitHub Desktop.
install-spark.md

spark 安装指南

下载/编译

下载spark 1.5.0 源码包

解压:

$ tar xf spark-1.5.0.tgz
$ cd spark-1.5.0

编译源码,其中要与Hadoop的版本对应:

配置 maven 内存容量

$ export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
$ mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.2 -Phive -Phive-thriftserver -DskipTests clean package

编译过程中,如果有WARNNING,不太重要的可以忽略, 编译时间三十分钟到一个小时左右,编译完成后应该可以看到 BUILD SUCCESSFULLY 的字样。

$ sudo mv spark-1.5.0 /hadoop/spark

配置spark环境变量:

$ vim ~/.bashrc

# Spark settings
export SPARK_HOME=/hadoop/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

配置文件

配置 shell 脚本环境变量

$ cd $SPARK_HOME/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh

export JAVA_HOME=/usr/lib/jdk1.7.0_67
export HADOOP_HOME=/hadoop/hadoop
export HIVE_HOME=/hadoop/hive
export PYSPARK_PYTHON=/usr/bin/python

使用log4j默认配置:

$ mv log4j.properties.template log4j.properties

指定 slaves:

$ vim slaves

datanode01
datanode02
datanode03
datanode04

将 $HIVE_HOME/conf/hive-site.xml 放到 $SPARK_HOME/conf 目录下

将 $HADOOP_HOME/etc/hadoop 目录下的 core-site.xml 以及 hdfs-site.xml 放到 $SPARK_HOME/conf 目录下

同步集群

将 $SPARK_HOME 目录同步到集群中的所有机器上, 同时修改环境变量

启动/关闭

启动:

$ cd $SPARK_HOME
$ ./sbin/start-all.sh

查看进程:

$ jps

## master 机器上有这个进程
17598 Master

### slave 机器上有这个进程
8469 Worker

关闭:

$ ./sbin/stop-all.sh

测试

Run application locally on 8 cores

$ ./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master local[8] \
  /path/to/examples.jar \
  100

Run on a Spark standalone cluster in client deploy mode

$ ./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://namenode:7077 \
  --executor-memory 20G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000

Trouble Shooting

Spark报Native Library无法加载问题的解决方法:

将 $HADOOP_HOME/lib/native/amd64下的libhadoop.so和libhdfs.so复制到 $JAVA_HOME/jre/lib/amd64下即可解决,重启spark即可解决。

pyspark中文问题

$ cd $SPARK_HOME
$ vi python/pyspark/__init__.py

## 在import sys后加入
reload(sys)
sys.setdefaultencoding('utf-8')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment