本文展示了在之前搭建的Hadoop分布式集群的基础上如何搭建Spark分布式集群环境
一、已有环境
ubuntu 14.04
hadoop 2.7.1 集群安装参考
三台机器
master、slave1、slave2
二、scala安装
1.Scala官网下载地址:http://www.scala-lang.org/download/
2.安装步骤tar -zxvf scala-2.11.8.tgz
sudo mv scala-2.11.8 /home/cms/
修改/etc/profile
export PATH=$SCALA_HOME/bin export CLASSPATH=$SCALA_HOME/lib``` 立即生效 ```source /etc/profile``` 3.测试 ```scala -version``` ![](http://upload-images.jianshu.io/upload_images/1908836-6a0270619ab4bc77.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ####三、安装spark 1.Spark官方下载链接: http://spark.apache.org/downloads.html 2.解压安装 ```tar -zxvf spark-2.0.1-bin-hadoop2.7``` ```spark-2.0.1-bin-hadoop2.7 /home/cms/``` 修改/etc/profile ```export SPARK_HOME=$HOME/scala-2.11.8export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin export CLASSPATH=$SPARK_HOME/lib``` 立即生效 ```source /etc/profile``` 3.修改权限 ```sudo chown -R cms spark-2.0.1-bin-hadoop2.7``` 4.配置spark,进入到conf目录 ```cp spark-env.sh.template spark-env.sh``` 添加内容
export SCALA_HOME=$HOME/scala-2.11.8
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=$HOME/hadoop-2.7.1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=$HOME/spark-2.0.1-bin-hadoop2.7
SPARK_DRIVER_MEMORY=1G
JAVA_HOME 指定 Java 安装目录; SCALA_HOME 指定 Scala 安装目录; SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址; SPARK_WORKER_MEMORY 指定的是 Worker 节点能够分配给 Executors 的最大内存大小; HADOOP_CONF_DIR 指定 Hadoop 集群配置文件目录。```vim slaves```在slaves文件下填上slave主机名:
slave1
slave2
####四、配置slave机器将配置好的spark、scala文件夹分发给所有slaves吧
sudo scp -r spark-2.0.1-bin-hadoop2.7 cms@slave1:/home/cms
sudo scp -r spark-2.0.1-bin-hadoop2.7 cms@slave2:/home/cms
sudo scp -r scala-2.11.8 cms@slave1:/home/cms
sudo scp -rscala-2.11.8 cms@slave2:/home/cms
修改/etc/profile,不再累述####五、启动spark```start-all.sh``` 启动hadoop集群 ```start-master.sh start-slaves.sh``` 启动主节点和从节点 jps ![](http://upload-images.jianshu.io/upload_images/1908836-d29ff61ba6ff236c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![](http://upload-images.jianshu.io/upload_images/1908836-275116824a1fde81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)####六、测试进入Spark的Web管理页面: http://master:8080![](http://upload-images.jianshu.io/upload_images/1908836-a26d4232f5383514.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)####七、运行实例1.准备 在HDFS上放置文件1.txt
cat 1.txt
we rj lo
we ko ls
we rt ou
```hadoop fs -put 1.txt /tmp/1.txt```2.spark-shell运行 是Spark自带的一个Scala交互Shell,可以以脚本方式进行交互式执行 进入Spark-Shell 只需要执行```spark-shell```即可: 在Spark-Shell中我们可以使用scala的语法进行简单的测试 ![](http://upload-images.jianshu.io/upload_images/1908836-137833880fdce8b8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 上面的操作中创建了一个RDD file,执行了两个简单的操作: count()获取RDD的行数 first()获取第一行的内容 操作完成后,Ctrl D组合键退出Shell。3.pyspark pyspark类似spark-shell,是一个Python的交互Shell。 执行```pyspark```启动进入pyspark: ![](http://upload-images.jianshu.io/upload_images/1908836-19a5c6e96b7504f3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 操作完成后,Ctrl D组合键退出Shell。3.使用pyspark连接master再次进行上述的文件行数测试,如下图所示,注意把MASTER参数替换成你实验环境中的实际参数: ![](http://upload-images.jianshu.io/upload_images/1908836-16d34fe34b73df01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 刷新master的web页面,可以看到新的Running Applications ,如下图所示: ![](http://upload-images.jianshu.io/upload_images/1908836-661fd1b4fd234b7c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)####八、停止服务```stop-master.sh stop-slaves.sh```####九、参考文档[Spark On YARN 集群安装部署](http://wuchong.me/blog/2015/04/04/spark-on-yarn-cluster-deploy/) [Spark 1.6.1分布式集群环境搭建](https://my.oschina.net/jackieyeah/blog/659741) [spark集群安装与配置](http://www.itdadao.com/articles/c15a489218p0.html)
作者:玄月府的小妖在debug
链接:https://www.jianshu.com/p/2f6a85fe7b92