大数据之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
大数据之Spark集群安装及简单使用相关推荐
- 大数据之Kafka集群安装及简单使用
目录 1.Kafka集群部署 2.Kafka常用操作命令 目录 1.Kafka集群部署 1.1.下载安装包 http://kafka.apache.org/downloads.html 在linux中 ...
- 大数据介绍及集群安装
大数据介绍及集群安装 第一部分 <大数据概述> 传统数据如何处理? 什么是大数据? 传统数据与大数据的对比 大数据的特点? 大数据前/后服务器系统安装部署区别是什么?. 大数据生态系统以及 ...
- 大数据之cdh集群安装
安装前的准备工作 配置主机名.hosts.开启PermitRootLogin.设置密码 .做免密 .java环境变量.时间同步 安装过程概述(Ubuntu18.04安装) (centos7离线安装参考 ...
- Spark集群安装介绍
(1)初学者对于spark的几个疑问 http://aperise.iteye.com/blog/2302481 (2)spark开发环境搭建 http://aperise.iteye.com/blo ...
- 云计算大数据之 Kafka集群搭建
云计算大数据之 Kafka集群搭建 版权声明: 本文为博主学习整理原创文章,如有不正之处请多多指教. 未经博主允许不得转载.https://blog.csdn.net/qq_42595261/arti ...
- 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍
大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...
- 使用跳板机实现外网访问局域网内虚拟机的大数据及K8S集群【借助向日葵】
使用跳板机实现外网访问局域网内虚拟机的大数据及K8S集群[借助向日葵] 前言 笔者作为一杆大数据学徒工,工作和学习中都需要有几套属于自己的集群. 双路e5主机:https://lizhiyong.bl ...
- ElasticSearch 集群安装,简单使用
ElasticSearch 集群安装,简单使用 http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configu ...
- Spark集群安装和WordCount编写
一.Spark概述 官网:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎.为大数据处理而设计的快速通用的计算引擎.Spark加州大学伯克 ...
最新文章
- 笔记 | 那些不得不掌握的卷积神经网络CNN的架构
- DataGridView 单元格验证
- 工业级路由器和家用路由器的区别_工业路由器和普通家用路由器有什么区别啊?工业路由器好不好用啊?...
- linux监控目录容量,利用ZABBIX监控某个目录大小
- 【广州】Web前端工程师
- shell编程之进阶篇一表达式
- 大家可以放心了!Redmi K20将配备双频GPS
- vscode使用相关配置
- python descibe_Pandas python .describe()格式化/输出
- 如何在 Quagga BGP 路由器中设置 IPv6 的 BGP 对等体和过滤
- DELPHI中操作ACCESS数据库
- Nginx源码分析 - 基础数据结构篇 - 字符串结构 ngx_string.c(08)
- 如果突然多了一笔财富。。
- 牛b硬件信息修改大师_比X大师更靠谱?一款真正良心的硬件检测工具
- 网络克隆硬件版硬盘保护卡 支持windows7 和linux,方正还原卡的详细介绍,安装,和卸载。...
- linux下解压iso文件
- GRUB4DOS引导wim格式的pe
- 汽车侧向动力学模型简介(动力学建模入门知识)
- 2021-07-30 es6 -第4章和String复习
- 高通平台晶振校准-为什么要做晶振校准
热门文章
- [熵编码] 指数哥伦布编码
- 拜托!面试请不要再问我 Spring Cloud 底层原理 ...
- Mybatis 中更新方法: updateByPrimaryKeySelective() 和 updateByPrimaryKey() 的区别
- FreeSql (三)实体特性
- 不作35岁的程序员?
- POWERSPLOIT-Recon(信息侦察)脚本渗透实战
- 内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别
- 如何定义一个只能在堆上(栈上)生成对象的类?
- Android中下载、安装和卸载(原)
- c# 连接各种数据库 Access、Server等