我是Hadoop和Hbase的新手 . 我想知道编写普通java程序和MapReduce程序(用java编写)之间的区别,当两者都对HBase表中的相同数据执行相同的任务时 .
我知道Pig Scripts和Hive Queries将转换为MapReduce程序,并将处理HDFS上的数据 . 甚至HBase也会在Datanode上存储数据 . 那么普通的java程序是否会被转换为mapper redcucer任务并将数据从datanode处理为批处理,或者它是否会线性处理数据?
请告诉我,简单的java程序如何在HBase Table上处理数据?提前致谢!!!
1 回答
Hbase有很多客户端,我们可以用java或Mapreduce(用java编写)程序编写独立的hbase客户端
一般来说,小型java hbase客户端适用于小数据 . 它不会转换为map-reduce . 它将作为独立客户端工作,不会在hadoop集群节点上产生,并且用于测试目的 .
Mapreduce用于大/大数据集,它使用YARN并根据输入拆分(并行)在所有节点上划分任务 . 所以它比普通的java程序更快 .
普通的java或mapreduce程序都使用相同的客户端api和
hbase.zookeeper.quorum
,但它的工作方式是不同的 .使用客户端api,它通过zookeeper(
hbase.zookeeper.quorum
&)连接,并将与hbase表进行交互 . 例如配置请参见下文 .您可以将其视为hive如何使用jdbc api以不同的方式进行交互 .