04.hadoop上课笔记之java编程和hbase

news2024/11/16 2:24:35

1.win查看服务

  netstat -an #linux也有

#R数学建模语言 SCALAR

2.java连接注意事项,代码要设置用户

   System.setProperty("HADOOP_USER_NAME", "hadoop");

3.伪分布式的好处(不用管分布式细节,直接连接一台机器…,适合用于学习)

4.官方文档 查看类(static | new)

hadoop.org —>java API

5.单点故障:一个节点出错全部不可用

6.HBase hadoop database(像nosql的数据库,用列和表,分布式的数据库)

与hdfs的关系:HDFS是Hbase运行的底层文件系统

  1. RegionServer,理解为数据节点,存储数据的。
  2. region 向客户端提供数据和管理
  3. master 负载均衡和管理region(失效把数据移动到别处) 失效了 zookeeper也可以访问
  4. zookeeper 帮助master高可用 帮master监控regionserver 选master 找数据

#其他知识 #信息检索课(怎么查信息)
图hbase #元数据的表名
hbase:meta

在这里插入图片描述

7.安装hbase

  1. 解压
  2. 改配置文件
  3. 启动hadoop
  4. start.sh

8.habse应用场景

1.搜索条件简单,数据量大
2.不强调表之间的关系
3.列存储(直接在列查,不全表扫描,mysql需要索引才可以) 还可以列压缩
如: select age时直接查age列,而不是每个行扫描完扫描列是否满足条件
age 22 23 24
name jamse aa bb

 myql事务 A原子性 atomicity C(consistency)一致性 I独立性(isolation) D (durability)持久性
 mysql where 1=1是关于关系代数的理论, 1=1代表匹配的结果 要不要显示

9.hbash添加语句(不需要多表连接)

   #查看hbase信息 http://192.168.202.103:16010/
    create "tableName","columnName","columnName"
    #查看帮助,必须要"" 
     help "create"
    #看结构
      desc "tableName"
   #hbase  http://192.168.202.103:16030/rs-status
  #插入一个数据必须需要id 列族:更小字段
     put 'student_xxx','0001','stuinfo:name','tom' 
  #select
    scan 'student_xxx'
   #update
    put 'student_xxx','0001','stuinfo:name','tomy'
    #id可以不写字段
   put 'student_xxx','07112001','info:name','Benie',3 #修改版本
   #修改列的版本,改一个列对象的版本
    alter 'student_xxx',{NAME=>'stuinfo',VERSIONS=>5}
   #增加一个列
     alter 'student_xxx','grades'
   #删除列
      alter 'student_xxx','delete'=>'grades'
   #删除写错的数据 表 id 列:字段(没有写id字段,hbase会自动生成一个),所    #以可以省字段名
      delete 'student_xxx','07112002','info:name'
  #hbase不会自己添加版本,1个版本可能有多个数据,
  #得到版本为3的
   get 'student_xxx','0001',{COLUMN=>'stuinfo:name',VERSIONS=>3}
    get 'student_xxx','0001'
  #先禁用后删除table
    disable   xxx
   drop       xxx
    #查看表是否存在
     exists xxx
     #查看列字段的数据 
      scan 'student_xxx',{COLUMNS=>'info:name'}
   #查看多个字段的数据,不用id
   scan 'student_xxx',{COLUMNS=>['info:name','relationship:father']}
  #指定id数据区间,不包含最后一行
    scan 'student_xxx',{STARTROW=>'07112001',ENDROW=>'07112002'}
   #限制条数
    scan 'student_xxx',{LIMIT=>2}
   #删除版本为3 的
      delete 'student_xxx','07112001','info:name',3
   #删除整行
      deleteall 'student_xxx','07112003'
   #删除整表
   truncate  'student_xxx'
    #mysql数据导入hbase

#语法少了错了没有提示 list 或ctrl+c退出 #数据的属性在列中 VERSION所有列可以保存的版本数,TTL 是秒数
到期删除(密码,验证码)
#IN_MEMORY是否加载到内存

10.理论(毕业设计)

  1. region(按行键[id]划分,最初有1个,一般1g)(读列速度快,因为放在不同机器)
    1. 是hbase负载均衡(分开处理资源)的最小单元
    2. 一个region对应多个store(存列,和行的键)包含memstore(先写入内存)和filestore(内存写入磁盘)
    flush ‘columns’ #需要写这个才能写入磁盘,如果不写默认需要1个小时才能写入
  2. 写入相同文件只多一个文件,可以记录历史记录,存在内存为了排序,放入磁盘
    #Hlog(wals)避免内存数据丢失,在写入内存之前备份,只有1个,不能大于1000个region,
    #查看日志文件 /usr/local/hbase/hbase-tmp/logs/xxxregion-server

11.hbase集群 复制到别人的机器

   scp 
  #会报错,需要改配置文件,连接java,要改host配置文件

12.Hbase的特点

① 半结构化或非结构化数据(变化的数据)
② 记录非常稀疏(没有表结构,null不占空间)
③ 多版本数据(可能要用以前写入的数据)
④ 超大数据量(自动水平切分)

12.Hbase特点(没有多表连接,直接是一个表,因为用列存储)

  1. 大:一个表可以有数十亿行,上百万列;

  2. 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;

  3. 面向列:面向列(族)的存储和权限控制,列(族)独立检索;

  4. 稀疏:空(null)列并不占用存储空间

  5. 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;

  6. 数据类型单一:Hbase中的数据都是字符串,没有类型 !!!

10.HBase和hdfs区别

  1. hbase只有字符串类型
  2. hbase一张表,传统要考虑多表关系
  3. 存储模式:Hbase是基于列存储的,每列由每个文件存储
  4. 数据维护:Hbase的更新实际上是插入了新的数据;传统数据库只是替换和修改
  5. 可伸缩性:Hbase
  6. 事务:Hbase只可以实现单行的事务性,传统数据库是可以实现跨行的事务性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5个UI设计师必备的Figma汉化插件

即时设计插件广场提供了许多有用的 UI 插件,帮助优化产品设计过程。其中,产品组件库 Figma 汉化插件对常用的 PC 端和移动端组件进行了筛选,使其更加聚焦和精简。PC 端组件包括基础、按钮、菜单和其他元素,移动端组件包括基础、按…

电子阅读器calibre的使用技巧

十条calibre使用技巧: 1. 添加电子书:可以单独添加文件、添加文件夹、添加zipped书籍,或者通过网络链接直接添加。 2. 转换电子书格式:可以将电子书转换为不同的格式,如AZW3、EPUB、MOBI、PDF等。 3. 修改元数据&am…

文件夹加密超级大师的金钻加密和闪电加密有什么区别?

作为一款专业的文件夹加密软件,文件夹加密超级大师提供了5种文件加密类型,其中金钻加密和闪电加密在加密后效果看似差不多,那么它们有什么区别呢?下面我们就来了解一下吧。 闪电加密更快速 当我们想要加密那些超级庞大的文件夹时…

Docker安装kafka可视化管理工具 - Kafka Manager

说明:此处是在前面使用Docker安装kafka的基础之上,再来使用Docker安装kafka-manager 第一步:使用下述命令从Docker Hub查找镜像,此处我们要选择的是sheepkiller所构建的kafka-manager镜像 docker search kafka-manager 第二步&a…

人工智能生成内容(AIGC):概念、发展历史及其机遇、挑战与未来方向

人工智能生成内容(AIGC) 人工智能生成内容(Artificial Intelligence Generated Content, AIGC), AIGC 是指使用生成式 AI (Generative Artificial Intelligence, GAI) 技术生成的内容&#xff…

基于SSM+Vue前后端分离的勤工助学管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 Web服…

网络通信的序列化和反序列化

序列化与反序列化的定义 由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象…

【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题

无论是初学者还是有经验的专业人士,在学习一门新的IT技术时,都需要采取一种系统性的学习方法。那么作为一名技术er,你是如何系统的学习it技术的呢。 一、DB Problems 数据库数据类型与java中数据类型对应问题? MySql数据库和java…

在Centos Stream 9上Docker的实操教程(一) - 实操准备篇

在Centos Stream 9上Docker的实操教程 - 实操准备篇 认识Docker准备Centos Stream 9安装Docker更新仓库绕不开的HelloWorld结语 认识Docker 什么都要实操了,你还不知道Docker是什么?网上关于Docker的介绍一搜一大把,博主就不必浪费时间去侃侃…

sqlserver行列转换( unpivot 和 pivot)

1,unpivot 是将列转为行显示,很多时候,我们用多个列了显示同一个对象不同维度得数据,如果需要数据关联,肯定需要转为横向显示! 思路就是:有一列显示多列的名称,有一列显示列名对应的…

Redis发布订阅以及应用场景介绍

目录 一、什么是发布和订阅?二、Redis的发布和订阅三、发布和订阅的命令行实现四、发布和订阅命令1、subscribe:订阅一个或者多个频道2、publish:发布消息到指定的频道3、psubscribe:订阅一个或多个符合给定模式的频道4、pubsub&a…

通过facebook主页进行自己产品的推广可行吗?

首先,让我们明确结论:通过Facebook主页进行产品推广是可行的,但并不是必要的。为什么这么说呢? Facebook作为一个社交平台,其核心功能是连接人与人之间的关系,鼓励用户分享和互动。用户在Facebook上的活动主…

(学习日记)2023.04.23

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

实用可靠的安科瑞电动机保护控制器的应用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:介绍了一种新型电动机保护器,兼有电流、电压、过载、短路保护功能。它集电流型和电压型电动机保护器优点于一身,对电源欠电压、过电压、断相起闭锁作用,它结构简单…

【测试报告】个人博客系统自动化测试报告

文章目录 项目背景项目功能测试计划功能测试测试用例执行测试的操作步骤 自动化测试设计的模块、自动化运行的结果、问题定位的结果自动化测试优点 项目背景 对于一个程序员来说,定期整理总结并写博客是不可或缺的步骤,不管是对近期新掌握的技术或者是遇…

C# 读取json格式文件

读取json格式文件 安装 Newtonsoft.Json 程序集 1. 选择界面下方的【程序包管理器控制台】页面,输入安装指令 Install-Package Newtonsoft.Json 2. 安装完成后,请确保在代码文件的顶部包含以下 using 指令: using Newtonsoft.Json; 创建读…

GCC如何生成并调用静态库

一,简介 本文主要介绍如何使用gcc编译代码生成静态库,并调用静态库运行的操作步骤。 二,准备工作 使用add.c和main.c生成test可行性文件的流程图: add.c文件的内容: #include "add.h"int add(int a, i…

自学网络安全, 一般人我劝你还是算了吧

前言:自学我劝你还是算了,我为什么要劝你放弃我自己却不放弃呢?因为我不是一般人。。。 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 …

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行…

计算如何与实验结合发Science

理论计算与实验结合的研究已经成为TOP期刊中的主流方式。近日,上海交通大学种丽娜副教授一项关于质子交换膜水解槽阳极催化剂的研究成果在Science发表。该工作报道了一种由沸石甲基咪唑酯骨架(Co-ZIF)衍生并通过静电纺丝处理的镧和锰共掺杂的…