Hadoop hbase 项目

本文介绍了如何使用Hadoop MapReduce进行HBase的批量数据导入,详细解析了批量导入的步骤,包括环境配置、数据格式要求,并提供了具体的命令行示例。此外,还探讨了在Eclipse中使用Java实现HBase的MapReduce操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.     bulkloading  批量导入工具

1.1    环境准备

      1)      新建文本数据     music 1 .txt   ,  music2.txt

music1.txt   :

编号  rowkey                           歌名(song)         歌手singer        性别gender           节奏         客户端

1_sing1_ 2016               song1                        singer1                      man                   slow              ios

2_sing2_2017                 song2                         singer2                  man                    slow                 pc

3_sing1_ 2016               song13                       singer3                      man                   slow              ios

4_sing2_2017                 song4                        singer24                 man                    slow                 pc

5_sing1_ 2016               song5                      singer3                      man                   slow              ios

6_sing2_2017                 song6                      singer24                 man                    slow                 pc

             2)     新建   musicrecored 表 (播放记录)

列簇只有一个 info 

 

             3.)    新建表  namelist 表 (歌曲播放统计表)

                             列簇只有一个details

   

 

1.2  hbase 集成到hadoop 中【集群每一个节点都需要配置】     (主从机都要配置)

     1)将hbase 核心配置文件  hbase-site.xml   添加到 hadoop 主目录 、/etc/hadoop/ 下

 

  

  

      2)  将 hbase 的库(hbase 主目录下 lib 目录),配置(即 cp )到 hadoop 的环境(hadoop-env.sh)中

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase-1.2.0/lib/*

                   

        3) , 利用新建的 musicrecored 表测试集成是否成功。

                  在 hbase主目录 、/lib/中有  hbase-server*.jar  内有hbase 提供的工具类 rowcounter 主要用于测试

利用mapreduce 统计 hbase 表中记录总数, 命令如下:

$>        hadoop  jar      hbase 主目录/ lib/hbase-server*.jar    rowcounter   musicrecored

注 : 新建的 文本数据     music 1 .txt   ,  music2.txt 。   数据之间 的不能是空格

需要用 Tab 键 或者 制表符 “\” ;

否则会读取不到, 如下图 :

            

 

 

 

1.3  概念

          bulkloading 批量导入分两步完成

  第一部分将需要导入的文件转化为 hflie 格式的文件

  第二部分将hfile 文件关联到hbase 的表

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase-1.2.0/lib/*

          利用hbase-service * .jar  提供的工具(mapreduce  job)  来完成一下两步骤,

1.)   hfds 上文本数据生成 hfile  数据文件(importtsv)

注 : 下命令是一行,输入完才可执行, 否则虚拟机会误认为是两个命令;会出错。

语法: ¥》   hadoop jar hbase-server *. jar importtsv   -D  importtsv . bulk.output=hfile位置  -D importtsv.colums=HBASE_ROW_KEY,  info:song,info:singer, info:gender, info:ryghme,info:terminal 表名  hdfs 输入文件路径

样例 :hadoop jar hbase-server *. jar importtsv   -D  importtsv . bulk.output=/m1  -D importtsv.colums=HBASE_ROW_KEY,  info:song,info:singer, info:gender, info:ryghme,info:terminal  musicrecored  /input/music/

2.)  将生成的 hfile 文件 与 hbase 库 表关联 (completebulkload)

语法 :

样例:  $>  hadoop  jar  hbase-server*.jar  completebulkload hfile位置    表名

 

2.    Java 利用   hbase  完成  mapreduce 

  步骤:

       在eclipse 上新建一个  JAVA  Project  ,  然后添加 resource 文件夹,所需的(log4j.properties,  hbase-site .xml   ,  core-site.xml)三个文件,  

添加所需的依赖包,  右击工程名 -----》Build  Path  ------》 Configure ..... -----》Libraries   ------》Add   JARs....  ----->  选中工程里添加的依赖包,主要是为了把引入的依赖变成该工程里的依赖包,   --------》 Apply -----》 ok 

------->   【添加 Junit 】 。Build  Path  ------》 Configure ..... -----》Libraries   ------》Add Library ------> JUnit --- > Next ----> Finsh.
 

          2.1   概念

 

         2.2      TableMapper

 

          2.3     TableReduce

TableMapReduceUtil 方法

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值