Hbase特点:

HBase介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

HBase中的表一般有这样的特点:

  1. 大:一个表可以有上亿行,上百万列
  2. 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
  3. 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

    阅读更多

什么是HBase

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。

注意:HDFS不同于普通的关系型数据库,HDFS中的数据没有任何数据类型,都是已二进制的形式存在的。

阅读更多

注解

相当于一种标记,在程序中加入注解就是为程序打上了某种标记。加入标记后,Java编译器可以利用反射机制来了解类和各种元素上有无任何标记,然后根据标记去做相应的事情。标记可以加在包、类、字段、方法、方法的参数以及局部变量上。

定义一个最简单的注解:

1
public @interface MyAnnotation{  ...   }

阅读更多

什么是ZooKeeper

Zookeeper是Google的Chubby的一个开源实现,是Hadoop的分布式协调服务。Zookeeper包含了一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命令服务等。Zookeeper可以提供一组工具,使你在构建分布式应用时能够对部分失败进行正确处理。

为什么要使用Zookeeper?

阅读更多

什么是倒排索引

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。

倒排索引简单地就是:根据单词,返回它在哪个文件中出现过,而且频率是多少的结果。这就像百度里的搜索,你输入一个关键字,那么百度引擎就迅速的在它的服务器里找到有该关键字的文件,并根据频率和其他一些策略(如页面点击投票率)等来给你返回结果。这个过程中,倒排索引就起到很关键的作用。

阅读更多

MapReduce概述

MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。

MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。这两个函数的形参是key、value对,表示函数的输入信息。

MapReduce实现原理

阅读更多

什么是Socket

Java中的Socket编程其实就是网络编程,一般使用基于TCP/IP协议的Socket编程。所有关于Socket编程的API都在Java.net包里,一般实现客户端和服务器端之间的通讯。

Socket通讯的过程

Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。

阅读更多

什么是反射?

反射就是程序在运行时能够获取自身的信息。只要知道类的名字,就可以通过反射机制来获取类的所有信息。通过反射可以实现动态创建对象和编译,体现出很大的灵活性。举个例子来说,在学jdbc时用过一行代码,

1
Class.forName("com.mysql.jdbc.Driver.class").newInstance()

阅读更多

Maven概念

Maven是一种基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。ps:个人使用心得,maven使用起来最方便的就是管理jar文件。

Maven安装

下载maven,配置环境变量,可通过mvn -v来测试maven安装是否成功。

阅读更多