Spark集群配置

来源:互联网 发布:黑手党3和dlc 知乎 编辑:程序博客网 时间:2024/05/29 13:23


Spark集群配置



环境:Ubuntu10.04, Hadoop 0.20.2, JDK 1.6, Spark 0.7.2, Scala 2.9.3


前置条件:

1、三台机器,这里通过创建三个VMware虚拟机来模拟三台物理机器
2、Linux系统,例如Ubuntu、CentOS、Fedora等,这里是Ubuntu10.04
3、jdk for linux版本,这里是jdk-6u25-linux-i586.bin
4、hadoop0.20.2.tar.gz文件
5、Scala文件,这里是scala-2.9.3.tgz
6、Spark文件,我们选择的是编译好的一个Spark版本文件spark-0.7.2-prebuilt-hadoop1.tgz


一、安装Linux系统(Ubuntu10.04 LTS)

$sudo apt-get update  #更新系统,需连网


二、更改主机名,映射IP地址

1、
$sudo gedit /etc/hostname    #主机名master、slave1、slave2
$source /etc/hostname


2、
$ifconfig  #查看IP地址
$sudo gedit /etc/hosts       #IP地址与主机名的映射
192.168.117.138 master 
192.168.117.136 slave1
192.168.117.139 slave2
$source /etc/hosts      #使文件修改生效(需要重启生效)


三、安装 JDK

1、将jdk-6u25-linux-i586.bin拷贝到/home/tom目录下
或用命令$cp ~/Desktop/jdk-6u25-linux-i586.bin /home/tom


2、tom@master:~/home/tom$ chmod u+x jdk-6u25-linux-i586.bin
为文件所有者增加可执行权限


3、执行安装文件:
$./jdk-6u25-linux-i586.bin


4、$sudo gedit /etc/profile
在profile文件中添加如下内容:


export JAVA_HOME=/home/tom/jdk1.6.0_25
export JRE_HOME=/home/tom/jdk1.6.0_25/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

$source /etc/profile #使修改生效


5、
$java -version
显示java version "1.6.0_25"。。。jdk安装成功

四、安装配置Hadoop集群

安装配置SSH服务,在master上空口令生成RSA密钥,将master上生成的公钥发送到slave1和slave2上对应的目录下。
我们这里使用的是hadoop0.20.2.tar.gz文件,Hadoop集群的详细配置过程见上一篇日志《Hadoop集群搭建》。


五、安装 Scala 2.9.3

Spark 0.7.2 依赖于Scala 2.9.3, 所以我们要先安装Scala 2.9.3.


1、将scala-2.9.3.tgz文件放到/home目录下
$ tar -zxf scala-2.9.3.tgz #解压
$ sudo mv scala-2.9.3 /usr/lib #将scala-2.9.3移动至/usr/lib下


2、$ sudo gedit /etc/profile


在profile文件中添加如下内容:


export SCALA_HOME=/usr/lib/scala-2.9.3
export PATH=$PATH:$SCALA_HOME/bin


保存并关闭profile文件


3、$source /etc/profile #使文件修改生效


4、$ scala -version
显示出Scala的版本号,Scala安装成功


六、Spark standalone模式

1、解压
$ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz


2、配置SPARK_EXAMPLES_JAR 环境变量
$sudo gedit /etc/profile
在profile文件中添加如下内容:


export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar


保存并关闭文件


3、$ source /etc/profile #使修改生效


4、设置 SPARK_HOME环境变量
$ sudo gedit /etc/profile


在profile文件中添加如下内容:

export SPARK_HOME=$HOME/spark-0.7.2
export PATH=$PATH:$SPARK_HOME/bin


保存并关闭文件

$ source /etc/profile #使修改生效


5、测试Spark自带实例SparkPi
$ cd ~/spark-0.7.2
$ ./run spark.examples.SparkPi local #本地模式运行
程序结果为圆周率π的近似值


七、Spark集群模式

在master上安装并配置Spark
1、将spark-0.7.2-prebuilt-hadoop1.tgz文件放到/home/tom目录下

$ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz  #解压


2、设置SPARK_EXAMPLES_JAR 环境变量
$ sudo gedit ~/.bash_profile


在profile文件中添加如下内容:

export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar

保存并关闭文件


$ source /etc/profile #使修改生效


3、$ cd ~/spark-0.7.2/conf
$ mv spark-env.sh.template spark-env.sh #重命名


文件①spark-env.sh
$sudo gedit spark-env.sh


在conf/spark-env.sh 中设置SCALA_HOME
在spark-env.sh文件中添加如下内容:

export SCALA_HOME=/usr/lib/scala-2.9.3
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.19.x86_64

保存并关闭文件


$source spark-env.sh


文件②slaves
在conf/slaves, 添加从节点主机名, 一行一个
$ sudo gedit slaves
slave1
slave2

$source slaves


4、设置 SPARK_HOME环境变量
$ sudo gedit ~/profile


在profile文件中添加如下内容:

export SPARK_HOME=$HOME/spark-0.7.2
export PATH=$PATH:$SPARK_HOME/bin

保存并关闭

$ source /etc/profile #生修改生效


5、在所有worker上安装并配置Spark
将master上配置好的spark-0.7.2文件夹,拷贝到所有的worker。注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为worker的spark路径与自己一样。


$ cd  #进入用户目录~下
$ scp -r spark-0.7.2 tom@slave1:~
$ scp -r spark-0.7.2 tom@slave2:~


6、启动 Spark 集群
master上
$ cd ~/spark-0.7.2
$ bin/start-all.sh


查看守护进程
$ jps
Jps
SecondaryNameNode
NameNode
DataNode
JobTracker
TaskTracker
Master
Worker

7、浏览master的web UI(默认http://localhost:8080),这时可以看到所有的word节点,以及他们的CPU个数和内存等信息。 

八、Spark实例测试

1、运行SparkPi例子
$ cd ~/spark-0.7.2
$ ./run spark.examples.SparkPi spark://master:7077


2、运行Spark自带的其他例子,SparkLR 和 SparkKMeans.


#Logistic Regression(逻辑回归)
$./run spark.examples.SparkLR spark://master:7077
#KMeans
$ ./run spark.examples.SparkKMeans spark://master:7077 ./kmeans_data.txt 2 1


3、从HDFS读取文件并运行WordCount
$ cd ~/spark-0.7.2
$ hadoop fs -put README.md .
$ MASTER=spark://master:7077 ./spark-shell
scala> val file = sc.textFile("hdfs://master:9000/user/dev/README.md")
scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)
scala> count.collect()


4、停止 Spark 集群
$ cd ~/spark-0.7.2

$ bin/stop-all.sh


OVER!


0 0
原创粉丝点击