1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| 任务描述 相关知识 如何使用happpybase连接HBase数据库 编程要求 好了,到你啦,使用本关知识,在右侧命令行完成下面的任务要求: 任务描述 本关任务:使用python代码在HBase中创建表。
相关知识 为了完成本关任务,你需要掌握:1.如何使用happybase 连接HBase数据库,2.如何使用python代码在HBase中创建表。
如何使用happpybase连接HBase数据库 一、连接(happybase.Connection) import happybase happybase.Connection(host=’localhost’, port=9090, timeout=None, autoconnect=True, table_prefix=None, table_prefix_separator=b’_’, compat=’0.98’, transport=’buffered’, protocol=’binary’) 获取连接实例 host:主机名 port:端口 timeout:超时时间 autoconnect:连接是否直接打开 table_prefix:用于构造表名的前缀 table_prefix_separator:用于table_prefix的分隔符 compat:兼容模式 transport:运输模式 protocol:协议 例: connection = happybase.Connection(host=”192.168.0.156”,port=9090,timeout=None,autoconnect=True,table_prefix=None,table_prefix_separator=b’_’,compat=’0.98’, transport=’buffered’,protocol=’binary’)
当connection被创建的时候,默认自动与Hbase建立socket连接的。 若不想自动与Hbase建立socket连接,可以将autoconnect参数设置为False connection = happybase.Connection(‘10.1.13.111’, autoconnect=False) 然后手动与Hbase建立socket连接 connection.open() open():打开传输,无返回值 close():关闭传输,无返回值 connection.close() 连接建立好之后查看可以使用的table print connection.tables() 因为还没有创建table,所以返回结果是 []
二、创建一个table create_table(name,families):创建表,无返回值 name:表名 families:列族 families = { “cf”:dict(), “df”:dict()} connection.create_table(name,families) 如果连接时,有传递表前缀参数时,真实表名将会是:”{}_{}”.format(table_prefix,name)
connection.create_table( ‘my_table’, { ‘cf1’: dict(max_versions=10), ‘cf2’:dict(max_versions=1,block_cache_enabled=False), ‘cf3’: dict(), } ) 此时,我们再通过connection.tables()查看可以使用的table,结果为[‘my_table’] 创建的table即my_table包含3个列族:cf1、cf2、cf3
编程要求 好了,到你啦,使用本关知识,在右侧命令行完成下面的任务要求: 1执行环节搭建脚本,为使用Python语言操作hbase做好准备。 cd /data/workspace/myshixun/opt/ chmod +x setup-env.sh ./setup-env.sh 这里可能需要等待几分钟,让脚本执行完,thrift和happybase就安装好了。 接下来可以查看各个服务进程是否启动 jps ‘’ root@evassh-2932225:~ 1808 ResourceManager 4785 Jps 2820 ThriftServer 1317 NameNode 2694 HRegionServer 1447 DataNode 2506 HQuorumPeer 1626 SecondaryNameNode 2570 HMaster ‘’ 如果启动过程中出现: localhost: zookeeper running as process 2474. Stop it first. master running as process 2538. Stop it first. : regionserver running as process 2665. Stop it first. thrift running as process 2789. Stop it first.
需要我们重新 /app/hbase-2.1.1/binhbase-daemon.sh stop thrift stop-dfs.sh 和stop-hbase.sh,然后再重启。
2 进入Python编译器完成连接和创建表 python3
3 建立一个本地连接对象conn,使用本机和默认端口建立连接 4 创建一个名为student1的表,有两个列族:info和scores 注意:列族定义之间的逗号后要空一格,否则会出错。 5 可以使用conn.tables()查看表是否创建好。 如果出现‘BrokenPipeError: [Errno 32] Broken pipe’提示,说明连接已经自动关闭,每次连接如果超过60秒没有操作,就会自动关闭,需要重新建立连接。 6 退出Python编译器
开始你的任务吧,祝你成功!
|