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

这篇具有很好参考价值的文章主要介绍了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环境

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别,# spark,hadoop,spark,hive

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别,# spark,hadoop,spark,hive
Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别,# spark,hadoop,spark,hive

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文章来源地址https://www.toymoban.com/news/detail-640398.html

到了这里,关于Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关系型数据库和非关系型数据库

     关系型数据库是以 关系(表格) 为基础的数据库,它采用了 SQL(Structured Query Language)作为数据操作语言,常见的关系型数据库包括 MySQL、Oracle、SQL Server 等。 非关系型数据库则是基于 文档、键值、列族 等方式存储数据的数据库,它通常没有固定的表结构,因此也被称为

    2024年02月09日
    浏览(45)
  • 关系型数据库与非关系型数据库类比

    关系型数据库和非关系型数据库都有多种不同类型,每种类型都针对不同的数据存储需求和使用场景。以下是一些常见的关系型数据库和非关系型数据库类型: 关系型数据库类型: MySQL: 一种开源的关系型数据库管理系统,用于处理结构化数据,适用于各种规模的应用。

    2024年02月11日
    浏览(40)
  • 重学MySQL之关系型数据库和非关系型数据库

    1.1 关系型数据库的特性 1.1.1 事务的特性 事务,是指一个操作序列,这些操作要么都执行,或者都不执行,而且这一序列是无法分隔的独立操作单位。也就是符合原子性(Atomicity)、 一致性(Consistency)、 隔离性(Isolation)和持久性(Durability)的一组操作。 原子性:指一个

    2024年02月02日
    浏览(72)
  • 关系型非关系型数据库区别,以MongoDB为例在express中连接MongoDB示例

    目录 关系型数据库 关系型数据库常见的类型有: 关系型数据库的优点包括: 非关系型数据库 非关系型数据库常见的类型有: 非关系型数据库的特点包括: 关系型数据库和非关系型数据库区别 MongoDB是什么 MongoDB优势: 在Express中连接MongoDB步骤 Schema 关系型数据库是以关系模

    2024年01月16日
    浏览(77)
  • 非关系型数据库

    一、什么是非关系型数据库? 随着互联网的飞速发展,人们对数据存储和管理的需求越来越高,传统的关系型数据库遇到了越来越多的挑战。为了满足海量数据存储和高性能查询的需求,非关系型数据库(NoSQL)应运而生。 非关系型数据库是指不使用关系模型进行数据组织和

    2024年02月07日
    浏览(48)
  • 关系型数据库设计

    目录 1.数据库设计的重要性及定义 1.1 数据库设计的重要性 1.1.1 失败的数据库设计造成的后果  1.1.2 优秀的数据库设计带来的好处  1.2 数据库设计的定义  2.数据库需求分析  2.1 需求分析的步骤 2.1.1 收集信息 2.1.2 标识实体 2.1.3 标识每个实体的详细信息  2.1.4 标识实体之

    2024年04月10日
    浏览(65)
  • Elasticsearch与关系型数据库集成

    Elasticsearch是一个开源的搜索和分析引擎,基于Lucene库开发,具有高性能、可扩展性和实时性等特点。关系型数据库则是一种结构化数据库管理系统,以表格形式存储数据,支持SQL查询语言。在现实应用中,Elasticsearch与关系型数据库往往需要进行集成,以实现更高效、灵活的

    2024年02月20日
    浏览(72)
  • Redis_非关系型数据库

    也叫Not Only SQL(不仅仅是SQL, 不用 sql语言操作的数据库), 一般指 非关系型数据库 关系型数据库: 以数据库表为单位存储,表与表之间存在某种关系 非关系型数据库: 数据与数据之间没有关系, 数据就是以键值对的形式存储, 通过键获取到值 在互联网发展中: 大致经历三个时期,w

    2024年02月16日
    浏览(39)
  • 数据库介绍-非关系型数据库

    NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。 NoSQL 不依赖业务逻辑方式存储,数据存储的类型不需要一个固定形式。因此大大的增加了数据库的扩展能力。 不遵循 SQL 标准 不支持 ACID 远超于 SQL 的性能 易扩展 大读写量,高性能 数据模型灵活 高可用

    2024年02月16日
    浏览(53)
  • MySQL——性能优化与关系型数据库

    吞吐与延迟:有些结论是反直觉的,指导我们关注什么。 没有量化就没有改进:监控与度量指标,指导我们怎么去入手。 80/20原则:先优化性能瓶颈问题,指导我们如何去优化。 过早的优化是万恶之源:指导我们要选择优化的时机。 脱离场景谈性能都是耍流氓:指导我们对

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包