程序员大数据

Spark1.5.0的安装和部署

2016-05-06  本文已影响791人  ZyZhu

一、Spark集群部署

1、软件版本

OS版本:Ubuntu 14.04

Hadoop版本:Hadoop 2.6.0

JDK版本:Jdk1.8.0_40

Scala版本:scala-2.11.7.tgz

Spark版本:spark-1.5.0-bin-hadoop2.6.tgz

注:Spark程序包版本要根据下载及安装的hadoop版本进行下载和安装,Spark下载官网地址http://spark.apache.org/downloads.html;Scala官网地址http://www.scala-lang.org/,根据Spark官方规定的Scala版本进行下载和安装。

2、集群节点

Spark部署在安装有hadoop的Ubuntu系统集群中,在Ubuntu14.04中安装Spark,需要预先安装JDK、Scala等所需依赖。Spark只是计算框架,需要预先在集群中搭建好存储数据的持久化层(HDFS/Hive等),所以也需要预先安装Hadoop。

集群:1台master、10台salve计算节点,2台client。

主机名(节点)

IP地址

内存(GB)

VCPU

(个)硬盘(GB)

节点运行进程

Master

192.168.1.60

4

4

100

ResourceManager、NameNode、SecondaryNameNode、

Master

Node1

192.168.1.61

4

4

100

NodeManager、DataNode、Worker

Node2

192.168.1.62

4

4

100

NodeManager、DataNode、Worker

Node3

192.168.1.63

4

4

100

NodeManager、DataNode、Worker

Node4

192.168.1.64

4

4

100

NodeManager、DataNode、Worker

Node5

192.168.1.65

4

4

100

NodeManager、DataNode、Worker

Node6

192.168.1.66

4

4

100

NodeManager、DataNode、Worker

Node7

192.168.1.67

4

4

100

NodeManager、DataNode、Worker

Node8

192.168.1.68

4

4

100

NodeManager、DataNode、Worker

Node9

192.168.1.69

4

4

100

NodeManager、DataNode、Worker

Node10

192.168.1.70

4

4

100

NodeManager、DataNode、Worker

Client

192.168.1.80

4

4

100

Client_b

192.168.1.81

4

4

100

3、安装JDK

在服务器上搭建一台安装Ubuntu14.04的虚拟机,安装完JDK和Scala之后,克隆虚拟机13台。

(1)下载JDK

下载jdk1.8.0_40版本,官网地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

(2)下载后解压,解压目录/home/hadoop/jdk1.8.0_40;

# tar–xzvf jdk-8u40-linux-x64.tar

(3)配置环境变量,root权限下在/etc/profile文件下增加以下代码:

(4)使profile文件更新生效

#source/etc/profile

4、安装Scala

(1)下载scala-2.11.7.tgz

(2)解压至目录/home/hadoop/scala-2.11.7

# tar –xzvf scala-2.11.7.tgz

(3)配置环境变量,root权限下在/etc/profile文件下增加以下代码:

(4)使profile文件更新生效

# source/etc/profile

注:安装完JDK和Scala之后,克隆出另外12台虚拟机。

5、网络配置

服务器地址:192.168.0.80用户名:administrator密码:********

在服务器上搭建安装Ubuntu14.04的虚拟机,克隆12台。分别配置13台主机的网络地址。

IP地址:192.168.1.X

子网掩码:255.255.0.0网关:192.168.0.1

DNS:192.168.0.1

注:网络配置IPv4选择->Manual(手动),为每台主机配置静态IP地址(详细IP见2中表格)

6、修改主机名hostname

修改每台(13台)主机的hostname,分别为master、client、client_b、node1~node1。

命令:hostname//查看主机名

sudo vi /etc/hostname//打开hostname文件(root权限下可修改)

7、配置hosts文件

修改集群中所有节点的/etc/hosts文件,该文件是集群中所有节点的IP和主机名hostname的对应关系。

命令:sudo gedit/etc/hosts//打开该文件

添加:192.168.1.60master

192.168.1.61 node1

192.168.1.62 node2

……

192.168.1.70 node10

192.168.1.80 client

192.168.1.81 client_b

注:修改每个节点的hosts文件,且确保每个节点的hosts文件相同

8、配置SSH免密码登录

Spark的Master节点向Worker节点发命令需要通过ssh进行发送,用户不希望Master每发送一次命令就输入一次密码,因此需要实现Master无密码登录到所有Worker。这需要在Master上生成一个密钥对,包括一个公钥和一个私钥,然后将公钥复制到Worker上。

当Master通过ssh连接Worker时,Worker就会生成一个随机数并用Master的公钥对随机数进行加密,发送给Worker。Master收到加密数之后再用私钥进行解密,并将解密数回传给Worker,Worker确认解密数无误之后,允许Master进行连接。这就是一个公钥认证过程,其间不需要用户手工输入密码,主要过程是将Master节点公钥复制到Worker节点上。

(1)在Master节点上,生产密钥:

# ssh-keygen -tdsa -P '' -f ~/.ssh/id_dsa

此时,在~/.ssh/目录下生成id_dsa.pub文件,查看命令:

# ls –a~/.ssh

(2)复制Master的id_dsa.pub文件到其他slave节点、client、client_b

将master结点上的~/.ssh/id_dsa.pub的内容,添加到slave结点的~/.ssh/authorized_keys这个文件中。命令如下:

scp~/.ssh/id_dsa.pub hadoop@node1:~/.ssh/authorized_keys//添加到node1节点

scp~/.ssh/id_dsa.pub hadoop@node2:~/.ssh/authorized_keys//添加到node2节点

……

scp~/.ssh/id_dsa.pub hadoop@node10:~/.ssh/authorized_keys//添加到node10节点

scp~/.ssh/id_dsa.pub hadoop@client:~/.ssh/authorized_keys//添加到client节点

scp~/.ssh/id_dsa.pub hadoop@client_b:~/.ssh/authorized_keys//添加到client_b节点

(3)验证是否可以无密码登陆

在master结点上使用ssh连接其他slave结点,命令如下:

# ssh node1

……

# ssh node10

# ssh client

# ssh client_b

9、Hadoop安装与配置

(1)解压安装hadoop-2.6.0

将下载后的hadoop-2.6.0.tar.gz(官网地址http://hadoop.apache.org/)解压到master节点的/home/hadoop目录下,配置好master节点的hadoop后复制到其他节点即可。

解压命令如下:

# tar xzfvhadoop-2.6.0.tar.gz

复制命令如下:

scp –r /home/hadoop/hadoop-2.6.0 hadoop@node1:/home/hadoop///复制到node1

scp -r /home/hadoop/hadoop-2.6.0 hadoop@node2:/home/hadoop///复制到node2

……

scp -r /home/hadoop/hadoop-2.6.0 hadoop@node10:/home/hadoop///复制到node10

scp -r /home/hadoop/hadoop-2.6.0 hadoop@client:/home/hadoop///复制到client

scp -r /home/hadoop/hadoop-2.6.0 hadoop@client_b:/home/hadoop///复制到client_b

注:配置完之后再执行复制命令,且集群中所有的hadoop都安装在同一目录下。

(2)配置Hadoop环境变量

在/etc/profile文件中,添加以下代码:

使profile文件更新生效:# source /etc/profile

(3)编辑Hadoop配置文件

hadoop配置文件都在hadoop-2.6.0/etc目录下,配置时需要修改7个配置文件,包括hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、masters和slaves文件。

①修改hadoop-env.sh

export JAVA_HOME=/home/hadoop/jdk1.8.0_40

②修改core-site.xml

注:修改属性,以name和value的关系对出现。

③修改hdfs-site.xml

注:在hadoop-2.6.0目录下,默认不存在dfs/name及dfs/data文件夹,需要新建。

命令如下:

cd/home/hadoop/hadoop-2.6.0/

mkdir dfs

cd dfs/

mkdir name

mkdir data

④修改yarn-site.xml

⑤修改mapred-site.xml

⑥配置masters文件

⑦配置slaves文件

注:slaves文件仅包括集群中作为计算节点的主机名(这里不包括client和client_b)。

配置完hadoop后,将hadoop2.6.0的所有文件通过scp命令复制到其他节点。

(4)启动和关闭hadoop

�格式化hdfs文件系统的namenode

# cd hadoop-2.6.0///进入hadoop-2.6.0目录

# bin/hdfs namenode -format//格式化

②启动hadoop集群

# sbin/start-dfs.sh//启动hdfs(一次性启动namenode和所有datanode)

# sbin/start-yarn.sh//启动yarn(一次性启动RM和所有NM)

通过jps命令查看是否启动成功。

③关闭hadoop集群

#sbin/stop-all.sh

10、安装spark

(1)下载spark-1.5.0-bin-hadoop2.6.tgz

官网地址http://spark.apache.org/downloads.html

(2)解压至目录/home/hadoop/spark-1.5.0-bin-hadoop2.6

# tar–xzvf spark-1.5.0-bin-hadoop2.6.tgz

(3)配置conf/spark-env.sh文件

参数SPARK_WORKER_MEMORY表示在每一个Worker节点上可用的最大内存(总内存4g,增加这个数值可以在内存中缓存更多数据,但是要给Slave的OS和其他服务预留出足够的内存,故这里设置为3g)

注:其他更复杂的配置参考官网的配置页面,地址为http://spark.apache.org/docs/latest/configuration.html

(4)配置slaves文件

进入spark安装目录,编辑/conf/slaves文件

注:将配置好后的spark所有文件,通过scp命令复制到其他节点相同目录下。

# scp –r /home/hadoop/spark-1.5.0-bin-hadoop2.6 hadoop@node*:/home/hadoop

11、启动集群

(1)启动hadoop

进入hadoop2.6.0安装目录,执行#sbin/start-all.sh

(2)启动spark

进入spark安装目录,执行#

sbin/start-all.sh(或者执行#sbin/start-master.sh、# sbin)

(3)检测是否安装成功

通过jps命令,查看启动的进程。master节点启动的进程有:NameNode、SecondaryNameNode、ResourceManager、Master;slaves节点启动的进程有:DataNode、NodeManager、Worker。

至此,spark集群安装完成。

二、Spark示例程序测试

部署完Spark集群之后,以Spark项目中自带的SparkPi(计算)程序为例,测试Spark集群的性能。

(1)启动hadoop、启动spark,进入Spark安装目录,执行:

# bin/run-example org.apache.spark.examples.SparkPi

(2)通过Web UI查看集群状态

浏览器访问http://masterIP:8080,观察Spark集群的整个状态是否正常,如下图所示。masterIP配置为用户的Spark集群的主节点IP,这里为http://192.168.1.60:8080

上一篇下一篇

猜你喜欢

热点阅读