专栏首页LhWorld哥陪你聊算法从0到1搭建spark集群---企业集群搭建

从0到1搭建spark集群---企业集群搭建

今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群。

一。下载Spark安装包

可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hadoop2.6

在官网中找到对应的链接即可http://spark.apache.org/downloads.html

或者用本人云盘下载地址 附上链接如下链接:https://pan.baidu.com/s/1o7Vrkue 密码:sc2z

二。部署和规划Spark集群

提前准备好四台虚拟主机,三台主机 node1 node2 node4 做Spark集群  develop做Spark客户端用于提交程序

集群规划如下:

node1 Master节点 node2,node4 Worker节点 架构图如下:

 在此之前需要配置Master节点到Worker的免密登陆因为在Master节点需要启动所有的Worker节点,所有需要配置Master到Worker的免密登陆 只需要这一个免密配置即可 不需要配置woker--worker  worker-master节点的免密  因为主要是在Master节点上启动集群

   免密设置具体参考如下:http://blog.csdn.net/leexide/article/details/17252369

1.分别在三台集群下创建同名目录 (目录一定要一致,方便集群部署)

本集群环境创建为/root/spark目录

2.使用Xshell将文件上传至其中某个节点即可(没有必要上传全部节点,因为后期还要重新配置)

上传至某个节点之后,假设上传到主节点Master节点后

 3.解压目录,命令和结构如下

 tar -zxf   spark-1.6.0-bin-hadoop2.6.tar

然后重命名 方便后期部署

mv  spark-1.6.0-bin-hadoop2.6  spark-1.6.0

结构如下:

4.配置参数

进入到配置目录,路径为

/root/spark/spark-1.6.0/conf

后可看见文件如下

我们需要把template关键字去掉 因为是个模板文件 简单介绍下文件作用:

slaves文件---worker几点所在目录

spark-default.conf目录文件 默认配置文件

spark-env.sh环境配置文件

这几个是我们主要用的

更改后的目录文件格式如下:

配置spark-env.sh

可以看到集群配置参数如下,我们主要配置这些参数

配置完后的截图如下:

 解释一下参数意义:

SPARK_MASTER_IP=node1  #主节点主机名

SPARK_MASTER_PORT=7077 #主节点和Worker的通信端口

SPARK_WORKER_CORES=2 # 每个worker进程能管理两个核

SPARK_WORKER_MEMORY=2g # 每个worker进程能管理2g内存

SPARK_MASTER_WEBUI_PORT=8888 # 主节点WEB-UI展示图  默认端口是8080

SPARK_WORKER_INSTANCES=1 #每个worker节点能够启动的worker进程 默认是一个 如果为2  则每一个worker几点能够启动2个Worker进程 就这意思

根据这配置 则 Master节点能够管路4core 4g内存(有两个Worker进程 每一个worker进程管理两个核,2g内存)

 配置slaves文件:配置从节点的ip 或主机名

截图如下

5.将主节点的配置分发到从节点 同名目录下

命令如下:

回到spark的主目录配置文件

然后分发到node2  node4节点 这里命令如下`pwd`即到当前目录

6、启动Spark集群:     执行安装包sbin目录下的start-all.sh脚本     ./sbin/start-all.sh

 7.查看集群状态

jps命令为jvm的命令与局之一 专门查看java进程

Master节点状态:

Worker节点状态:

查看WEBUI是否能访问:

注意关闭Linux的防火墙:具体操作如下

/etc/init.d/iptables status

会得到一系列信息,说明防火墙开着。

/etc/init.d/iptables stop

永久关闭:

chkconfig --level 35 iptables off

在本机访问node1:8888(别忘配置host)

 至此,集群搭建成功!

8.测试集群是否可用

 将主节点中的spark文件同步到客户端develop节点

在develop节点中提交spark任务 ,由于本例测试 所以直接提交spark自带测试用例 计算Pi的值

注意别忘配置Client(develop)客户端的host 因为要提交任务到Master节点(node1)节点上去运行

即可看见运行状态

在WebUI也可以看见

 到此集群测试完毕!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【机器学习】--贝叶斯网络

    当多个特征属性之间存在着某种相关关系的时候,使用朴素贝叶斯算法就没法解决这类问题,那么贝叶斯网络就是解决这类应用场景的一个非常好的算法。一般而言,贝叶斯网络的有...

    LhWorld哥陪你聊算法
  • 【TensorFlow篇】--反向传播

    反向自动求导是 TensorFlow 实现的方案,首先,它执行图的前向阶段,从输入到输出,去计算节点 值,然后是反向阶段,从输出到输入去计算所有的偏导。

    LhWorld哥陪你聊算法
  • 【Spark篇】---Spark中Master-HA和historyServer的搭建和应用

                    Standalone集群只有一个Master,如果Master挂了就无法提交应用程序,需要给Master进行高可用配置,Mast...

    LhWorld哥陪你聊算法
  • JavaScript贪食蛇游戏制作详解

    之前闲时开发过一个简单的网页版贪食蛇游戏程序,现在把程序的实现思路写下来,供有兴趣同学参考阅读。 代码的实现比较简单,整个程序由三个类,一组常量和一些游戏逻辑...

    用户1608022
  • LeetCode 328:奇偶链表 Odd Even Linked List

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

    爱写bug
  • LeetCode 328:奇偶链表 Odd Even Linked List

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

    爱写bug
  • Java之手写LinkedList(中)

    由于今天要写add(int index,T t)方法,索引会把内部类中的递归的get(int index)改造成获取节点,不直接获取元素,外部类的get方法也会...

    用户5224393
  • orm 系列 之 常用设计模式 The Repository Pattern

    本文是orm系列的第一篇,内容来自github上的一个Markdown,清晰的讲述了一些数据库设计上常用的设计模式,并且阐述了orm是什么?

    zhuanxu
  • AbstractQueuedSynchronizer源码解读

       AbstractQueuedSynchronizer(AQS),是 Java 并发包中,实现各种同步结构和部分其他组成单元(如线程池中的 Worker)的...

    良辰美景TT
  • 已知两种遍历序列求原始二叉树

    中序里面,根节点C的左边是E,所以E是C的左子树,C的右边是E,所以E是C的右子树

    爱学习的孙小白

扫码关注云+社区

领取腾讯云代金券