python爬取hbase信息

1.随着业务系统的越来越庞大,hbase的表越来越多,分区规则,TLL时间等需要时刻去维护。所以从0到1学会用python爬取hbase信息。

第一步下载hbase:https://mirrors.cnnic.cn/apache/hbase/1.3.3/

第二步解压:tar -zxvf hbase-1.3.3-bin.tar.gz

第三步下载hadoop :http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-3.0.2/

第四步解压:tar -zxvf hadoop-3.0.2.tar.gz

安装方法多种:一种是跟着教程走,当然我是第二种缺啥补啥(以前安装过hbase)

安装hadoop:

vi etc/hadoop/hadoop-env.sh配置HADOOP_HOME

 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/

配置 core-site.xml

<configuration>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
    </property>

</configuration>

执行:cp mapred-site.xml.template mapred-site.xml指定MR框架的

编辑mapred-site.xml:

<configuration>
  <property>
     <name>mapred.job.tracker</name>
     <value>localhost:9001</value>
  </property>
</configuration>

vi hdfs-site.xml编辑:

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/hadoop/namenode</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/hadoop/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

初始化bin目录下执行:sh hadoop namenode -format

cd sbin目录下执行:sh start-dfs.sh输入密码后就安装成功了

hbase配置 编写hbase-site.xml:

<configuration>
<property>
   <name>hbase.rootdir</name>
    <value>file:/home/test/hbase_data/hbase</value>
  </property>
</configuration>

hbase shell 进去

访问UI界面:

1.博主遇到UI界面不能访问的问题,?

我狠心直接禁用防火墙了,本人是在VM中安装的。

[root@localhost bin]# sudo systemctl stop firewalld.service
[root@localhost bin]# sudo systemctl disable firewalld.service

现在真正的开始了,创建一个hbase表设置TTL时间,设置一个版本:

    create 'magina_t',{NAME =>'cf',VERSIONS =>1,TTL => 5184000},{SPLITS => ['1','2','3','4','5','6','7','8','9']}

查询表结构

    分区开始的值和结束的值:

  如果是hbase高版本,hbase shell的命令就可以。

get_splits 'ns1:t1'
p=subprocess.Popen(‘’, shell=True, stdin=subprocess.PIPE,stdout=subprocess.PIPE)
p.stdin.write("echo HELLW_WORLD!\r\n".encode("GBK"))
p.stdin.flush()

低版本用API或者直接页面上爬取,低版本的 hbase python原始爬虫开始操作了(强烈不建议这样做!!!):

class TitleParser(HTMLParser):
    def __init__(self):
        self.taglevels = []
        self.handledtags = ['h2', 'table', 'tr']
        self.processing = -1
        self.append=-1
        self.do=-1
        HTMLParser.__init__(self)

    def handle_starttag(self, tag, attrs):
         if tag =='table':
             for a,b in attrs:
                 if a=='class' and b=='table table-striped':
                     self.processing=1
                     break

    def handle_data(self, data):
        if self.processing == 1:
            if data.strip() == 'Name':
                print "name"
                self.append = 1
            if self.append == 1:
                self.taglevels.append(data)

    def handle_endtag(self, tag):
        if tag =='table':
            self.append=-1

    def handle_charref(self, name):
        try:
            charnum = int(name)
        except ValueError:
            return
        self.handle_data(chr(charnum))

import urllib
fd = urllib.urlopen("http://xxx.xx:16010/table.jsp?name=magina_t")
tp = TitleParser()
tp.feed(fd.read())
s=[x.strip() for x in tp.taglevels if x.strip()!='' ]

 

 

 

 

 

 

 

基于Hadoop的Python爬取数据进行预处理有以下步骤: 1. 数据收集:爬虫程序使用Python编写,通过网页抓取、API调用等方式收集相关数据。爬虫程序可利用Python的库如Beautiful Soup和Scrapy来解析和提取数据。 2. 数据清洗:利用Hadoop的分布式计算能力,将收集到的原始数据传输到Hadoop分布式文件系统(HDFS)中,以便后续处理。接着,使用Python编写的MapReduce程序,对原始数据进行清洗,去除不需要的标记、过滤噪声数据,以及将数据规范化。 3. 数据转换:在预处理过程中,数据可能需要转换为结构化的格式,例如将数据转换为CSV、JSON或Parquet等常用的数据格式,以方便后续分析和处理。Python可以编写适应需要的转换逻辑,并使用Hadoop的MapReduce或Spark技术进行分布式处理。 4. 数据整合:从不同的源头收集到的数据需要整合成一个统一的数据集合,方便统一分析。这个过程可能涉及数据的合并、去重和排序等操作。Python与Hadoop的集成可以使用Hadoop的MapReduce或Spark进行分布式计算,通过编写适应需求的逻辑程序,完成数据整合的任务。 5. 数据存储:清洗、转换和整合后的数据可以存储回Hadoop的分布式文件系统(HDFS),或者外部数据库(如HBase、MySQL、PostgreSQL等),以供后续的数据挖掘和分析使用。Python可以通过Hadoop的API或者第三方库,将数据存储到指定的存储介质中。 基于Hadoop的Python爬取数据进行预处理,能够充分利用Hadoop的分布式计算能力来处理大规模的数据,提高数据的处理速度和效率。同时,Python作为一种简洁且易于编写和维护的脚本语言,为数据预处理提供了强大的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值