Spark主要使用HDFS充当持久化层,所以完整地使用Spark需要预先安装Hadoop
Hadoop的下载地址:http://hadoop.apache.org/
Spark的下载地址:http://spark.apache.org/
同时也可使用Ambari安装Hadoop生态系统的所有需要的组件,参看文章:http://blog.csdn.net/wee_mita/article/details/64121884
Spark在生产环境中,主要部署在安装Linux系统的集群中。在Linux系统中安装Spark需要预先安装JDK、Scala等所需要的依赖。
由于Spark是计算框架,所以需要预先在集群内有搭建好存储数据的持久化层,如HDFS、Hive、Cassandra等,最后可以通过启动脚本运行应用。
1.安装JDK
1-1 使用命令getconf LONG_BIT
查看Linux系统的位数,然后下载相应版本的JDK
1-2 Oracle JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
1-3 把下载的jdk-8u131-linux-x64.tar.gz安装包解压到相应的目录
tar -zxvf jdk-8u131-linux-x64.tar.gz
1-4 配置环境变量,在/etc/profile
配置全局变量或者在.bash_profile
中配置用户变量
在文件中添加如下内容,
添加完成之后使用命令source /etc/profle
使环境变量生效,
然后使用命令java -version
查看是否安装成功
export JAVA_HOME=/usr/java
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
2.安装Scala
2-1 下载Scala地址:http://www.scala-lang.org/download/
2-2 根据Spark对应版本选择下载的Scala版本(scala-2.12.2.tgz)
2-3 如1-3那样的安装
2-4 配置环境变量,在/etc/profile
配置全局变量或者在.bash_profile
中配置用户变量
在文件中添加如下内容,
添加完成之后使用命令source /etc/profle
使环境变量生效,
在命令行输入Scala,能进入scala命令行说明安装成功
export SCALA_HOME=/usr/scala
export PATH=$PATH:$SCALA_HOME/bin
3.安装Hadoop
Hadoop的安装和配置,参看:
http://blog.csdn.net/wee_mita/article/details/52750112 或者 http://blog.csdn.net/wee_mita/article/details/53911747
4.Spark安装
4-1 Spark的下载地址:http://spark.apache.org/
4-2 下载对应Hadoop版本的Spark版本(spark-2.1.0-bin-hadoop2.7.tgz)
4-3 按照1-3的方式安装Spark
4-4 配置环境变量,在/etc/profile
配置全局变量或者在.bash_profile
中配置用户变量
在文件中添加如下内容,
添加完成之后使用命令source /etc/profle
使环境变量生效,
export SPARK_HOME=/usr/spark
4-5 配置conf/spark-env.sh
文件
官方配置文件参考:http://spark.apache.org/docs/latest/configuration.html
在文件中加入如下内容:
export SCALA_HOME=/usr/scala
export SPARK_WORK_MEMORY=4g
export SPARK_MASTER_IP=Master
export MASTER=spark://Master:7077
参数解释:
PS:SPARK_MASTER_IP和MASTER必须配置否则会造成Slave无法注册主机错误
4-6 配置conf/slaves
文件 将节点的主机名加入到slaves文件中
Slave1
Slave2
...
...
5.启动Spark集群
Spark集群需要和Hadoop集群一起启动
5-1 Spark启动和关闭
./sbin/start-all.sh
./sbin/stop-all.sh
5-2 在Master节点查看是否启动成功
# jps
2127 Master
能查看都Master就成功了
5-3 利用SSH免密码登录Worker节点查看是否启动成功
关于SSH的配置在前面的Hadoop配置中有
# jps
1405 Worker
5-4 完全启动的一个Spark集群的进程如下:
2127 Master
1405 Worker
7396 NameNode
7594 SecondaryNameNode
1053 DataNode
7681 ResourceManager
31935 NodeManager
如缺少进程可以在logs文件夹下查看相应的日志,具体查看哪里出了问题 针对解决。
6.Spark集群样例运行
6-1 以./run-example
的方式运行
./bin/run-example org.apache.spark.examples.SparkPi
6-2 以./Spark Shell
的方式运行
./bin/spark-shell
6-3 通过web ui 查看集群状态
http://master:8080
http://master:4040