设为首页 加入收藏

TOP

在Linux集群上部署Spark之前准备
2019-01-07 01:14:29 】 浏览:75
Tags:Linux 集群 部署 Spark 之前 准备

在Linux集群上部署Spark

Spark安装部署比较简单,
用户可以登录其官方网站(http://spark.apache.org/downloads.html)
下载Spark最新版本或历史版本,也可以查阅Spark相关文档作为参考。本书开始写作时,本章所述的环境搭建均以Spark 1.5.0版为例。
Spark使用了Hadoop的HDFS作为持久化存储层,因此安装Spark时,应先安装与Spark版本相兼容的Hadoop。
本节以阿里云Linux主机为例,描述集群环境及Spark开发环境的搭建过程。
Spark计算框架以Scala语言开发,因此部署Spark首先需要安装Scala及JDK(Spark1.5.0需要JDK1.7.0或更高版本)。另外,Spark计算框架基于持久化层,如Hadoop HDFS,因此本章也会简述Hadoop的安装配置。

安装OpenJDK

Spark1.5.0要求OpenJDK1.7.0或更高版本。以本机Linux X86机器为例,OpenJDK的安装步骤如下所示:
1)查询服务器上可用的JDK版本。在终端输入如下命令:

yum list "*JDK*"

yum会列出服务器上的JDK版本。
2)安装JDK。在终端输入如下命令:

yum install java-1.7.0-openjdk-devel.x86cd /usr/lib/jvmln -s java-1.7.0-openjdk.x86 java-1.7

3)JDK环境配置。
① 用编辑器打开/etc/profile文件,加入如下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.7
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

关闭并保存profile文件。
② 输入命令source /etc/profile让配置生效。

安装Scala

登录Scala官网(http://www.scala-lang.org/download/)下载最新版本: scala-2.11.7.tgz
1)安装。

tar zxvf scala-2.11.7.tgz -C /usr/localcd /usr/localln -s scala-2.11.7 scala

2)配置:打开/etc/profile,加入如下语句:

export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin

配置SSH免密码登录

在分布式系统中,如Hadoop与Spark,通常使用SSH(安全协议,Secure Shell)服务来启动Slave节点上的程序,当节点数量比较大时,频繁地输入密码进行身份认证是一项非常艰难的体验。为了简化这个问题,可以使用”公私钥”认证的方式来达到SSH免密码登录。
首先在Master节点上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa),然后把公钥拷贝到Worker节点上(~/.ssh/authorized_keys)

二者交互步骤如下:

1)Master通过SSH连接Worker时,Worker生成一个随机数然后用公钥加密后,发回给Master。
2)Master收到加密数后,用私钥解密,并将解密数回传给Worker。
3)Worker确认解密数正确之后,允许Master连接。
如果配置好SSH免密码登录之后,在以上交互中就无须用户输入密码了。下面介绍安装与配置过程。
1)安装SSH: yum install ssh
2)生成公私钥对: ssh-keygen -t rsa
一直按回车键,不需要输入。执行完成后会在~/.ssh目录下看到已生成
id_rsa.pub与id_rsa两个密钥文件。其中id_rsa.pub为公钥。
3)拷贝公钥到Worker机器:

scp ~/.ssh/id_rsa.pub <用户名>@<worker机器ip>:~/. ssh

4)在Worker节点上,将公钥文件重命名为authorized_keys:

mv id_rsa.pub auth-orized_keys

类似地,在所有Worker节点上都可以配置SSH免密码登录。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark与深度学习框架——H2O、dee.. 下一篇O'Reilly精品图书推荐:Spark..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目