大数据之Spark集群安装及简单使用

  • 目录
  • 1、Spark集群安装
    • 1.1. 安装
  • 2、启动Spark Shell
    • 2.1、启动spark shell
    • 2.2、在spark shell中编写WordCount程序

目录

1、Spark集群安装

1.1. 安装

1.1.1. 机器部署
准备两台以上Linux服务器,安装好JDK1.7
1.1.2. 下载Spark安装包
这里写图片描述

下载地址:http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
上传解压安装包
上传spark-1.5.2-bin-hadoop2.6.tgz安装包到Linux上
解压安装包到指定位置
tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /usr/local

1.1.3. 配置Spark
进入到Spark安装目录
cd /usr/local/spark-1.5.2-bin-hadoop2.6
进入conf目录并重命名并修改spark-env.sh.template文件
cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在该配置文件中添加如下配置
export JAVA_HOME=/usr/java/jdk1.7.0_45
export SPARK_MASTER_IP=node1
export SPARK_MASTER_PORT=7077
保存退出
重命名并修改slaves.template文件
mv slaves.template slaves
vi slaves
在该文件中添加子节点所在的位置(Worker节点)
node2
node3
node4
保存退出
将配置好的Spark拷贝到其他节点上
scp -r spark-1.5.2-bin-hadoop2.6/ node2:/usr/local/
scp -r spark-1.5.2-bin-hadoop2.6/ node3:/usr/local/
scp -r spark-1.5.2-bin-hadoop2.6/ node4:/usr/local/

Spark集群配置完毕,目前是1个Master,3个Work,在node1.itcast.cn上启动Spark集群
/usr/local/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh

启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://node1:8080/
这里写图片描述

到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:
Spark集群规划:node1,node2是Master;node3,node4,node5是Worker
安装配置zk集群,并启动zk集群
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS=”-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark”
1.在node1节点上修改slaves配置文件内容指定worker节点
2.在node1上执行sbin/start-all.sh脚本,然后在node2上执行sbin/start-master.sh启动第二个Master

2、启动Spark Shell

spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。

2.1、启动spark shell

这里需要先启动对应的Spark集群
/root/apps/spark/bin/spark-shell –master spark://shizhan:7077 –executor-memory 2g –total-executor-cores 2

参数说明:
–master spark://shizhan:7077 指定Master的地址
–executor-memory 2g 指定每个worker可用内存为2G
–total-executor-cores 2 指定整个集群使用的cup核数为2个

注意:
如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可

2.2、在spark shell中编写WordCount程序

1.首先启动hdfs
2.向hdfs上传一个文件到hdfs://192.168.112.200:9000/words.txt
3.在spark shell中用scala语言编写spark程序
sc.textFile("hdfs://192.168.112.200:9000/wordcount/input/README.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.112.200:9000/out1")
4.使用hdfs命令查看结果
hdfs dfs -ls hdfs://node1.itcast.cn:9000/out/p*

说明:
sc是SparkContext对象,该对象时提交spark程序的入口
textFile(hdfs://node1.itcast.cn:9000/words.txt)是hdfs中读取数据
flatMap(_.split(” “))先map在压平
map((_,1))将单词和1构成元组
reduceByKey(+)按照key进行reduce,并将value累加
saveAsTextFile(“hdfs://node1.itcast.cn:9000/out”)将结果写入到hdfs中

对于SparkSQL及SparkRDD的介绍请参考以下两篇文章:
SparkSQL:https://blog.csdn.net/qq_16633405/article/details/79844593
SparkRDD:https://blog.csdn.net/qq_16633405/article/details/79843539

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据之Spark简介及RDD说明

目录前言:1、Spark概述1.1、什么是Spark(官网:http://spark.apache.org)1.2、为什么要学Spark1.3、Spark特点 2、RDD概述2.1、什么是RDD2.2、RDD的属性2.3、创建RDD的两种方式2.4、RDD编程API2.5、RDD的依赖关系2.6、RDD的缓存2.7…

大数据之SparkSQL简介及DataFrame的使用

目录前言:1、Spark SQL1.1、Spark SQL概述1.2、DataFrames1.3、DataFrame常用操作 总结: 目录 前言: 本文主要介绍下SparkSQL以及SparkSQL的简单使用。这里只是做了一个非常简单的介绍,后续工作中如果有用到相关的知识&#xff…

Ubantu下使用vi时,方向键变字母输出、退格键无法删除字符的解决办法

目录前言:一、编辑/etc/vim/vimrc.tiny二、安装vim full版本三、添加”.vimrc”文件 目录 前言: 最近由于要玩TensorFlow,所以把尘封已久的Ubantu给打开了,不过配置网络的时候,算是一团糟,出现了在插入模…

《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述

本节书摘来自华章计算机《Python爬虫开发与项目实战》一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区“华章计算机”公众号查看 第3章 初识网络爬虫 从本章开始,将正式涉及Python爬虫的开发。本章…

windows环境下,如何在Pycharm下安装TensorFlow环境

文章目录目录前言:1.安装Anaconda2.安装Tensorflow3.其他问题4.在pycharm中使用tensorflow目录 前言: 最近由于工作需要要使用TensorFlow,所以只能狂补相关的知识。本来博主打算在Ubantu上玩,但是由于一些原因还是放弃了这个想法…

《Effective Debugging:软件和系统调试的66个有效方法》一第5条:在能够正常运作的系统与发生故障的系统之间寻找差别...

本节书摘来自华章出版社《Effective Debugging:软件和系统调试的66个有效方法》一书中的第1章,第1.5节,作[希]迪欧米迪斯斯宾奈里斯(Diomidis Spinellis),更多章节内容可以访问云栖社…

如何安装多个Python版本以及在Pycharm中切换Python版本

目录前言: 首先要切换不同的版本,你必须先下载不同的Python版本,整个步骤如下所示:1、下载Python2.7x和Python3.5x版本2、安装Python2.7x和Python3.5x版本3、配置环境变量,分别添加如下至path路径4、只修改Python27&am…

【python】逻辑运算符总结

# 逻辑运算符 &#xff1a;构造复杂条件 # 优先级 not > and > or # 逻辑与 and 并且、同时 import random# a random.randint(1,5) # if a > 1 and a < 3_流程控制: # print("true") # else: # print("false") # 可以转换为假&#…

C#中out和ref之间的区别【转】

首先&#xff1a;两者都是按地址传递的&#xff0c;使用后都将改变原来参数的数值。 其次&#xff1a;ref可以把参数的数值传递进函数&#xff0c;但是out是要把参数清空&#xff0c;就是说你无法把一个数值从out传递进去的&#xff0c;out进去后&#xff0c;参数的数值为空&am…

玩Python遇到的问题一二三及解决办法

文章目录问题一&#xff1a;python 2.7版本解决TypeError: encoding is an invalid keyword argument for this function。问题二&#xff1a;python读取文件时提示"UnicodeDecodeError: gbk codec cant decode byte 0x80 in position 205: illegal multibyte sequence&qu…

聊天机器人的分类及综述

文章目录[toc] 目录前言&#xff1a;1、技术方向2、chatbot的知识框架3、应用的分类4、chatbot的几个challenges5、工业应用综述总结&#xff1a;目录 前言&#xff1a; 最近由于工作需要&#xff0c;要开发一款智能客服&#xff0c;目前正在搞业务咨询模块的功能&#xff0c…

【python】数据结构和算法 + 浅谈单链表与双链表的区别

有这么一句话说“程序数据结构算法”&#xff0c;也有人说“如果把编程比作做菜&#xff0c;那么数据结构就好比食材&#xff08;菜&#xff09;&#xff0c;算法就好比厨艺&#xff08;做菜的技巧&#xff09;”。 当然这是笼统的说法&#xff0c;不过也稍微懂得了数据结构和…

webpack使用优化(基本篇)

转自&#xff1a;https://github.com/lcxfs1991/blog/issues/2 前言 本文不是webpack入门文章&#xff0c;如果对webpack还不了解&#xff0c;请前往题叶的Webpack入门&#xff0c;或者阮老师的Webpack-Demos。 为什么要使用Webpack 与react一类模块化开发的框架搭配着用比较好…

word2vec中单词向词向量的转换过程详解

目录前言&#xff1a;1、Word2Vec两种模型的大致印象2、CBOW模型流程举例3、CBOW模型流程举例总结&#xff1a; 目录 前言&#xff1a; 针对word2vec是如何得到词向量的&#xff1f;这篇文章肯定能解决你的疑惑。该篇文章主要参考知乎某大神的回答&#xff0c;个人在此基础上…

JavaScript学习笔记(四)——jQuery插件开发与发布

jQuery插件就是以jQuery库为基础衍生出来的库&#xff0c;jQuery插件的好处是封装功能&#xff0c;提高了代码的复用性&#xff0c;加快了开发速度&#xff0c;现在网络上开源的jQuery插件非常多&#xff0c;随着版本的不停迭代越来越稳定好用&#xff0c;在jQuery官网有许多插…

《树莓派学习指南(基于Linux)》——1.4 将Raspbian烧录到SD卡

本节书摘来异步社区《树莓派学习指南&#xff08;基于Linux&#xff09;》一书中的第1章&#xff0c;第1.4节&#xff0c;作者&#xff1a;【英】Peter Membrey ,【澳】David Hows &#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.4 将Raspbian烧录到SD卡 …

python单向链表和双向链表的图示代码说明

图示说明&#xff1a; 单向链表&#xff1a; insert、 remove、 update、pop方法 class Node:def __init__(self, data):self.data dataself.next Nonedef __str__(self):return str(self.data)# 通过单链表构建一个list的结构&#xff1a; 添加 删除 插入 查找 获取长…

AIML知识库数据匹配原理解析

目录&#xff1a;前言&#xff1a;1、AIML系统工作流程2、AIML的核心推理机制3、推理举例4、匹配规则及实践中遇到的一些问题的解释总结&#xff1a; 目录&#xff1a; 前言&#xff1a; 参考&#xff1a;《Alice机理分析与应用研究》 关于AIML库这里就不介绍了&#xff0c…

【Python】模拟面试技术面试题答

一、 python语法 1. 请说一下你对迭代器和生成器的区别&#xff1f; 2. 什么是线程安全&#xff1f; 3. 你所遵循的代码规范是什么&#xff1f;请举例说明其要求&#xff1f; 4. Python中怎么简单的实现列表去重&#xff1f; 5. python 中 yield 的用法…

Win7 U盘安装Ubuntu16.04 双系统

Win7系统下安装Ubuntu系统&#xff0c;主要分为三步&#xff1a; 第1步&#xff1a;制作U盘启动盘 第2步&#xff1a;安装Ubuntu系统 第3步&#xff1a;创建启动系统引导 第1步&#xff1a;制作U盘启动盘 1.下载Ubuntu16.04安装镜像&#xff0c;官网地址&#xff1a;http://www…