hive与hbase的区别

定义

  • hive是一个构建在hadoop基础设施上的数据仓库,通过hive可以使用hql语言查询存放在hdfs上的数据。hql是一种类sql语言,这种语言最终被转化为map/reduce。虽然hive提供了sql查询功能,但是hive不能进行交互查询。(只能在hadoop上批量执行hadoop)
  • hbase是一种key/value系统,运行在hdfs之上。和hive不一样,hbase能够在数据库上实时运行,而不是运行map/reduce任务。hive被分区为表格,表格又被进一步分割为列簇。列簇必须使用schema定义,列簇将某一类型列集合起来。每一个key/value对在hbase中被定义为一个cell,每一个key由row-key,列簇,列和时间戳。在hbase中,行是key/value映射的集合,这个映射通过row-key来唯一标识。

二叉树的非递归遍历

二叉树定义

1
2
3
4
5
6
7
8
9
class TreeNode {
public
int val;
TreeNode *left, *right;
TreeNode(int val) {
this -> val = val;
this -> left = this -> right = NULL;
}
}

前序遍历

根据前序遍历访问的顺序,优先访问根结点,然后再分别访问左孩子和右孩子。即对于任一结点,其可看做是根结点,因此可以直接访问,访问完之后,若其左孩子不为空,按相同规则访问它的左子树;当访问其左子树时,再访问它的右子树。因此其处理过程如下:

|