kettle读取hbase

原文:https://blog.csdn.net/sujiangming/article/details/114376744?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-20-114376744.pc_agg_rank_aggregation&utm_term=Kettle%E5%88%B0%E6%95%B0%E6%8D%AE%E5%88%B0Hbase&spm=1000.2123.3001.4430

说明:

环境:Centos7 + Kettle8.2 + hbase-1.3.1 + zookeeper-3.4.5

目标:通过Kettle将本地文件抽取到hbase中

一、HBase安装

安装hbase需要先安装zookeeper,故按照如下步骤进行环境搭建:

1.1 zookeeper单机安装

请参考博客中其他的博文:

https://editor.csdn.net/md/?articleId=88884983

1.2 HBase安装

需要将hadoop启动起来(如果已经启动了,就不需要执行这个命令):

start-all.sh

上传hbase-1.3.1-bin.tar.gz到/tools目录下

将hbase-1.3.1-bin.tar.gz文件解压并安装到/training目录下

tar -zvxf hbase-1.3.1-bin.tar.gz -C /training/

配置环境变量

vi ~/.bash_profile

在打开的.bash_profile文件中添加如下信息:

       export HBASE_HOME=/training/hbase-1.3.1

    export PATH=$HBASE_HOME/bin:$PATH

让环境变量生效

source ~/.bash_profile

验证配置hbase的环境变量是否生效,执行:

hbase

看看是否有Usage: hbase [] []信息,如果有则生效了,否则,配置有误

进入到/training/hbase-1.3.1/conf目录下

cd /training/hbase-1.3.1/conf

修改hbase-env.sh文件

vi hbase-env.sh

修改JAVA_HOME为用户安装的jdk路径

export JAVA_HOME=/training/jdk1.8.0_171

找到# export HBASE_MANAGES_ZK=true 将#号去掉即可

修改hbase-site.xml

vi hbase-site.xml

在configuration节点之间添加如下信息,注意下面的有IP的地址需要修改成你自己主机的IP地址或者主机名,具体如下

<property>

   <name>hbase.rootdir</name>

   <value>hdfs://hadoop001:9000/hbase</value>

 </property>   

 <property>

   <name>hbase.cluster.distributed</name>

   <value>true</value>

 </property>           

 <property>

   <name>hbase.zookeeper.quorum</name>

   <value>hadoop001</value>

 </property>               

 <property>

   <name>dfs.replication</name>

   <value>1</value>

 </property>

修改regionservers,配置从节点地址(伪分布只有一台主机,所以配置一个即可):将localhost改成IP地址或者主机名。

启动HBase:

start-hbase.sh

使用jps命令查看,是否已经启动了如下两个进程

HRegionServer

HMaster

登录Web Console进程查看: http://hadoop001:16010

1.3 创建weblogs表,列族为pageviews

在hbase shell 中创建表,执行如下命令:

create 'weblogs', 'pageviews'

二、Kettle配置

将配置好的hbase-site.xml文件下载到kettle的安装目录下,如下图所示:

重启Kettle

三、案例演示

3.1 功能描述

将本地文件抽取到HBase中

3.2 测试数据

 https://download.csdn.net/download/sujiangming/15566731

3.3 组件实现

选择输入组件为文本文件输入

选择输出组件为HBase Output

配置输入组件,双击输入组件,配置如下所示:

选择测试数据所在位置,浏览->增加,

5. 配置hadoop集群,如下图,双击HBase Output组件,弹窗如下:

6. 配置输出组件HBase Output,配置如下图:

HBase中多出一张映射表

在上面的弹窗截图中切换到Configure connection 进行如下配置,配置完后一定注意保存一下:

3.4 运行验证

1、 运行

2、查看控制台:

3、查看hbase数据库中的数据

案例2:kettle连hbase

设置Hadoop环境
在Tools -> Hadoop Distribution 中选择 “HortonWorks HDP 2.5.x”。

复制 hbase-site.xml 文件
从hbase集群中复制 hbase-site.xml 文件到 kettle 安装目录下的 “plugins/pentaho-big-data-plugin/hadoop-configurations/hdp25” 目录下。

准备数据表
这里准备测试从一个hbase表导数据到另一个hbase表,其实往别存储介质也都是类似,比如文件,数据库。这里主要是为了说明怎样连hbase。

这里使用两个表,user和user2,测试从user表导数据到user2表。

# 启动shell
$ bin/hbase shell

################################################################################
# 创建 user 表

# 创建 user 表,其中包括两个列族 base 和 address。
# base列族用来保存用户基本信息,username和password
# address列族用来保存家庭和办公地址 
> create 'user', 'base', 'address'

# 向 user 表写入数据
> put 'user', 'row1', 'base:username', 'user1'
> put 'user', 'row1', 'base:password', 'user1'
> put 'user', 'row1', 'address:home', 'user1 home'
> put 'user', 'row1', 'address:office', 'user1 office'

> put 'user', 'row2', 'base:username', 'user2'
> put 'user', 'row2', 'base:password', 'user2'
> put 'user', 'row2', 'address:home', 'user2 home'
> put 'user', 'row2', 'address:office', 'user2 office'

################################################################################
# 创建 user2 表
> create 'user', 'base', 'address'


测试导入
添加一个Transformations。
在 View -> Transformations -> Hadoop clusters 添加一个新的 Hadoop 集群。配置大致如下:(修改后可以测试一下)
Cluster Name: myhdfs
Storage: HDFS
HDFS: (可以参考core-site.xml文件)
  Hostname: <ip>
  Port: 8020
  Username: <user>
  Password: <password>
JobTracker:
  Hostname: <ip>
  Port: 8032
Zookeeper:
  Hostname: <ip>
  Port: 2181


在工作区,拖拽一个 “HBase Input” 和 “HBase Output”,并建立关联。
设置 “HBase Input”
首先在 “Configure query” 中设置 “Hadoop Cluster”。
在 “Create/Edit mappings” 中 “HBase table name” 选择 user。
在 “Create/Edit mappings” 中 “Mapping name” 输入 user_mapping。
在 “Create/Edit mappings” 中 表格中定义下面几项,然后 “Save mapping”
Alias     Key    Column family       Column      Type
ROW        Y                                     String
username   N     base                username    String
password   N     base                password    String
home       N     address             home        String
office     N     address             office      String


回到 “Configure query”,HBase table name” 选择 user, “Mapping name” 选择 user_mapping。
设置 “HBase Output
首先在 “Configure query” 中设置 “Hadoop Cluster”。
在 “Create/Edit mappings” 中 “HBase table name” 选择 user2。
在 “Create/Edit mappings” 中 “Mapping name” 输入 user2_mapping。
在 “Create/Edit mappings” 中 表格中定义下面几项,然后 “Save mapping”
Alias     Key    Column family       Column      Type
ROW        Y                                     String
username   N     base                username    String
password   N     base                password    String
home       N     address             home        String
office     N     address             office      String

回到 “Configure query”,HBase table name” 选择 user2, “Mapping name” 选择 user2_mapping。
运行Transformations,然后检查结果。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值