NoSql的基本概念

什么是NoSQL:

NoSQL:即:not only SQL,非关系型数据库。


hadoop cm对应的MySQL数据库挂掉了 hadoop nosql_数据

NoSQL是一个通用术语,指不遵循传统RDBMS模型的数据库,数据是非关系的,且不使用SQL作为主要查询语言;解决数据库的可伸缩性和可用性问题,不针对原子性或一致性问题。

为什么我们要使用NoSQL:
  • 互联网的发展,传统关系型数据库存在瓶颈
  • 高并发读写
  • 高存储量
  • 高可用性
  • 高扩展性
  • 低成本
NoSQL的特点
  • 最终一致性
  • 应用程序增加了维护一致性和处理事务等职责
  • 冗余数据存储
  • NoSQL != 大数据
  • NoSQL产品是为了帮助解决大数据存储问题
  • 大数据不仅仅包含数据存储的问题还有Hadoop、Kafka、Spark, etc
Nosql的分类和存储区别
Key-Value Stores
  • The most common; not necessarily the mostpopular(最普遍的;不一定是最受欢迎的)
  • Has rows each with something like a bigdictionary/associativearray(每个行都有一个大词典/关联数组)
  • Common on cloud platforms(常见于云平台)
    e.g. Amazon SimpleDB,Azure Table Storage(例如AmazonSimpleDB,Azure表存储)
  • MemcacheDBVoldemortCouchbaseDynamoDB(AWS)DynomiteRedis and Riak
Wide Column Stores
  • Hastables with declared column families(具有声明列族的表)
  • Each column family hascolumns"which are KV pairs that can vary from rowto row(每个列族都有“列”,这些列是KV对,可以在行与行之间变化)
  • Calls column families“super columns" and tables“super column families”(将列族称为“超列”,将表称为“超列族”)
Document Stores
  • Documents are typicallyJSONobjects(文档通常是JSON对象)
  • Each document has properties andvalues(每个文档都有属性和值)
  • Values can be scalars, arrays, links to documents in other databases or sub-documents(i.e.contained |SON objects-Allows for hierarchical storage)(值可以是数组、他数据库中的文档的链接或子文档(即包含JSON对象一-允许分层存储))
  • Old versions are retained(保留旧版本)
  • Most popular with developersshartusVCs(最受开发者、初创公司和风投公司欢迎)
  • CouchDBMongoDBCouchBase

Nosql的分类和存储区别


Hbase介绍
什么是Hbase?
  • HBase是一个领先的No-SQL数据库
  • HBase is column-oriented database(HBase是面向列的数据库)
  • HBase is a distributed hash map(HBase是一个分布式的HashMap)
  • HBase is based on the Google Big Table paper(HBase基于Google Big Table论文)
  • HBase uses HDFS as storage and leverage itsreliability(HBase使用HDFS作为存储并利用其可靠性)
  • Data can be accessed quickly~2-20 millisecond response time(可以快速访问数据,响应时间约为2-20毫秒)
  • Great support random read & write 20k to 100k+ops/sper node(非常好的支持随机读写每个节点20k到100k+ops/s相当于每秒10W次)
  • Scales to 20000+nodes(可扩展至20个节点)
Hbase的用例
  • Capturing Incremental Time Series Data(捕获增量数据-时间序列数据)
  • High volume, high velocitywrites(高容量,高速写入)
  • Information Exchange-Messaging(消息传递)
  • High volume, high velocitywrite/read(高容量,高速写入/读取)
  • Content Serving-Web Application Backend(内容服务-Web应用程序后端
  • High volume, high velocity reads
HBase案例 - HBase in Alibaba Search

HBase is a core storage in Alibaba search systemsince2010(自2010年以来,HBase一直是阿里巴巴搜索系统的核心存储)

History Version

-20102014:0.20->0.94。20142015:094->0.98。2016 0.98->1.1.2
Current Scale(当前规模)

  • 3 cluster each with 1000+nodes(3个集群,每个集群有1000多个节点
  • Share with Flink on Yarn(在alibabaHbase和Fink在一台机器上,通过Hbase查询,Fink进行数据转换)
  • Serving over 10M+/s operations everyday(每天提供超过10M+/s的操作,每秒超过1000W次的读写)

Hbase数据管理和体系结构优势

Data Management(数据管理)
  • What is available is tracked in three locations(数据追踪)
  • System catalog table hbase:meta(优先会查询HbaseMaster里面元数据)
  • Files in HDFS directories(文件在对应的HDFS目录)
  • Open region instances on servers(通过RegionServer找到Region)
Hbase的Shell操作和总结
  • HBase Architecture Advantages(HBase体系结构优势)
  • HBase provides the following benefits(HBase具有以下优点)
  • Strong consistency model(健壮的一致性)
    when a write returns, all readers will see same value
  • Scales automatically(自动扩展)
  • Splits when regions become too large(当region变得太大时自动分裂)
  • Uses HDFS to spread data and managespace(使用HDFS分散数据和管理空间) Built-in recovery(内置恢复)
  • Using a Write Ahead Log,similar to journaling on file system(写日志,便于恢复) Integrated with Hadoop(与Hadoop集成)
  • MapReduce on HBase is straightforward(HBase上的MapReduce非常简单)