分享

回归本质……sqlserver拉数据到hbase

remarkzhao 发表于 2017-7-28 09:23:58 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 15 9201
各位大神:

     求最高效的sqlserver拉表到hbase的
     要求:1.不要使用mapreduce原理的执行方法(慢)
              2.可以任意指定表的某个字段为rowkey (可能我的sqlserver表中第三个字段是rowkey)
              3.可以不用提前在hbase里建表 (我的每张表基本有50多个字段。)

望不吝赐教,搞了快3天了。没有找到合适的方法。

已有(15)人评论

跳转到指定楼层
hyj 发表于 2017-7-28 11:21:05
一键搞定最好了。三天没搞定正常。过于急于求成,只会走更多的弯路。除了临时表不用建,所有的表都必须创建。不管你用不用mapreduce.所有的必须有一个过程。你有熟悉的大数据技术吗。方案也比较多,比如直接加载bulkload文件等,通过spark.hasoop都是可以的
回复

使用道具 举报

remarkzhao 发表于 2017-7-28 11:31:09
hyj 发表于 2017-7-28 11:21
一键搞定最好了。三天没搞定正常。过于急于求成,只会走更多的弯路。除了临时表不用建,所有的表都必须创建 ...

版主大大   我知道错了……我觉得表还是要建在hbase里。bulkload底层实现也是mapreduce job  所以这个已被我排除掉了。 另外还有一个是phoenix 这个我这几天看了一下 既可以写sql语句去查询hbase,但是还是被我排除掉了,我觉得无缘无故在hbase上还有加个外套应该会不舒服,尽管搜狗跟阿里在用这个。 最后我选定的方案是它 https://hbase.apache.org/book.html#_sparksql_dataframes   请看86.。但是怎么试都失败……我就气馁了……

回复

使用道具 举报

hyj 发表于 2017-7-28 11:32:53
有思想和想法是好的,但是需要先学习技术,熟悉规则,想法要有依据。
回复

使用道具 举报

remarkzhao 发表于 2017-7-28 11:34:12
hyj 发表于 2017-7-28 11:32
有思想和想法是好的,但是需要先学习技术,熟悉规则,想法要有依据。

好吧。。你有看到我的回复吗???你有试过这种没 ?https://hbase.apache.org/book.html#_sparksql_dataframes
回复

使用道具 举报

desehawk 发表于 2017-7-28 11:35:26
sqoop应该可以指定rowkey
回复

使用道具 举报

remarkzhao 发表于 2017-7-28 11:36:03
desehawk 发表于 2017-7-28 11:35
sqoop应该可以指定rowkey

是的。。但已经被我放弃……
回复

使用道具 举报

fly2015 发表于 2017-7-28 11:48:51
java  Api  就行
回复

使用道具 举报

langke93 发表于 2017-7-28 13:08:17
remarkzhao 发表于 2017-7-28 11:34
好吧。。你有看到我的回复吗???你有试过这种没 ?https://hbase.apache.org/book.html#_sparksql_data ...

<!-- https://mvnrepository.com/artifa ... base-connector_2.10 -->
<dependency>
    <groupId>it.nerdammer.bigdata</groupId>
    <artifactId>spark-hbase-connector_2.10</artifactId>
    <version>1.0.3</version>
</dependency>
通过maven下载spark-hbase-connector_2.10,然后在根据文章操作。哪里不明白,可以讨论

回复

使用道具 举报

remarkzhao 发表于 2017-7-28 13:14:21
langke93 发表于 2017-7-28 13:08
it.nerdammer.bigdata
    spark-hbase-connector_2.10
    1.0.3

好啊。我现在有2个问题:

1. 我的dataframe是直接从sqlserver去拉 不用自己构造数据   这样就可以
val jdbcDF = spark.read.format("jdbc").option("url","jdbc:sqlserver://192.168.1.21;username=sa;password=yishidb;database=CDRDB16").option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver").option("dbtable","DC_PATIENT").load()     
这的话  我是不是构造一个catalog之后就可以直接写 :jdbcDF.write.options(Map(HBaseTableCatalog.tableCatalog -> catalog, HBaseTableCatalog.newTable -> "5")).format("org.apache.hadoop.hbase.spark ").save()

2. 如果1成立,我是不是可以自己定义某个字段为rowkey?



回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条