Spark集群搭建与测试讲解.docx

上传人:b****5 文档编号:14410196 上传时间:2023-06-23 格式:DOCX 页数:48 大小:5.35MB
下载 相关 举报
Spark集群搭建与测试讲解.docx_第1页
第1页 / 共48页
Spark集群搭建与测试讲解.docx_第2页
第2页 / 共48页
Spark集群搭建与测试讲解.docx_第3页
第3页 / 共48页
Spark集群搭建与测试讲解.docx_第4页
第4页 / 共48页
Spark集群搭建与测试讲解.docx_第5页
第5页 / 共48页
Spark集群搭建与测试讲解.docx_第6页
第6页 / 共48页
Spark集群搭建与测试讲解.docx_第7页
第7页 / 共48页
Spark集群搭建与测试讲解.docx_第8页
第8页 / 共48页
Spark集群搭建与测试讲解.docx_第9页
第9页 / 共48页
Spark集群搭建与测试讲解.docx_第10页
第10页 / 共48页
Spark集群搭建与测试讲解.docx_第11页
第11页 / 共48页
Spark集群搭建与测试讲解.docx_第12页
第12页 / 共48页
Spark集群搭建与测试讲解.docx_第13页
第13页 / 共48页
Spark集群搭建与测试讲解.docx_第14页
第14页 / 共48页
Spark集群搭建与测试讲解.docx_第15页
第15页 / 共48页
Spark集群搭建与测试讲解.docx_第16页
第16页 / 共48页
Spark集群搭建与测试讲解.docx_第17页
第17页 / 共48页
Spark集群搭建与测试讲解.docx_第18页
第18页 / 共48页
Spark集群搭建与测试讲解.docx_第19页
第19页 / 共48页
Spark集群搭建与测试讲解.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Spark集群搭建与测试讲解.docx

《Spark集群搭建与测试讲解.docx》由会员分享,可在线阅读,更多相关《Spark集群搭建与测试讲解.docx(48页珍藏版)》请在冰点文库上搜索。

Spark集群搭建与测试讲解.docx

Spark集群搭建与测试讲解

精通Spark集群搭建与测试

1.安装VMwareWorkstation软件

推荐官方下载最新版,下载地址:

2.运行VMwareWorkstation,新建4台虚拟机,并安装Ubuntu操作系统

Ubuntu下载地址:

需要配置虚拟机使之能够上网,在这里我们采用网络地址转换即NAT的方式,与宿主机共享IP上网:

按照下图指定Ubuntu的iso文件,然后点击‘poweronthisvirtualmachine’,然后按照提示一步步走下去即可完成操作系统的安装。

注1:

可以先装好一台机器,然后通过VMware的克隆功能生成另外两台。

注2:

安装完系统后,为了能从宿主机与虚拟机互相COPY文件,也为了能使虚拟机全屏显示,推荐安装VMwareTools.方法如下:

a.tar-xzvfVMwareTools-9.6.0-1294478.tar.gz

b.cdvmware-tools-distrib/

c.sudo./vmware-install.pl

d.然后一路回车即可

3.为了简化后续操作中的权限问题,我们在这里配置为root账户登录系统,方法如下:

a.进入root用户权限模式:

sudo–s

b.vim/etc/lightdm/lightdm.conf

[SeatDefaults]

user-session=ubuntu

greeter-session=unity-greeter

greeter-show-manual-login=true

allow-guest=false

c.为root账号设置密码:

sudopasswdroot

d.重新启动系统后,即可用root账号登录:

reboot-hnow

注1:

如果系统提示vim没有安装的话,可以通过apt-getinstallvim安装。

注2:

切换为root账户登录后,如果遇到以下问题:

请按以下方法解决:

vim/root/.profile,将“mesgn”,更改为“tty-s&&mesgn”。

4.在各个节点修改节点名称,并配置ip地址和hostname的对应关系:

a.vim/etc/hostname,将4台节点分别命名为master,worker1,worker2,worker3

b.Restart使更改生效

c.验证hostname更改是否生效:

用hostname命令

d.在各个节点修改ip地址和hostname的对应关系:

vim/etc/hosts

e.验证hostname和ip的映射关系是否正确:

用ping命令

注1:

用hostname命令验证更改是否生效:

注2:

用ifconfig来查看当前节点的ip:

注3:

修改后,各节点的hosts文件如下所示:

注4:

用Ping命令来验证hostname和ip的映射关系是否正确。

5.在各个节点安装ssh并配置免密码登录。

Hadoop是通过ssh进行通信的,所以需要安装SSH;

安装完SSH后还需设置免密码登录,才能省去每次通信时都输入密码的麻烦。

a.安装ssh:

apt-getinstallssh;

b.启动ssh:

/etc/init.d/sshstart

c.验证ssh是否正常启动:

ps–e|grepssh.若没有正常启动,可以尝试重启。

d.生产公钥和私钥:

ssh-keygen-trsa

e.将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端的用户的公钥内容):

cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

f.验证单机上免密码登录是否配置成功:

sshlocalhost

g.重复以上步骤,在各个节点的/root/.ssh/目录下生成一个公钥id_rsa.pub和一个私钥id_rsa

h.将所有worker节点的公钥复制到master节点上:

scpid_rsa.pubroot@master:

/root/.ssh/id_rsa.pub.worker1

scpid_rsa.pubroot@master:

/root/.ssh/id_rsa.pub.worker2

i.在master节点上,将所有worker的公钥追加到authorized_keys中:

cat~/.ssh/id_rsa.pub.worker1>>~/.ssh/authorized_keys

cat~/.ssh/id_rsa.pub.worker2>>~/.ssh/authorized_keys

j.将master节点的authorized_keys(已经包含了所有节点的公钥)复制到各个worker节点的.ssh目录下:

scpauthorized_keysroot@worker1:

/root/.ssh/authorized_keys

scpauthorized_keysroot@worker2:

/root/.ssh/authorized_keys

k.验证各个节点之间是否可以免密码登录:

6.在各个节点安装rsync:

apt-getinstallrsync

7.在各个节点安装java,推荐从官方下载最新版本

a.新建java安装目录:

mkdir/usr/lib/java

b.将下载的jdk文件解压到java安装目录中(安装了VMwaretools后,可以直接将下载的安装包拖拉到安装目录中):

tar-xzfjdk-8u60-linux-x64.tar.gz

c.修改环境变量:

vim~/.bashrc

exportJAVA_HOME=/usr/lib/java/jdk1.8.0_60

exportJRE_HOME=$JAVA_HOME/jre

exportCLASSPATH=$JAVA_HOME/lib:

$JRE_HOME/lib:

$CLASSPATH

exportPATH=$JAVA_HOME/bin:

$JRE_HOME/bin:

$PATH

d.执行以下命令使配置文件的修改生效:

source~/.bashrc 

e.验证java是否安装成功:

java-version

8.在各个节点安装hadoop,推荐从官网下载最新的稳定版本。

http:

//apache.opencas.org/hadoop/common/hadoop-2.6.0/

a.创建hadoop安装目录:

mkdir/usr/local/hadoop

b.把下载的hadoop拷贝到安装目录并解压(安装了VMwaretools后,可以直接将下载的安装包拖拉到安装目录中):

tar-xzvfhadoop-2.6.0.tar.gz

c.为了可以在任意目录下使用hadoop命令,需要将hadoop的bin目录配置到.bashrc中,vim~/.bashrc:

 

exportHADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0

exportPATH=$JAVA_HOME/bin:

$JRE_HOME/bin:

$HADOOP_HOME/bin:

$HADOOP_HOME/sbin:

$PATH

d.使用source命令使更改生效:

source~/.bashrc

e.verifytheinstallationofhadoop:

hadoopversion

注:

可以首先在一台节点上安装配置好,然后通过SCP命令拷贝到其他节点上。

9.在各个节点配置hadoop:

可以首先在一台节点上配置好,然后通过SCP命令拷贝到其他节点上。

a.具体操作前首先在hadoop根目录下创建以下文件夹:

mkdirtmp

mkdirdfs

mkdirdfs/data

mkdirdfs/name

注:

这里新建的目录会在hdfs-site.xml中用到。

实际上namenode节点上只需要dfs/name目录,datanode节点上只需要dfs/data目录。

b.修改Hadoop-env.sh,指定java安装目录:

注:

若没有配置JAVA_HOME,后续执行hadoop命令时会报如下错误:

c.修改yarn-env.sh,指定java安装目录:

d.修改mapred-env.sh,指定java安装目录:

e.修改配置文件slaves,将各个worker节点的hostname加进去:

f.修改core-site.xml,以下是最小配置,更详细的信息可以参考官网:

http:

//hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

vimcore-site.xml:

 

  fs.defaultFS

  hdfs:

//Master:

9000

Thenameofthedefaultfilesystem

 

  

  hadoop.tmp.dir

  /usr/local/hadoop/hadoop-2.6.0/tmp

  Abaseforothertemporarydirectories

 

hadoop.native.lib

true

Shouldnativehadooplibraries,ifpresent,beused.

on>

g.修改hdfs-site.xml,以下是最小配置,更详细的信息可以参考官网:

http:

//hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

vimhdfs-site.xml:

  

    dfs.replication

    2

  

    dfs.namenode.name.dir

    /usr/local/hadoop/hadoop-2.6.0/dfs/name

dfs.datanode.data.dir

/usr/local/hadoop/hadoop-2.6.0/dfs/data

注:

这里指定的dfs.namenode.name.dir与dfs.datanode.data.dir若不存在的话,后续start-dfs时会报错:

h.修改mapred-site.xml,以下是最小配置,更详细的信息可以参考官网:

http:

//hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

注:

MRv1的Hadoop没有使用yarn作为资源管理器,其配置如下:

vimmapred-site.xml:

(withoutyarn)

  

    mapred.job.tracker

    master:

9001

  

MRv2的hadoop使用yarn作为资源管理器,其配置如下:

vimmapred-site.xml:

(withyarn)

  

    mapreduce.framework.name

    yarn

  

i.修改yarn-site.xml,以下是最小配置,更详细的信息可以参考官网:

http:

//hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

vimyarn-site.xml:

yarn.resourcemanager.hostname

master

yarn.nodemanager.aux-services

mapreduce_shuffle

注:

Yarn是Hadoop推出整个分布式(大数据)集群的资源管理器,负责资源的管理和分配,基于Yarn我们可以在同一个大数据集群上同时运行多个计算框架,例如Spark、MapReduce、Storm。

10.启动并验证hadoop集群:

a.格式化hdfs文件系统:

hadoopnamenode–format/hdfsnamenode-format

该命令会启动,格式化,然后关闭namenode。

实际上格式化后,在namenode上会生成以下文件:

其中VERSION文件的内容如下:

该命令不会在datanode的dfs.datanode.data.dir对应的目录下生成任何文件:

有关该命令的细节请参考官方文档:

http:

//hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#namenode

b.启动hdfs:

start-dfs.sh

使用jps验证HDFS是否启动成功:

通过webui检查HDFS是否启动成功

http:

//master:

50070

注1:

实际上第一次启动hdfs后,在datanode的dfs.datanode.data.dir对应的目录下会生成current目录,该目录下的BP文件与namenode上dfs.namenode.name.dir对应的目录下的current子目录的VERSION文件中的blockpoolID字段的值一致;在该目录下也会生成VERSION文件,该VERSION文件中的clusterID和namenode的dfs.namenode.name.dir对应的目录下的current子目录的VERSION文件中的clusterID一致:

实际上在后续执行了hdfsnamenode–format后,namenode的VERSION文件会改变:

而dananode的BP和VERSION文件都不会改变:

再次start-dfs.sh时,namenode可以成功启动,但在datanode上,因为version文件与namenode的不一致,datanode不能成功启动并成功注册到namenode!

所以:

每次执行hdfsnamenode–format前,必须清空datanode的data文件夹!

(namenode的name文件夹不需要清空,namenode和datanode的tmp文件夹也不需要空。

注2:

注:

有的朋友喜欢使用start-all.sh,其实质是执行了start-dfs.sh和start-yarn.sh,如下图可见,在提示中也可见,推荐分开使用start-dfs.sh和start-yarn.sh而不是直接使用start-all.sh:

c.启动yarn:

start-yarn.sh

使用jps验证yarn是否启动成功:

通过webui检查yarn是否启动成功:

http:

//master:

8088/

http:

//worker1:

8042/

d.启动JobHistoryServer:

mr-jobhistory-daemon.shstarthistoryserver

使用jps验证JobHistoryServer是否启动成功:

通过webui检查JobHistoryServer是否启动成功:

http:

//master:

19888

e.验证hadoop集群

创建文件夹:

hdfsdfs-mkdir-p/data/wordcount

hdfsdfs-mkdir-p/output

上传文件:

hdfsdfs-put/usr/local/hadoop/hadoop-2.6.0/etc/hadoop/*.xml/data/wordcount

查看上传文件是否成功:

hdfsdfs-ls/data/wordcount

尝试执行hadoop自带的wordcount程序:

hadoopjar$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jarwordcount/data/wordcount/output/wordcount

下图可见,执行成功:

也可以去webui里查看jobhistory:

hadoop的常见命令细节请参考官方文档:

http:

//hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#dfs

11.在各个节点安装scala,推荐从官方下载最新版本

a.新建scala安装目录:

mkdir/usr/lib/scala

b.将下载的scala文件解压到scala安装目录中(安装了VMwaretools后,可以直接将下载的安装包拖拉到安装目录中):

tar-xzvfscala-2.10.4.tgz

c.修改环境变量:

vim~/.bashrc

exportSCALA_HOME=/usr/lib/scala/scala-2.10.4

exportPATH=$JAVA_HOME/bin:

$SCALA_HOME/bin:

$HADOOP_HOME/bin:

$HADOOP_HOME/sbin:

$PATH

d.执行以下命令使配置文件的修改生效:

source~/.bashrc 

e.验证scala是否安装成功:

scala-version

12.在各个节点安装spark,推荐从官网下载最新的稳定版本:

a.创建spark安装目录:

mkdir/usr/local/spark

b.把下载的spark拷贝到安装目录并解压(安装了VMwaretools后,可以直接将下载的安装包拖拉到安装目录中):

tar-xzvfspark-1.6.0-bin-hadoop2.6.tgz

c.为了可以在任意目录下使用spark命令,需要将spark的bin和sbin目录配置到.bashrc中,vim~/.bashrc:

 

exportSPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6

exportPATH=$JAVA_HOME/bin:

$JRE_HOME/bin:

$SCALA_HOME/bin:

$HADOOP_HOME/bin:

$HADOOP_HOME/sbin:

$SPARK_HOME/bin:

$SPARK_HOME/sbin:

$PATH

d.使用source命令使更改生效:

source~/.bashrc

13.在各个节点配置spark,一下配置都是在$SPARK_HOME/conf目录下:

a.修改slaves文件,(若没有slaves文件可以cpslaves.templateslaves创建),添加worker节点的Hostname,修改后内容如下:

b.配置spark-env.sh,(若没有该文件可以cpspark-env.sh.templatespark-env.sh创建),添加如下内容:

exportJAVA_HOME=/usr/lib/java/jdk1.8.0_60

exportSCALA_HOME=/usr/lib/scala/scala-2.10.4

exportHADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0

exportHADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.6.0/etc/hadoop

exportSPARK_MASTER_IP=master

exportSPARK_WORKER_MEMORY=1g

修改后的内容如下:

更详细的配置说明,请参考官方文档:

http:

//spark.apache.org/docs/latest/spark-standalone.html#cluster-launch-scripts

c.可选,配置spark-defaults.sh:

14.启动并验证spark集群:

Spark只是一个计算框架,并不提供文件系统功能,故我们需要首先启动文件系统hdfs;在standalone模式下,我们并不需要启动yarn功能,故不需要启动yarn.

a.用start-dfs.sh启动hdfs,参考step10.

b.在hadoop集群启动成功的基础上,启动spark集群,常见的做法是在master节点上start-all.sh:

c.使用jps在master和worker节点上验证spark集群是否正确启动:

d.通过webui查看spark集群是否启动成功:

http:

//master:

8080

e.启动spark的historyserver:

start-history-server.sh

Jps可见,historyserver没能启动成功。

仔细观察日志可见,指定的日志目录不存在:

该目录是我们在spark

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2