def hbasePopulate(self,table="abc",MachineIP="xx.xx.xx.xx"):
connection=happybase.Connection(MachineIP,autoconnect=True)
tablename=Reptype.lower()+'rep'
print "Connecting to table "
print tablename
try:
table=connection.table(tablename)
for key,data in table.scan():
print key,data
print table
#except IOError as e:
except:
print "Table does not exists,creating"
self.createTable(table=table,machineIP=machineIP)
with table.batch() as b:
with open('xxx.csv','r') as queryFile:
for lines in queryFile:
lines=lines.strip("\n")
splitRecord=lines.split(",")
key=splitRecord[0]
key=key.replace("'","")
val=",".join(splitRecord[1:])
val=ast.literal_eval(val)
table.put(splitRecord[0],val)
for key,data in table.scan():
print key,data
def createTable(self,table="abc",MachineIP=""):
connection=happybase.Connection(MachineIP,autoconnect=True)
print "Connection Handle",connection
tname=table.lower()
tablename=str(tname)
print "Creating table : "+table+", On Hbase machine : "+MachineIP
families={"cf":{} ,} #using default column family
connection.create_table(table,families=families)
print "Creating table done "
每次運行這個腳本時,它都會將數據填充到hbase表中,但它會保持連接處於打開狀態。當我使用netstat -an
進行檢查時,發現連接計數已經增加,即使在腳本完成後,連接計數仍然存在。使用python中的happybase關閉與hbase數據庫的連接
我錯過了什麼嗎?我們是否需要明確關閉連接?
感謝您的幫助。
得到了解決方案。發現這是 – MultipleCrashes 2015-02-21 18:45:04
面臨類似的問題,如果我們在REST模型中使用它似乎有Happybase中的錯誤。 – 2017-09-06 11:46:20