首页 > 编程语言 >spark大数据快速编程入门

spark大数据快速编程入门

时间:2024-03-13 18:30:53浏览次数:28  
标签:入门 编程 mapreduce MapReduce 类型 namenode spark 字节

1.Hadoop生态圈相关组件

72a8e5f30f1e42d98aa8813543dc5dee.jpg

 namenode:master节点,处理客户端的请求。

datanode:slave节点,存储实际数据,汇报存储信息给namenode。

client:切分文件,访问hdfs,与namenode交互,获取文件位置信息,与datanode交互,读取和写入数据。

secondary namenode:辅助namenode,分担其工作量,紧急情况下和辅助恢复namenode,但它不是namenode的热备。

2.mapreduce

特点:

1)MapReduce 易于编程
它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得MapReduce编程变得非常流行。
2)良好的扩展性
当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。
3)高容错性
MapReduce它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由Hadoop内部完成的。
4)适合PB级以上海量数据的离线处理
可以实现上千台服务器集群并发工作,提供数据处理能力。
 

运行架构:采用Master/Slave

3.spark的特点:

1)快速:基于内存的计算比 MapReduce 快 100 倍,基于磁盘快 10 倍。
2)易用:编写一个 spark 的应用程序可以使用 Java, Scala, Python,,这就使得我们的开发非常地灵活。并且,对比MapReduce,spark 内置了 80 多个高级操作,这使得开发十分高效和简单。
3)运行范围广:spark 可以运行在 local、yarn、standalone、kubernetes 等多种平台之上。它可以访问诸如 HDFS, Cassandra, HBase, S3 等多种多样的数据源。
4)通用: spark 提供了 SparkSQL、 SparkStreaming、 GraphX、 MLlib 等一系列的分析工具。

spark与mapreduce的区别:

1、Spark的速度比MapReduce快,Spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,比较影响性能;

2、spark容错性高,它通过弹性分布式数据集RDD来实现高效容错;mapreduce容错可能只能重新计算了,成本较高;

3、spark更加通用,spark提供了transformation和action这两大类的多个功能API,另外还有流式处理sparkstreaming模块、图计算GraphX等;mapreduce只提供了map和reduce两种操作,流计算以及其他模块的支持比较缺乏,计算框架(API)比较局限;

4、spark框架和生态更为复杂,很多时候spark作业都需要根据不同业务场景的需要进行调优已达到性能要求;mapreduce框架及其生态相对较为简单,对性能的要求也相对较弱,但是运行较为稳定,适合长期后台运行;

5、Spark API方面- Scala: Scalable Language, 是进行并行计算的最好的语言. 与Java相比,极大的减少代码量(Hadoop框架的很多部分是用Java编写的)。

4.Linux基础操作命令:

5.热备:任何情况下,过程都不能停止,即使极短的时间.

冷备:几乎可以不考虑响应时间,一般需要人工干预.

温备:时间是比较关键的,但是短时的中断也是可以接受的.

6.数据类型:

   1)整数类型:byte、short、int、long
(2)小数类型:float、double
(3)字符类型:char
(4)布尔类型:boolean

1、 整数数据类型

byte:1个字节,8位,256种状态,取值范围为【-128,127】
short:2个字节,16位,65536种状态,取值范围为【-32768,32767】
int:4个字节,32位,整数类型默认是int类型,取值范围约21亿
long:8个字节,64位,long类型表示long类型常量,要加L或者l,建议加L


2、 小数数据类型

float:4个字节,32位,单精度,能精确到6~7位,声明一个小数类型,要加F或者f,建议加F
double:8个字节,64位,双精度,能精确到15~16位,小数类型默认是double类型


3、 字符数据类型

char:2个字节,16位,每个符号使用单引号引起来,其中前128个符号和ASCII表相同


4、 布尔数据类型

boolean:占1位,有true和false2个值,一个表示真,一个表示假,一般用于表示逻辑运算

标签:入门,编程,mapreduce,MapReduce,类型,namenode,spark,字节
From: https://blog.csdn.net/2301_79855823/article/details/136567279

相关文章

  • Spark知识小解
    1.Hadoop生态圈及组件:在了解Hadoop生态系统及其组件之前,我们首先了解一下Hadoop的三大组件,即HDFS、MapReduce、YARN,它们共同构成了Hadoop分布式计算框架的核心。HDFS(HadoopDistributedFileSystem):HDFS是Hadoop的分布式文件系统,它是将大规模数据分散存储在多个......
  • Proxmark3入门指南
    Proxmark3笔记——Proxmark3完全入门指南写在前面这里所有针对扇区、区块的计数都是从0开始算一些需要知道的知识为了能看懂笔记,需要能回答以下问题ID卡和IC卡主要的区别是什么?什么是全加密卡和半加密卡,区别是什么。IC卡分哪几个大类?IC卡的卡号储存在哪个扇区?是前几位......
  • 突破编程_C++_C++11新特性(模板的改进与细节)
    1模板右尖括号的改进在C++11之前,模板的解析和实例化过程中,右尖括号>的处理有时会导致一些意外的结果,特别是在嵌套模板或模板模板参数中。这是因为C++编译器通常会试图“查看前方”来确定何时结束模板参数的列表,这有时会导致解析错误。C++11对模板的右尖括号处理进......
  • C++初阶:1_C++入门
    C++入门零.本节知识点安排目的C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助,本章节主要目标:补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数......
  • PCB 从入门到未知
    首先声明:本人纯属记录自己的学习过程,如果此篇文章有一丝作用,请点赞加关注,会持续记录自己的学习过程1.新建工程的步骤(1)先建立一个PCB工程(2)给PCB添加一个Schemtic2.安装库文件(1)点击库,进入到安装界面(2)点击安装,找到自己存放库的文件夹(3)选中要安装的文件,然后点击打开即......
  • Windows编程:(一)汇编Hello World
    万事都讲究缘起,这次的缘起是要用WinDbg调试界面卡死。看不懂WinDbg的结果。以前都是靠猜,很受打击,索性学习一下。主要学习了几个步骤:1.什么是汇编?汇编的来龙去脉是啥?为什么需要汇编?它与C/C++有什么联系?2.跑一个汇编的HelloWorld。前几个问题,我就直接摘抄了。着重说一下跑Hello......
  • Pandas从入门到精通
    Pandas一、Pandas简介1.pandas是什么Pandas是一个开源的数据分析和数据处理库,它是基于Python编程语言的Pandas提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。Pandas是数据科学和分析领域中常用的工具之一,它使得用户能够轻......
  • 浅淡 C++ 与 C++ 入门
            我们知道,C语言是结构化和模块化的语言,适用于较小规模的程序。而当解决复杂问题,需要高度抽象和建模时,C语言则不合适,而C++正是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式。        因此在这篇博客,将会介绍C++中引入哪些......
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)
    1.前言本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!2.如何使用AirtestIDE驱动Firefox浏览器对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天......
  • ThreadLocal 快速入门
    ThreadLocal快速入门ThreadLocal是Java中的一个类,用于创建线程局部变量。线程局部变量是一种特殊的变量,每个线程都有自己的副本,互相之间不会相互影响。这在多线程环境中非常有用,可以避免线程间共享变量导致的并发问题。定义与作用:ThreadLocal是Java中的一个类,用于......