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运行的底层文件系统

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

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

7.安装hbase

解压改配置文件启动hadoopstart.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添加语句(不需要多表连接) 坑爹,mysql有;结尾,hbase没有, hbase是一个一个列族数据放进去的,mysql可以一下子放全部数据

#查看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.理论(毕业设计)

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

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

scp

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

12.Hbase的特点

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

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

大:一个表可以有数十亿行,上百万列; 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列; 面向列:面向列(族)的存储和权限控制,列(族)独立检索; 稀疏:空(null)列并不占用存储空间 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳; 数据类型单一:Hbase中的数据都是字符串,没有类型 !!!

10.HBase和hdfs区别

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

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: