初见spark-01
今天我们来学习spark,spark是一种快速,通用,可扩展的大数据分析引擎,现已成为Apache顶级项目,Spark是MapReduce的替代方案,而且兼容HDFS,Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足,下面我们来介绍这样的一门语言:
一.spark安装
1.上传spark环境所需要的压缩包,
这里面请记住我们要的是预编译包(prebuild版本),而不是源码包,即解压就可以使用的压缩包
我们这个里面使用的是spark-1.6.1-bin-hadoop2.6.tgz,首先我们把它上传到Linux之中,并解压到系统中
2.配置Spark
进入Spark安装目录,进入conf目录并重命名spark-evn.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(JAVA的安装路径)
export SPARK_MASTER_IP=node1.itcast.cn(master的那台机器的IP,这个里面我们可以写ip:192.168.109.136)
export SPARK_MASTER_PORT=7077
保存退出
重命名并修改slaves.template文件
mv slave.template slaves
vi slaves
在该文件中添加子节点所在的位置(Worker节点)
192.168.109.137
192.168.109.138
192.168.109.139
保存退出
将配置好的Spark拷贝到其他节点上
scp -r spark-1.6.1 weekday02:/home/xxx/apps
scp -r spark-1.6.1 weekday03:/home/xxx/apps
scp -r spark-1.6.1 weekday04:/home/xxx/apps
3.Spark集群配置完毕,目前是1个Master,3个Worker,在Master的那台主机上启动Spark集群
/home/xxx/apps/spark-1.6.1/sbin/start-all.sh(这个一定要切记呀)
启动后执行jps命令,主节点上有Master进程,其他节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://mast1的ip:8080即可
注意,启动集群的时候,注意要关闭防火墙
二,我的第一个spark程序
这个里面我们只使用spark程序,这个算法是利用蒙特-卡罗算法求PI
/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://192.168.109.136:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/usr/local/spark-1.5.2-bin-hadoop2.6/lib/spark-examples-1.5.2-hadoop2.6.0.jar \
100
这个也不需要hadoop的启动,只需要我们有了spark的环境即可
参数说明
-master spark://192.168.109.136:7077 指定Master地址
-executor-memory 2g 指定每一个worker可以使用的内存是2G
-total-executor-cores 2 指定整个集群使用的cpu核数是2
注意:我们一般使用spark-shell,这个是spark自带交互式shell程序,方便用户进行交互式编程,用户可以在该命令下面使用scala编写spark程序
例如:/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-shell,如果不写后面的,这个spark只能说是单机的,应为它没有与master的机器
相连,跟别提和别人的连接
三.在spark shell中编写WordCount程序
1.首先启动HDFS
2.向hdfs上传一个文件到hdfs://192.168.109.136:9000/words.txt
3.在spark shell 中用scala语言写spark程序
则此时这个结果在页面直接显示出来
sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
.map(_,1).reduceByKey(_+_).collect
则此时这个结果在hdfs的文件中显示出来
sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
.map(_,1).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.109.136:9000/wc/out")
则此时因为我们有三个子节点,所以就想hadoop的mapreduce,中三个reduce,则此时我们将其让
最终的结果都读取到一个文件中去,此时我们就修改了一个地方,在reduceByKey(_+_)改为了reduceByKey(_+_,1)
sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
.map(_,1).reduceByKey(_+_,1).saveAsTextFile("hdfs://192.168.109.136:9000/wc/out")
四.spark算子
spark算子一共分为两类
一类叫做Transformation(转换),一类叫做Action(动作)
Transformation延迟执行,Transformation会记录元数据信息,当任务触犯到Action才开始真正的执行
初见spark-01的更多相关文章
- [Spark] 01 - What is Spark
大数据 云计算概念 课程:Spark编程基础(Python版) 大数据4V特性 Volumn, Variety, Velocity, Value. 思维方式 通过数据发现问题,再解决问题. 速度更重要 ...
- spark集群安装配置
spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...
- 【概念、概述】Spark入门教程[1]
本教程源于2016年3月出版书籍<Spark原理.机制及应用> ,如有兴趣,请支持正版书籍. 随着互联网为代表的信息技术深度发展,其背后由于历史积累产生了TB.PB甚至EB级数据量,由于传 ...
- Linux中安装配置spark集群
一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...
- [Spark] 06 - What is Spark Streaming
前言 Ref: 一文读懂 Spark 和 Spark Streaming[简明扼要的概览] 在讲解 "流计算" 之前,先做一个简单的回顾,亲! 一.MapReduce 的问题所在 ...
- [AI] 深度数据 - Data
Data Engineering Data Pipeline Outline [DE] How to learn Big Data[了解大数据] [DE] Pipeline for Data Eng ...
- 01、Spark安装与配置
01.Spark安装与配置 1.hadoop回顾 Hadoop是分布式计算引擎,含有四大模块,common.hdfs.mapreduce和yarn. 2.并发和并行 并发通常指针对单个节点的应对多个请 ...
- Spark系列—01 Spark集群的安装
一.概述 关于Spark是什么.为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org, 我就直接说一下Spark的一些优势: 1.快 与Hadoop的Ma ...
- python 自动化之路 day 01 人生若只如初见
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 Python 注释 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式i ...
- spark学习笔记01
spark学习笔记01 1.课程目标 1.熟悉spark相关概念 2.搭建一个spark集群 3.编写简单spark应用程序 2.spark概述 spark是什么 是基于内存的分布式计算引擎,计算速度 ...
随机推荐
- 当尝试从ArcCatalog、.net应用或是Java应用中连接ArcGIS Server 时,显示下面任何一种错误提示: "Access Denied" 或 "The connection could not be made"
Error: 访问拒绝或无法连接错误 文章编号 : 29042 软件: ArcGIS Server 9.0, 9.1, 9.2, 9.3, 9.3.1 操作系统: Windows 2000, XP, ...
- 【起航计划 008】2015 起航计划 Android APIDemo的魔鬼步伐 07 App->Activity->Persistent State 保存状态 SharedPreferences onPause onResume
Android 提供了多种存储数据的方法,其中最简单的是使用Shared Preferences. Shared Preferences 可以存储 Key/value 对,Shared Prefere ...
- selenium googleDrive
http://chromedriver.storage.googleapis.com/index.html?path=2.1/下载地址 把googledriver.exe 放到google浏览器下目录 ...
- Azure 7 月新公布
Azure 7月新发布:Cosmos DB,事件中心捕捉功能,Hybrid Connections,流量管理器快速故障转移功能. 您现有的 DocumentDB 资源现已作为 Azure 门户上 Az ...
- day002-List类、泛型
1. 集合 集合是容器,可以存储任意类型的数据,集合的长度可变. 1.1 集合和数组的比较 1.2 集合分类 单列集合:每次存储时,存储一个元素(Collection),包括:list.set 双列集 ...
- JavaScript 面向对象编程(三):非构造函数对象的继承
JavaScript 面向对象编程(三):非构造函数对象的继承 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese ...
- ES6相关特性(let & const)
[ecma-262/8.0]http://www.ecma-international.org/ecma-262/8.0/index.html 1.Let & const let 的三个特性: ...
- Html + JS : 点击对应的按钮,进行选择是隐藏还是显示(用户回复功能)
例如: 当我点击按钮1时,点击第一下进行显示This is comment 01,点击第二下隐藏This is comment 01 当我点击按钮2时,点击第一下进行显示This is comment ...
- 51Nod 1600 Simple KMP SAM+LCT/树链剖分
1600 Simple KMP 对于一个字符串|S|,我们定义fail[i],表示最大的x使得S[1..x]=S[i-x+1..i],满足(x<i)显然对于一个字符串,如果我们将每个0<= ...
- POJ-1990 MooFest---两个树状数组
题目链接: https://vjudge.net/problem/POJ-1990 题目大意: 一群牛参加完牛的节日后都有了不同程度的耳聋,第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛 ...