Spark集群搭建与测试讲解.docx
- 文档编号:14410196
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:48
- 大小:5.35MB
Spark集群搭建与测试讲解.docx
《Spark集群搭建与测试讲解.docx》由会员分享,可在线阅读,更多相关《Spark集群搭建与测试讲解.docx(48页珍藏版)》请在冰点文库上搜索。
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:
//Master:
9000
on> g.修改hdfs-site.xml,以下是最小配置,更详细的信息可以参考官网: http: //hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml vimhdfs-site.xml: 注: 这里指定的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) 9001 MRv2的hadoop使用yarn作为资源管理器,其配置如下: vimmapred-site.xml: (withyarn) i.修改yarn-site.xml,以下是最小配置,更详细的信息可以参考官网: http: //hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml vimyarn-site.xml: 注: 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spark 集群 搭建 测试 讲解