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