nodejs+HBase数据库使用方法,nodejshbase数据库
nodejs+HBase数据库使用方法
本操作方法是由GitHub项目“node-hbase”总结而出,使用前需要先安装相应的操作模块,通过npm install hbase安装,或者直接下载该GitHub项目,将该项目放到nodejs工程的module下
nodejs操作Hbase数据库是通过Hbase的REST Server,使用前先在集群上启动该服务, bin/hbase-daemon.sh start rest
REST Server默认监听8080端口,如果8080端口被占用,可以修改HBase的hbase-site.xml文件,添加下列属性。
<property>
<name>hbase.rest.port</name>
<value>8090</value>
</property>
var hbase = require('hbase');
var client = hbase({
host: '127.0.0.1',
port:8080
)}
//插入数据
exports.insertSplitJarInfo = function(req,res){
var splitName = req.body.splitName;
var jarName = req.body.jarName.split('\\').pop();
var timestamp = (new Date()).valueOf();
var key = jarName +";"+ splitName;
client.table('SPLITEMETHOND_INFO')
.row()
.put([{key:key, column:'splitMethond:splitName',$:splitName},
{key:key, column:'splitMethond:jarName',$:jarName}
],function(err, success){
if(success)
res.json({success:true});
else res.json({success:false, reason:err});
})
}
})
//查询数据
exports.getSplitMethond = function(req, res){
client.table('SPLITEMETHOND_INFO')
.scan({
maxVersions:1
}, function(err, rows){
if(err!=null){
res.json({initSuccess:false, reason:err});
console.log(err);
}
else{
var result = analyzeRows(rows);
res.json({initSuccess:true, result: result});
}
});
}
//删除数据exports.deleteSplitMethond = function(req, res){
if(req.session.type == 'A'){
var splitInfo = req.body.splitInfo;
console.log(splitInfo);
client.table('SPLITEMETHOND_INFO')
.row(splitInfo)
.delete(function(err, success){
if(!success){
res.json({success: false, reason: "数据库删除错误"});
}else{
var targetPath = __dirname + '/public/files/splitjars/';
var s0 = 'rm -f ' + targetPath + splitInfo.split(';')[0];
var exec = require('child_process').exec;
exec(s0,function(error, stdout, stderr){});
res.json({success:true});
}
})
}else{
res.json({success: false, reason: "没有删除权限"});
}
}
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。