还是关于hbase

查看数: 8092 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-9-4 16:23

正文摘要:

本帖最后由 remarkzhao 于 2017-9-4 16:28 编辑 各位大神: 从sqlserver里拉过来的dataframe  写入hbase 代码如果下:  见图片    问题:        1 ...

回复

remarkzhao 发表于 2017-9-5 15:21:47
einhep 发表于 2017-9-5 15:17
列簇的,不过应该不需要转换二进制,直接字符串即可,另外setMaxVersions这个100个,也有点多啊。可以设 ...

恩。这个100跟10到问题不大。我刚才用java构造了一个数据 写入 ,没有问题。

for (int i = 0; i < 10; i++) {
    Put put = new Put("001".getBytes());

    put.add("cf1".getBytes(), "colum1".getBytes(), "value1".getBytes());

    HTable table = new HTable(configuration, tablename);
    table.put(put);}
这样插入是没有问题的。put 一条一条来。
einhep 发表于 2017-9-5 15:17:48
remarkzhao 发表于 2017-9-5 13:53
http://blog.csdn.net/lifuxiangcaohui/article/details/39997205

这个就是列族啊。 不过你给了我一个 ...

列簇的,不过应该不需要转换二进制,直接字符串即可,另外setMaxVersions这个100个,也有点多啊。可以设置为10
tableDesc.addFamily(new HColumnDescriptor(family.getBytes()).setMaxVersions(100))


remarkzhao 发表于 2017-9-5 13:53:25
yuwenge 发表于 2017-9-5 13:19
def createHTable(tablename: String,family: String,jobConf: JobConf): Unit={

    val conn = Conn ...

http://blog.csdn.net/lifuxiangcaohui/article/details/39997205

这个就是列族啊。 不过你给了我一个提醒。。版本是对什么而言,对列还是列族?
yuwenge 发表于 2017-9-5 13:19:11
remarkzhao 发表于 2017-9-5 08:37
多谢了。昨儿睡的早。。还有大神有自己的看法嘛??

def createHTable(tablename: String,family: String,jobConf: JobConf): Unit={

    val conn = ConnectionFactory.createConnection(jobConf)
    try {
      val admin = conn.getAdmin
      val tableName = TableName.valueOf(tablename)
      if (!admin.tableExists(tableName)) {
        print("Table Not Exists! Create Table")
        val tableDesc = new HTableDescriptor(tableName)
        val hColumnDescriptor = new HColumnDescriptor(family.getBytes())
        hColumnDescriptor.setMaxVersions(100)
        tableDesc.addFamily(hColumnDescriptor)
        admin.createTable(tableDesc)
        print("New Table Created Successfully!")
      } else {
        print("Table  Exists!  Drop the Table and Create!")
        val tableDesc = new HTableDescriptor(tableName)
        admin.disableTable(tableName)
        admin.deleteTable(tableName)
        tableDesc.addFamily(new HColumnDescriptor(family.getBytes()).setMaxVersions(100))
        admin.createTable(tableDesc)
        print("New Table Created!")

      }
    }finally {
      conn.close()
    }
  }
family.getBytes()).setMaxVersions(100)
这个应该是列

remarkzhao 发表于 2017-9-5 08:37:18
yuwenge 发表于 2017-9-4 22:35
今天有点晚了,明天再帮你看下。

多谢了。昨儿睡的早。。还有大神有自己的看法嘛??
yuwenge 发表于 2017-9-4 22:35:06

今天有点晚了,明天再帮你看下。
remarkzhao 发表于 2017-9-4 20:36:08
懊恼ing
remarkzhao 发表于 2017-9-4 19:28:50
yuwenge 发表于 2017-9-4 18:14
shell跟代码是一样的。证明这样是没有问题的.跟踪下自己的代码。或则自己粗心,导致rowkey不一样。而非覆 ...

忘了说了 我hbase版本是1.1.11    hadoop是2.6.1
remarkzhao 发表于 2017-9-4 19:24:02
  def createHTable(tablename: String,family: String,jobConf: JobConf): Unit={

    val conn = ConnectionFactory.createConnection(jobConf)
    try {
      val admin = conn.getAdmin
      val tableName = TableName.valueOf(tablename)
      if (!admin.tableExists(tableName)) {
        print("Table Not Exists! Create Table")
        val tableDesc = new HTableDescriptor(tableName)
        val hColumnDescriptor = new HColumnDescriptor(family.getBytes())
        hColumnDescriptor.setMaxVersions(100)
        tableDesc.addFamily(hColumnDescriptor)
        admin.createTable(tableDesc)
        print("New Table Created Successfully!")
      } else {
        print("Table  Exists!  Drop the Table and Create!")
        val tableDesc = new HTableDescriptor(tableName)
        admin.disableTable(tableName)
        admin.deleteTable(tableName)
        tableDesc.addFamily(new HColumnDescriptor(family.getBytes()).setMaxVersions(100))
        admin.createTable(tableDesc)
        print("New Table Created!")

      }
    }finally {
      conn.close()
    }
  }   这个是建表。
关闭

推荐上一条 /2 下一条