{"id":585,"date":"2019-08-14T08:51:08","date_gmt":"2019-08-14T00:51:08","guid":{"rendered":"https:\/\/nj.transwarp.cn:8180\/?p=585"},"modified":"2021-09-07T18:44:45","modified_gmt":"2021-09-07T10:44:45","slug":"python%e8%bf%9e%e6%8e%a5%e5%bc%80%e4%ba%86%e5%ae%89%e5%85%a8%e7%9a%84hyperbase","status":"publish","type":"post","link":"https:\/\/kbwp.transwarp.cn\/?p=585","title":{"rendered":"Python\u8fde\u63a5\u5f00\u4e86\u5b89\u5168\u7684Hyperbase"},"content":{"rendered":"<h3>\u6982\u8981\u63cf\u8ff0<\/h3>\n<hr \/>\n<p>\u672c\u6587\u610f\u5728\u63cf\u8ff0\u5982\u4f55\u7528 Python \u8fde\u63a5\u5f00\u4e86\u5b89\u5168\u7684 Hyperbase\u3002<br \/>\n\u622a\u6b62\u5230\u76ee\u524d TDH \u6700\u65b0\u7248\u672c 6.2\uff0cPython\u8fde\u63a5 Hyperbase\uff0c\u6682\u65f6 <strong><font color =red>\u53ea\u652f\u6301python2<\/font><\/strong>\uff0c<strong>\u4e0d\u652f\u6301python3<\/strong>.<\/p>\n<h5>\u6848\u4f8b\u73af\u5883\u8bf4\u660e<\/h5>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">IP\u5730\u5740<\/th>\n<th style=\"text-align: left;\">hostname<\/th>\n<th style=\"text-align: left;\">\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">172.22.16.88<\/td>\n<td style=\"text-align: left;\">tdh-001<\/td>\n<td style=\"text-align: left;\">\u96c6\u7fa4\u5916\u8282\u70b9<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">172.22.33.1<\/td>\n<td style=\"text-align: left;\">mll01<\/td>\n<td style=\"text-align: left;\">\u96c6\u7fa4\u8282\u70b91<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">172.22.33.2<\/td>\n<td style=\"text-align: left;\">mll02<\/td>\n<td style=\"text-align: left;\">\u96c6\u7fa4\u8282\u70b92<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">172.22.33.3<\/td>\n<td style=\"text-align: left;\">mll03<\/td>\n<td style=\"text-align: left;\">\u96c6\u7fa4\u8282\u70b93<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u8be6\u7ec6\u8bf4\u660e<\/h3>\n<hr \/>\n<ol>\n<li>\n<p>\u5b89\u88c5Python2.7<\/p>\n<pre><code class=\"language-shell\"># yum -y\u00a0install\u00a0gcc\n# wget https:\/\/www.python.org\/ftp\/python\/2.7.13\/Python-2.7.13.tgz\n# gunzip Python-2.7.13.tgz\n# tar xvf Python-2.7.13.tar\n# cd\u00a0Python-2.7.13\n# .\/configure --prefix=\/usr\/local\/python2.7 --with-threads --enable-shared\n# make && make install<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72471-1.png\" alt=\"\" \/><\/p>\n<\/li>\n<li>\n<p>\u5b89\u88c5epel\u6e90\uff0c\u5e76\u5b89\u88c5python-pip2 &amp; python-pip<\/p>\n<pre><code class=\"language-shell\"># rpm -ivh http:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-7.noarch.rpm\n# yum install python-pip*<\/code><\/pre>\n<\/li>\n<li>\n<p>\u5b89\u88c5kinit\u5ba2\u6237\u7aef<\/p>\n<pre><code class=\"language-shell\">#yum install krb5*<\/code><\/pre>\n<p>\u4ece\u5f00\u4e86 Hyperbase \u5b89\u5168\u7684\u96c6\u7fa4\u670d\u52a1\u5668\u4e0a\uff0c\u5c06 <strong>\/etc\/hyperbase1\/conf<\/strong> \u76ee\u5f55\u4e0b\u7684 <strong>krb5.conf<\/strong> \u6587\u4ef6\u548c\u76f8\u5e94\u7684 <strong>keytab<\/strong> \u6587\u4ef6\u62f7\u8d1d\u5230\u96c6\u7fa4\u5916\u90e8\u7f72python\u7684\u670d\u52a1\u5668\u7684 <strong>\/etc<\/strong> \u76ee\u5f55\u4e0b<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72472.png\" alt=\"\" \/><\/p>\n<\/li>\n<li>\n<p>\u914d\u7f6e <strong>\/etc\/hosts<\/strong> \u6587\u4ef6\uff0c\u4f7f\u5176\u5305\u542b\u96c6\u7fa4\u8282\u70b9\u4fe1\u606f\uff0c\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-shell\"># cat \/etc\/hosts\n127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n172.22.22.1 tdh-001\n172.22.16.88 tdh1-600\n172.22.33.1 mll01\n172.22.33.2 mll02\n172.22.33.3 mll03<\/code><\/pre>\n<\/li>\n<li>\n<p>\u67e5\u770bKeytab\u8ba4\u8bc1\u4fe1\u606f\uff08\u67e5\u770bkeytab\u7684principal\uff09\uff0c\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-shell\"># klist -kt \/etc\/yangliu.keytab<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72473.png\" alt=\"\" \/><\/p>\n<pre><code class=\"language-shell\"># kinit -kt \/etc\/yangliu.keytab mll@TDH<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72474.png\" alt=\"\" \/><\/p>\n<\/li>\n<li>\n<p>\u5b89\u88c5\u6240\u9700 Python \u5305<\/p>\n<pre><code class=\"language-shell\"># pip install pure-sasl\n# pip install thrift\n# pip install hbase-thrift<\/code><\/pre>\n<\/li>\n<li>\n<p>\u5b89\u88c5Kerberos<\/p>\n<ol>\n<li><a href=\"\/wp-content\/uploads\/2019\/08\/kerberos.tar.gz\" title=\"\u4e0b\u8f7d\">\u4e0b\u8f7d<\/a>Kerberos\u6587\u4ef6\uff1b<\/li>\n<li>\u89e3\u538b\u5e76\u5c06\u89e3\u538b\u540e\u7684\u6587\u4ef6\u590d\u5236\u5230 <strong>\/usr\/lib\/python2.7\/site-packages\/<\/strong> \u76ee\u5f55\u4e0b\n<pre><code class=\"language-shell\"># tar zxvf kerberos.gar.gz\n# tar zxvf kerberos-1.3.0.dist-info.tar.gz\n# cp -p * \/usr\/lib\/python2.7\/site-packages\/<\/code><\/pre>\n<\/li>\n<li>\u9a8c\u8bc1kerberos\u662f\u5426\u5b89\u88c5\u6210\u529f\n<pre><code class=\"language-shell\"># pip list | grep kerberos<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72475.png\" alt=\"\" \/><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4>Python \u8fde\u63a5Hyperbase\u811a\u672c\u53c2\u8003\u5982\u4e0b\uff1a<\/h4>\n<pre><code class=\"language-python\">from thrift import Thrift\nfrom thrift.transport import TSocket\nfrom thrift.transport import TTransport\nfrom thrift.protocol import TBinaryProtocol\n\nfrom hbase import Hbase\nfrom hbase.ttypes import *\n\nthriftServer = \"172.22.33.1\"\nthriftPort = 9090\n\nsaslServiceName = \"hbase\"\n\nsock = TSocket.TSocket(thriftServer, thriftPort)\ntransport = TTransport.TSaslClientTransport(sock, thriftServer, saslServiceName)\nprotocol = TBinaryProtocol.TBinaryProtocol(transport)\n\nclient = Hbase.Client(protocol)\ntransport.open()\nclient.getTableNames()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2019\/08\/\u56fe\u72476.png\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981\u63cf\u8ff0 \u672c\u6587\u610f\u5728\u63cf\u8ff0\u5982\u4f55\u7528 Python \u8fde\u63a5\u5f00\u4e86\u5b89\u5168\u7684 Hyperbase\u3002 \u622a\u6b62\u5230\u76ee\u524d TDH \u6700\u65b0\u7248\u672c ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/kbwp.transwarp.cn\/?p=585\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,47,1],"tags":[],"class_list":["post-585","post","type-post","status-publish","format-standard","hentry","category-configuration","category-third_part","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=585"}],"version-history":[{"count":3,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/585\/revisions"}],"predecessor-version":[{"id":6715,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/585\/revisions\/6715"}],"wp:attachment":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}