HDFS 分布式存储 spark storm HBase

这篇具有很好参考价值的文章主要介绍了HDFS 分布式存储 spark storm HBase。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HDFS 分布式存储 spark storm HBase

分布式结构 master slave

name node client 负责文件的拆分 128MB 3份

data node

MapReduce 分布式计算 离线计算 2.X之前 速度比较慢 对比spark

编程思想 Map 分 Reduce 合

hadoop streaming Mrjob

Yarn 资源管理 cpu 内存 MapReduce spark 分布式计算

RM NM AM

社区版 CDH

什么是Hive

  • 基于Hadoop 数据保存到HDFS

  • 数据仓库工具

  • 结构化的数据 映射为一张数据库表

    01,张三,89

    02,李四,91

    03,赵武,92

  • HQL查询功能 (Hive SQL)

  • 本质 把HQL翻译成MapReduce 降低使用hadoop计算的门槛

  • 离线数据分析开发效率比直接用MapReduce 高

Hive架构

  • 用户接口:shell命令行
  • 元数据存储
    • 数据库 表 都保存到那些位置上
    • 表中的字段名字 类型
    • mysql derby(自带)
  • Drive
    • 负责把HQL翻译成mapreduce
    • 或者翻译成 shell 命令

Hive和Hadoop关系

  • 利用hdfs存数据 利用mr算
  • Hive只需要跟 Master节点打交道 不需要集群

Hive和关系型数据库区别

  • hive 离线计算 海量查询
  • hive最主要做查询 不涉及删除修改 默认不支持删除修改,默认不支持事务,并不完全支持标准sql
  • sql CRUD全部支持, 支撑在线业务,索引完整 支持事务

Hive 基本使用

  • 创建表
CREATE TABLE student(classNo string, stuNo string, score int) row format delimited fields terminated by ',';
  • 字段不需要指定占多少字节

  • 需要通过row format delimited fields terminated by ','指定列的分隔符

  • 加载表数据的时候尽量使用 load data方式 把整个文件put上去

    load data local inpath '/home/hadoop/tmp/student.txt'overwrite into table student;
    
  • 内部表和外部表

    • managed table

      • 创建表的时候

        CREATE TABLE 表名(字段名 字段类型,)row format delimited fields terminated by ','
        
      • 删除表

        元数据和数据一起删除

      • 数据位置

        • 默认是/user/hive/warehouse
    • external table

      • 建表语句

        CREATE External TABLE 表名(字段名 字段类型,)row format delimited fields terminated by ',' location '数据在hdfs上的路径';
        
      • 删除表

        • 只删除元数据 数据会保留
      • 数据可以在hdfs上的任意位置

  • 分区表

    • 当数据量比较大的时候,使用分区表可以缩小查询的数据范围

    • 分区表实际上就是在表的目录下创建的子目录

    • 如果有分区表的话查询的时候,尽量要使用分区字段

    • 创建分区表的语句

      create table 表名 (字段名,字段类型....) partitioned by (分区字段名 分区字段类型) row format delimited fields terminated by ',' lines terminated by '\n' stored as textfile;
      
    • 向分区表中插入数据

      load data local inpath '/home/hadoop/tmp/employee.txt' into table 表名 partition(分区字段名字='分区的具体值');
      
    • 添加分区

      alter table 表名 add if not exists partition(分区字段名字='分区的具体值');
      
    • 动态分区

      • 插入数据的时候指定分区的字段,会自动帮助创建分区所对应的文件夹

      • 需要关掉默认设置

        set hive.exec.dynamic.partition.mode=nonstrict;
        

UDF自定义函数

  • hive提供的函数不能满足需求的时候就可以使用自定函数

    • 使用别人已经编译好的.jar

      • jar加到 hive环境中

      • jar 可以在hdfs上 也可是在centos 上

      • 创建一个临时函数

        CREATE TEMPORARY FUNCTION 自定义函数名字 as '自定义函数在jar包中的包名'
        
      • 创建一个永久函数

        CREATE FUNCTION 自定义函数名字 as '自定义函数在jar包中的包名' using jar 'jar位置';
        
    • 自己写python脚本实现udf、udaf

      • add file python文件的位置

      • SELECT TRANSFORM(fname, lname) USING 'python udf1.py' AS (fname, l_name) FROM u;
        

综合案例

  • collect_set/collect_list

    • group by之后 针对某一列聚合 结果放到[]
    • 区别 一个去重 一个不去重
  • lateral view explode

    • explode函数 把复杂数据类型 array map 拆开 一行变多行

    • lateral view 和explode函数 配合使用 创建虚拟视图 可以把explode的结果和其它列一起查询

    • select article_id,kw from articles
      lateral view outer explode(key_words) t as kw
      
  • CONCAT, CONCAT_WS

    • 不同列的字符串拼接到一起
    • concat_ws 可以把array中的元素拼接到同一个字符串中 指定分割符
  • str_to_map 把具有key:value形式的字符串转换成map

sqoop 介绍

  • 作用 数据交换工具 可以实现 数据在mysql oracle<==> hdfs之间互相传递

  • 原理 通过写sqoop 命令 把sqoop命令翻译成mapreduce 通过mapreduce连接各种数据源 实现数据的传递

  • 通过sqoop 把数据从mysql导入到hdfs

    • sqoop import --connect jdbc:mysql://mysql数据库地址:3306/数据库名字 --username root --password password --table 要导出数据的表名 -m mrjob的数量
    • 默认会把文件导入到 hdfs上 /user/linux用户名 文件夹下
    • 通过 --target-dir指定其它位置

HBase介绍

  • 分布式开源数据库

  • 面向列

  • Big Table开源实现

  • 适合非结构化数据的存储

  • PB级别数据

  • 可以支撑在线业务

  • 分布式系统特点 :易于扩展,支持动态伸缩,并发数据处理

面向列数据库

  • 关系型数据库:行式存储 每一行数据都是连续的 所有的记录都放到一个连续的存储空间中

  • 列数据库: 列式存储 每一列对应一个文件 不同列并不对应连续的存储空间

  • 结构化数据 V.S. 非结构化数据

    • 结构化数据
      • 预定义的数据模型 模型一旦确定不会经常变化(表结构不会频繁调整)
    • 非结构化数据
      • 没有预定义数据模型
      • 模型不规则 不完整
      • 文本 图片 视频 音频
  • Hive 和 Hbase区别

    • hive hbase 共同点
      • 都可以处理海量数据
      • 文件都是保存到hdfs上
    • hive 和 hbase不同
      • 计算不是通过mapreduce实现的 自己实现的CRUD功能
      • hive 通过mapreduce实现 数据查询的
      • hbase 可以有集群 集群的管理是通过zookeeper实现
      • hive 只能做离线计算
      • hbase 提供对数据的随机实时读/写访问功能
  • HBase 对事务的支持 只支持行级别的事务

  • CAP定理

    • 分区容错性 分布式系统都要有的特性,任何时候都要能提供服务 P保证
    • HBase CP系统 强一致性

Hbase 数据模型

  • NameSpace 对应 关系型数据库 database
  • 表(table):用于存储管理数据,具有稀疏的、面向列的特点。
  • 行 (row): 每一行都对应一个row key 行键 Hbase有索引但是只是在行键 rowkey有索引
  • 列 Column family 和 Column qualifier 组成
  • 列族(ColumnFamily)保存的就是 键值对集合 key:value
  • 时间戳(TimeStamp):是列的一个属性

Hbase 和 传统关系型数据库区别

  • 创建HBase表的时候只需要指定表名 和 列族

  • 每一个行当中 只需要列族相同就可以了 至于每个列族中的 key:value对 key可以完全不同

HBase基础架构

  • Client

  • Zookeeper

    • 保证HMaster有一个活着
    • HRegionServer HMaster地址存储
    • 监控Region Server状态 将Region Server信息通知HMaster
    • 元数据存储
  • HMaster

  • HRegionServer

  • HStore

    • 每一个column family 对应了一个HStore
  • HRegion

  • HLog

面向列数据库 列式存储

适合存非关系型数据

hbase 创建表的过程很简单 只需要指定表名和列族的名字就可以了

create ‘表名’,‘列族名字’

NameSpace -》数据库

table

row-key 行键 hbase的索引只在 row-key才有

column family 列族 key:value 这里面key 又叫 column quanlifier

不同行的 相同的column family 中 column quanlifier可以完全不同

组件

  • HMaster

  • HRegionServer

    • HRegion
      • Hstore (一个列族对应)
        • memstore
        • storefile

如果遇到 hdfs safe mode

通过 hdfs dfsadmin -safemode leave

hive 一定要先启动元数据服务文章来源地址https://www.toymoban.com/news/detail-621626.html

  • hive --service metastore&

到了这里,关于HDFS 分布式存储 spark storm HBase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 分布式数据存储建设方法论——从HDFS架构优化与实践分析

    作者:禅与计算机程序设计艺术 随着互联网、云计算、大数据等新一代信息技术的出现和普及,数据量的激增、数据安全性的需求以及数据的分布式储存需求日益成为各大公司和组织面临的难题。传统的单体架构模式已经无法应付如此复杂的业务场景,因此,分布式数据存储

    2024年02月11日
    浏览(60)
  • 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第三章 分布式文件系统HDFS

    大数据要解决数据存储问题,所以有了分布式文件系统(DFS),但可能不符合当时的一些应用需求,于是谷歌公司开发了GFS(Google file System)。GFS是闭源的,而HDFS是对GFS的开源实现。 1.GFS和DFS有什么区别? GFS(Google File System)和DFS(Distributed File System)都是分布式文件系统,

    2024年02月03日
    浏览(84)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文)

    说明: 本篇将详细介绍用二进制安装包部署hadoop等组件,注意事项,各组件的使用,常用的一些命令,以及在部署中遇到的问题解决思路等等,都将详细介绍。 ip hostname 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 1.2.1系统版本 1.2.2内存建议最少4g、2cpu、50G以上的磁盘容量 本次

    2024年02月12日
    浏览(53)
  • 一篇搞定分布式大数据系统所有概念,包括有Hadoop、MapReduce、HDFS、HBASE、NoSql 、ZooKeeper 、Reidis 、Nginx 、BASE、CAP定义、特点和应用场景

    1.1hadoop定义和特点 Hadoop定义: Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它基于Google的MapReduce论文和Google文件系统(GFS)的设计理念,并由Apache软件基金会进行开发和维护。 Hadoop的主要特点包括: 分布式存储:Hadoop通过分布式文件系统(Hadoop Dist

    2024年02月03日
    浏览(58)
  • 数据存储和分布式计算的实际应用:如何使用Spark和Flink进行数据处理和分析

    作为一名人工智能专家,程序员和软件架构师,我经常涉及到数据处理和分析。在当前大数据和云计算的时代,分布式计算已经成为了一个重要的技术方向。Spark和Flink是当前比较流行的分布式计算框架,它们提供了强大的分布式计算和数据分析功能,为数据处理和分析提供了

    2024年02月16日
    浏览(62)
  • 大数据分布式实时大数据处理框架Storm,入门到精通!

    介绍:Storm是一个分布式实时大数据处理框架,被业界称为实时版的Hadoop。 首先,Storm由Twitter开源,它解决了Hadoop MapReduce在处理实时数据方面的高延迟问题。Storm的设计目标是保证数据的实时处理,它可以在数据流入系统的同时进行处理,这与传统的先存储后处理的关系型数

    2024年01月23日
    浏览(53)
  • hbase分布式安装

    目录 1.安装Hbase 2.配置文件 3.Hbase服务启动      Zookeeper和Hadoop集群正常启动           进入/export/software目录,将hbase软件包导入该目录下。解压hbase软件包 到/export/servers目录下,并重命名为hbase。         进入hbase安装目录下,进入conf目录,修改hbase-env.sh、 hbase-si

    2024年02月10日
    浏览(54)
  • HBase 分布式搭建

    前言: 请先确保 Hadoop 集群搭建完成。 Hadoop 完全分布式搭建(超详细) 搭建环境介绍: 三台主机,一主两从,系统为 Centos 7.5。 相关组件版本信息如下: jdk1.8 hadoop-3.1.3 zookeeper-3.5.7 hbase-2.2.3 注意,以下安装教程中涉及到的路径请替换成自己的! ZooKeeper 安装 解压并改名 添

    2024年02月04日
    浏览(44)
  • 分布式文件系统HDFS

    分布式文件系统 把文件分布存储到多个计算机节点 上,通过网络实现文件在多台主机上进行分布式存储的文件系统。 分布式文件系统有两大模式: Remote Access Model: 非本地文件不会复制到本地,所以对非本地文件的读取和修改,利用RPC进行。 Upload/ Download Model:所有非本地文

    2024年02月09日
    浏览(52)
  • 搭建HBase分布式集群

    0. Prerequisite There are 3 VMs - hadoop3/hadoop4/hadoop5 for fully-distributed HBase cluster, the setup plan looks like: hadoop3 hadoop4 hadoop5 Hadoop hdfs NameNode:8020 DateNode:50010 JobHistoryServer:19888 DataNode:50010 SecondaryNameNode:50090 DateNode:50010 Hadoop yarn NodeManger:8040 ResourceMananger:8088 NodeManger:8040 NodeManger:8040 Zookeeper Quor

    2024年02月08日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包