Hbase通过 Mapreduce 写入数据到Mysql

php中文网
发布: 2016-06-07 15:52:18
原创
1700人浏览过

我们可能会有一个疑问,hadoop是一种分布式存储和分布式计算的一个开源项目,而mapreduce 也是基于此的一个分布式计算的模型,而基于分布式存储的列存储数据库hbase应该是我们要讨论的话题,为什么会说到mysql 其实Hbase 存储的数据时一些量大简单而有规则的

我们可能会有一个疑问,hadoop是一种分布式存储和分布式计算的一个开源项目,而mapreduce 也是基于此的一个分布式计算的模型,而基于分布式存储的列存储数据库hbase应该是我们要讨论的话题,为什么会说到mysql

          其实Hbase 存储的数据时一些量大简单而有规则的数据,但关系型数据库也有他的优势,那就是提供了友好的方面我们操作的用户接口,我们可以实现简单的查询。并且数据本身并不大,而我们又需要对此数据进行各种复杂的分析和查询,那关系型数据库则帮我们实现。

          从Hbase map出数据如何写入Mysql 从网上查估计也能查询到,但是可能不太友好,我做了一个简单的例子,贴出来供大家参考,希望对大家有些帮助。

习惯从main 方法谈起 看代码:

public static void main(String[] args) throws Exception {
   Configuration conf = HBaseConfiguration.create();
//在此我用到了 旧的API ,因为我从资料上找不出新的API中有支持DBOutputFormat 的接口或者方法

//希望大家 如果了解这方面的 给我提出意见 我也了解一下新的API中如何实现此功能

  JobConf job = new JobConf(conf,CopyHbaseData2Mysql.class);

//设定Job 输入类型为 TableInputFormat.class

job.setInputFormat(TableInputFormat.class);

//旧的API 没有 设置输入表的地方,如果看过Hadoop TableInputFormat 的源码 就可以看到下面两个参数 可以设定 输入表 和查询hbase 的columns

Psky企业网站系统1.1.2
Psky企业网站系统1.1.2

Psky企业网站是基于PHP+MYSQL开发的一款企业官网宣传网站,支持PC、wap浏览。 主要功能包括导航管理、轮播新闻、单位动态、通知通报、单位简介、后台管理等。运行环境下载安装PHPStudy(小皮)即可。系统采用PHP语言(版本:7.3.4nts)和MYSQL(版本:5.7.26)数据库进行开发,安装PHPStudy(小皮)集成环境进行测试通过。安装步骤:1、导入SQL文件到PHPmyad

Psky企业网站系统1.1.2 2
查看详情 Psky企业网站系统1.1.2

  job.set("mapred.input.dir", "hbase_table");
  job.set("hbase.mapred.tablecolumns", "info:column");//查询column

//下面两个方法是map 的输入的key 和value 类型
  job.setMapOutputKeyClass(ImmutableBytesWritable.class);
  job.setMapOutputValueClass(ImmutableBytesWritable.class);
  //设定 输入类型为 DBOutputFormat.class

job.setOutputFormat(DBOutputFormat.class);
// 下面是配置 mysql  驱动以及 用户名密码

//此时一定要注意不论是编译还是 打包,都必须把mysql的驱动加入的环境变量中

//此处还要注意的是 192.168.10.10 如果是在本机跑,一定要注意你的mysql 用户是否支持远程访问,不然 会拒绝连接
  DBConfiguration.configureDB(job, "com.mysql.jdbc.Driver", "jdbc:mysql://192.168.10.10/test", "username", "password");

//下面是 输入表以及相应字段的设定
  String[] fields = {"id","username"};
  DBOutputFormat.setOutput(job, "user_info", fields);

//设定Map和Reduce
    job.setMapperClass(MyMapper.class);
  job.setReducerClass(MyReducer.class);

//run
  JobClient.runJob(job);

 }

其实写到这基本上就把具体的流程全部写出来了,候选的map 和reduce 根据大家相关的业务大家自己组织,但是还有一个重要的概念,此处的

我们的输入 为 :DBWritable 为此类为一个接口,并没有实现,所以我们要使用的时候必须 实现这个接口,去实现自己的 Writable类

先不做介绍了。

后续我会把实现DBWritable 的类也贴出来,如果认为有需要的话

贴出来 欢迎大家板砖,本人也是学习没多久,希望大家踊跃提意见,也好提高自己

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号