当前位置: 首页 > news >正文

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

  • Hive Hadoop

  • Hive 和传统关系型数据库区别

Spark 概念

  • 基于内存的分布式计算框架

  • 只负责算 不负责存

  • spark 在离线计算 功能上 类似于mapreduce的作用

  • MapReduce的缺点

    • 运行速度慢 (没有充分利用内存)
    • 接口比较简单,仅支持Map Reduce
    • 功能比较单一 只能做离线计算
  • Spark优势

    • 运行速度快
    • 自身生态比较完整
      • spark sql
      • spark streaming
      • spark mllib Spark ML
    • api 比较丰富
    • 使用各种语言进行操作

RDD 的概念

  • 弹性分布式数据集

  • spark当中对数据的抽象

  • 所有spark中对数据的操作最终都会转换成RDD的操作

    • spark sql
    • spark streaming
    • spark ml 、spark mllib
  • RDD 分布式的 可容错 可以进行并行计算

  • rdd 的存储可以对比HDFS

    • hdfs 数据拆分成多个block rdd 拆分成多个partition
    • 读取的时候 spark 加载hdfs数据 1个block 对应 spark rdd的一个partition
    • 写数据的时候 spark 1个partition 可能对应多个block
  • RDD是不可变的

    • 父RDD 生成一个子 RDD 父RDD的状态不会变化
    • 从容错的角度去做这样的设计

RDD的创建

  • 创建RDD之前先要有spark context

    conf = SparkConf().setAppName(appName).setMaster(master)
    sc = SparkContext(conf=conf)
    
  • 通过内存中的数据创建RDD

    • data = [1, 2, 3, 4, 5]
      distData = sc.parallelize(data)
  • 创建RDD时可以指定 partition的数量(RDD会分成几份)一个partition会对应一个task,根据CPU的内核数来指定partition (1核对应2~4个partition)

  • 从文件创建RDD 可以是HDFS支持的任何一种存储介质

    • 可以从 hdfs 数据库(mysql) 本地文件系统 hbase 这些地方加载数据创建RDD
    • rdd = sc.textFile(‘file:///root/tmp/test.txt’)

RDD的三类算子

  • transformation
    • 所有的transformation 都是延迟执行的,只要不调用action 不会执行,只是记录过程
    • transformation 这一类算子返回值还是 rdd
    • rdd.transformation 还会得到新的rdd
  • action
    • 会触发之前的rdd所有的transformation
    • 获取最终的结果
  • persist
    • 数据存储,可以存到内存,也可以是磁盘

通过pycharm 链接centos环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOhcErxh-1691130443341)(1555730758534.png)]

在这里插入图片描述
在这里插入图片描述

ip地址统计案例

  • 广播变量

    • 如果多个task会用到同一份数据,默认每个task都会复制一份

    • 用到的数据如果只是查询可以通过广播变量保存,避免数据的反复复制

    • SparkContext可以创建广播变量

      广播变量= sc.broadcast()
      广播变量。value
      
  • mapPartitions

    • transformation操作
    • 类似map 但是map是一条一条传给里面函数的 mapPartitions 数据是一部分一部分传给函数的
    • 应用场景 数据处理的时候 需要连接其它资源 如果一条一条处理 会处理一条连一次, 一份一份处理可以很多条数据连一次其它资源 可以提高效率
  • 二分法查找

  • ip_transform 把223.243.0.0 转换成10进制的数字

spark standalone模式

  • Master

    • 主节点
    • 负责Worker状态管理
    • 响应client 提交来的Application
  • Worker

    • 管理自身资源
    • 运行Application对应的task
    • 启动图driver 执行application
  • Executor

    • task 最终执行的容器
  • Application

    • spark作业
  • Driver

    • 作业提交给spark的时候 先由一个Worker启动一个Driver来分析Application
    • DAGScheduler
      • task划分 交给TaskScheduler
      • 作业可以划分为多个stage
      • 每一个stage根据partition的数量决定由多少个task
    • TaskScheduler
      • 将task调度到对应的Executor上执行
  • Client

spark core总结

  • spark core是 spark生态最核心的部分

  • spark 生态

    • spark core mapreduce
    • spark sql 类似于hive
    • spark streaming storm、flink
    • spark ML 基于dataframe sparkmllib rdd
  • spark

    • 基于内存的 分布式计算框架
  • MapReduce 和 spark 优劣

    • spark 基于内存 算快
    • spark api 更丰富 比mapreduce 代码少
    • spark 生态完整
      • 离线计算 spark core spark sql
      • 实时计算/流式计算 spark streaming 准实时
      • 交互式计算 spark sql dataframe
      • 机器学习 spark ML
  • RDD

    • 弹性分布式数据集
    • 不可变 rdd->rdd2 rdd和rdd2的状态会分别保存
    • 弹性 存储弹性 分布式弹性 容错可以分多个partition存 每个partition有多个副本
    • 分布式
    • 并行计算
  • RDD创建

    • spark context
      • 在内存中 list iterable
      • 从文件中加载
      • 在创建rdd的时候可以指定partitons的数量 一个partition对应一个task
  • 三类算子

    • transformation
      • 返回rdd
      • 延迟执行 只要没调用action类算子 就不会执行 只是几下了执行计划
    • action
      • 获取结果
  • spark local模式 standalone

  • 广播变量

Hbase 回顾

  • 面向列 列式存储
    • 每一列数据是放到同一个文件中的, 列与列之间存储的位置并不连续
    • 数据是一行一行存的,每一行都是连续的
  • 非关系型数据 NoSQL
    • 关系型数据 非关系数据
  • 事务
    • 行级别事务 不是事务型数据库
  • CAP定理 CP系统
  • 行键(RowKey) 只有rowkey有索引
  • 列族(ColumnFamily) k:v数据库 查询性能类似的 k:v 放到同一个ColumnFamily中
  • 列修饰符(Column Qualifier) 在ColumnFamily下的 key:value对的key ColumnFamily:Column Qualifier:value

HBase表设计需要注意的问题

  • HBase的特点
    • 行级别事务, 如果对跨行事务,跨表事务有很高要求不适合用hbase
    • rowkey有索引
    • ColumnFamily 不宜过多
    • Column Qualifier可以用来存储信息
  • Rowkey是HBase表结构设计中很重要的环节, 直接影响到HBase的效率和性能
  • HBase的表结构比传统关系型数据库更灵活, 能存储任何二进制数据,无需考虑数据类型
  • 利用列标识(Column Qualifier)来存储数据
  • 衡量设计好坏的简单标准 是否会全表查询

HBase shell操作

Happybase 操作hbase

Hbase 需要调整的地方

①删除hadoop 上 /hbase目录

②修改 /root/bigdata/hbase/conf/regionservers

​ 只保留hadoop_master

③修改hbase-site.xml

<configuration><property><name>hbase.rootdir</name><value>hdfs://hadoop-master:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>只保留之前的第一个值</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>保留之前的内容</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

④start-hbase.sh 启动hbase

相关文章:

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 &#xff08;没有充分利用内存&#xff09;接口比较简单&#xff0c;仅支持Map Reduce功能…...

[运维]python 启用http 文件服务

要在Python中启用HTTP文件服务&#xff0c;您可以使用内置的http.server模块&#xff08;在Python 3中&#xff09;或SimpleHTTPServer模块&#xff08;在Python 2中&#xff09;。 在Python 3中&#xff1a; python -m http.server在Python 2中&#xff1a; python -m Simp…...

electron-builder 打包 exe 异常错误集锦

项目技术 vue-electron vue-router vuex vuex-electron element-ui echarts mysql 打包异常 Error: Unresolved node modules: vue Error: Unresolved node modules: vue at D:\Code\Demo\Vue\Voice\App\node_modules\_app-builder-lib20.44.4app-builder-lib\src\…...

14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

文章目录 1. 实现高层网络操作的类2. 基于HTTP协议的网络文件下载3.源码3.1 可是化UI设计3.2 mainwindow.h3.3 mainwindow.cpp 1. 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议&#xff0c;如 HTTP、FTP、SNMP等&#xff0c;这些类主要是…...

Kotlin委托

委托 委托 代理 方法内的成员永远拿不到thisRef&#xff1a;官方委托和自定义委托-》方法里面没办法使用反射 委托只能类委托和属性委托 Kotlin委托 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/132095759 类委托 1、类委托 委托的是接口的方…...

分布式协议与算法——CAP理论、ACID理论、BASE理论

CAP理论 CAP理论&#xff0c;对分布式系统的特性做了高度抽象&#xff0c;比如抽象成了一致性、可用性和分区容错性&#xff0c;并对特性间的冲突&#xff08;也就是CAP不可能三角&#xff09;做了总结。 CAP三指标 CAP理论对分布式系统的特性做了高度抽象&#xff0c;形成了…...

接口测试 Jmeter 接口测试 —— 请求 Headers 与传参方式

一、 背景&#xff1a; 在使用 Jmeter 进行接口测试时&#xff0c;有些小伙伴不知道 Headers 和请求参数 (Parameters&#xff0c;Body Data) 的联系&#xff0c;本文主要讲 Content-Type 为 application/x-www-form-urlencoded 和 application/json 的场景。 1、使用 Parame…...

【redis】redis部署1主2从3哨兵demo搭建示例

redis版本为7&#xff0c;搭建的架构为1主2从3哨兵的架构。本文是对搭建的过程做一个回忆&#xff0c;过程可能遗漏了某些步骤&#xff0c;见谅。 首先&#xff0c;需要有一个已经安装了的redis。我们从redis源码目录中&#xff0c;找到一个redis.conf文件&#xff0c;这个文件…...

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig-zag/左右双旋/3+4重构)

目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 00.BBST——平衡二叉搜索树 本文是介绍众多平衡二叉搜…...

免疫疗法勘察兵——DC细胞

DC细胞又叫树状细胞或者树突细胞&#xff0c;1869年由保罗兰格尔翰斯发现&#xff0c;一开始被误以为是神经细胞的一种&#xff0c;直到1973年皮肤科医师Inga Silberberg发现了他的免疫功能&#xff0c;同年&#xff0c;被拉尔夫斯坦曼和赞威尔A科恩两人正式命名为“dendritic…...

Django实现音乐网站 ⑷

使用Python Django框架制作一个音乐网站&#xff0c;在系列文章3的基础上继续开发&#xff0c; 本篇主要是后台歌曲类型表、歌单表模块功能开发。 目录 表结构设计 歌曲类型表结构 歌单表结构 创建表模型 创建表 后台注册表模型 引入表模型 后台自定义 总结 表结构设计…...

2023年华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响

# 1 赛题 C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情…...

openGauss学习笔记-30 openGauss 高级数据管理-别名

文章目录 openGauss学习笔记-30 openGauss 高级数据管理-别名30.1 语法格式30.1.1 列别名语法30.1.2 表别名语法 30.2 参数说明30.3 示例 openGauss学习笔记-30 openGauss 高级数据管理-别名 SQL可以重命名一张表或者一个字段的名称&#xff0c;这个名称为该表或该字段的别名。…...

C#实现多线程局域网扫描器的思路与具体代码

C#实现多线程局域网扫描器的思路与具体代码 思路&#xff1a; 获取局域网内所有 IP 地址遍历所有 IP 地址&#xff0c;使用 Ping 命令测试主机是否在线如果主机在线&#xff0c;则扫描主机上的所有端口&#xff0c;确定哪些端口是开放的输出扫描结果 在上述过程中&#xff0…...

Redis秒杀:一人一单问题及初步解决

优惠券秒杀一人一单 前言一、需求以及之前存在的问题二、增加一人一单逻辑1.初步代码2.封装一人一单逻辑3.控制锁的粒度 三、事务控制问题四、总结 前言 跟随黑马虎哥学习redis&#xff1a; 这是我认为b站上最好的redis教程&#xff0c;各方面讲解透彻&#xff0c;知识点覆盖…...

python 数据分析面试题:求分组排第n名的记录数据

近期面试遇到一个面试题&#xff0c;分享给大家。 文中会提供详细的解题思路以及问题延伸 一、面试题 面试题&#xff1a;输出各学科总分第一名的学员姓名、年龄、分数数据&#xff1a; class_a {name: [学员1, 学员2, 学员3, 学员4,学员5],age: [23, 24, 26, 27,25],course…...

eclipse常用快捷键

Eclipse常用快捷键 补全代码的声明&#xff1a;alt /快速修复: ctrl 1批量导包&#xff1a;ctrl shift o使用单行注释&#xff1a;ctrl /使用多行注释&#xff1a; ctrl shift /取消多行注释&#xff1a;ctrl shift \复制指定行的代码&#xff1a;ctrl alt down 或…...

什么是OCR?OCR技术详解

光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的技术。 一般包括以下几个过程&#xff1a; 1.图像输入 针对不同格式的图像&#xff0c;有着不同的存储格式和压缩方式。目前&…...

【大模型】开源且可商用的大模型通义千问-7B(Qwen-7B)来了

【大模型】开源且可商用的大模型通义千问-7B&#xff08;Qwen-7B&#xff09;来了 新闻通义千问 - 7B 介绍评测表现快速使用环境要求安装相关的依赖库推荐安装flash-attention来提高你的运行效率以及降低显存占用使用 Transformers 运行模型使用 ModelScope 运行模型 量化长文本…...

SQL分类及通用语法数据类型

一、SQL分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用来创建数据库…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...