Trafodion Bulk Load 初试

Azkaban停留在 Logging initialized using configuration in jar:file:/application/cloudera/parcels/XXXXXX 现象 Azkaban停留在 Logging initialized using configuration in jar:file:/application/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/jars/hive-common-1.1.0-cdh5.16.2.jar!/hive-log4j.properties 一直不动 16-03-2022 05:00:12 CST tb_product_order_large_minutes INFO -.. 阅读详情

如在文章《Trafodion 数据加载介绍》中提到,Trafodion的Bulk Load与Tricke Load不同,Bulk Load主要是针对大数据量的且一般是批量装载的方式。Bulk Load通常使用LOAD语句实现。

下面介绍几种Bulk Load方式,

  • 从Trafodion表加载数据
  • 从HDFS文件加载数据(Hive外部表)
  • 从Hive表加载数据
  • 从外部数据库加载数据(Mysql to Hive)


从Trafodion表加载数据

(1)创建两个表结构相同的测试表

SQL>showddl test_tbl;


CREATE TABLE TRAFODION.SEABASE.TEST_TBL
  (
    ID                               INT NO DEFAULT NOT NULL NOT DROPPABLE
      SERIALIZED
  , NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.

SQL>showddl test_tbl2;


CREATE TABLE TRAFODION.SEABASE.TEST_TBL2
  (
    ID                               INT NO DEFAULT NOT NULL NOT DROPPABLE
      SERIALIZED
  , NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.

(2)表1有几条数据,表2没有数据

SQL>select * from test_tbl;

ID          NAME
----------- ----------
          1 LIU
          2 zhang
          3 LIU
          4 wu
          5 feng

--- 5 row(s) selected.

SQL>select * from test_tbl2;

--- 0 row(s) selected.

(3)从表1加载数据到表2

SQL>load into test_tbl2 select * from test_tbl;

UTIL_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------
Task: LOAD             Status: Started    Object: TRAFODION.SEABASE.TEST_TBL2
Task:  CLEANUP         Status: Started    Object: TRAFODION.SEABASE.TEST_TBL2
Task:  CLEANUP         Status: Ended      Object: TRAFODION.SEABASE.TEST_TBL2
Task:  PREPARATION     Status: Started    Object: TRAFODION.SEABASE.TEST_TBL2
       Rows Processed: 5
Task:  PREPARATION     Status: Ended      ET: 00:00:00.263
Task:  COMPLETION      Status: Started    Object: TRAFODION.SEABASE.TEST_TBL2
Task:  COMPLETION      Status: Ended      ET: 00:00:00.531

--- SQL operation complete.

SQL>select * from test_tbl2;

ID          NAME
----------- ----------
          1 LIU
          2 zhang
          3 LIU
          4 wu
          5 feng

--- 5 row(s) selected.


从HDFS文件加载数据(Hive 外部表)

(1)创建测试文件并利用scp或者其他方式上传到Hadoop Cluster上,内容如下

[centos@cent-1 tmp]$ cat test_table
Lucy,20,F
Jason,22,M
Stephen,21,M
Lily,19,F
Vincent,25,M

(2)将测试文件导入HDFS中

[hdfs@cent-1 ~]$ hadoop fs -mkdir -p /hive/test/test_tbl
[hdfs@cent-1 ~]$ hadoop fs -copyFromLocal /tmp/test_table /hive/test/test_tbl
[hdfs@cent-1 ~]$ hadoop fs -ls /hive/test/test_tbl
Found 1 items
-rw-r--r--   3 hdfs supergroup         57 2016-09-28 02:31 /hive/test/test_tbl/test_table

(3)在Trafodion中创建测试表

SQL>create table test_table ( name varchar(10), age int, sex varchar(1));

--- SQL operation complete.

SQL>showddl test_table;


CREATE TABLE TRAFODION.SEABASE.TEST_TABLE
  (
    NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  , AGE                              INT DEFAULT NULL SERIALIZED
  , SEX                              VARCHAR(1) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.


(4)在Hive中创建Hive外部表,指向前面对应的HDFS文件

[hdfs@cent-1 ~]$ hive

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/jars/hive-common-1.1.0-cdh5.4.8.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> create external table test_tbl (name string,age  int,sex  string) row format delimited fields terminated by ',' location '/hive/test/test_tbl';
OK
Time taken: 0.085 seconds
hive> show tables;
OK
test_tbl
Time taken: 0.364 seconds, Fetched: 1 row(s)

(5)加载数据到Trafodion表

SQL>load into test_table
+>select * from hive.hive.test_tbl;

UTIL_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------
Task: LOAD             Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  CLEANUP         Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  CLEANUP         Status: Ended      Object: TRAFODION.SEABASE.TEST_TABLE
Task:  PREPARATION     Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
       Rows Processed: 5
Task:  PREPARATION     Status: Ended      ET: 00:00:01.272
Task:  COMPLETION      Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  COMPLETION      Status: Ended      ET: 00:00:00.254

--- SQL operation complete.

SQL>select * from test_table;

NAME       AGE         SEX
---------- ----------- ----
Lucy                20 F
Jason               22 M
Stephen             21 M
Lily                19 F
Vincent             25 M

--- 5 row(s) selected.


从Hive表加载数据

(1)在Hive中创建测试表并插入几条数据

hive> describe hive_tbl;
OK
name                    string
age                     int
sex                     string
Time taken: 0.107 seconds, Fetched: 3 row(s)
hive> select * from hive_tbl;
OK
Lucy    20      F
Jason   22      M
Stephen 21      M
Time taken: 0.093 seconds, Fetched: 3 row(s)

(2)Trafodion中的表继续沿用上述测试表,先清空数据

SQL>purgedata test_table;

--- SQL operation complete.

SQL>showddl test_table;


CREATE TABLE TRAFODION.SEABASE.TEST_TABLE
  (
    NAME                             VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  , AGE                              INT DEFAULT NULL SERIALIZED
  , SEX                              VARCHAR(1) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL SERIALIZED
  )
;

--- SQL operation complete.

(3)从Hive加载数据到Trafodion

(注:在做从hive到trafodion数据加载的时候有几个参数可以配置,用来提升加载性能,如HIVE_MAX_STRING_LENGTH、ALLOW_INCOMPATIBLE_ASSIGNMENT

   典型的用法如下:

    CQD HIVE_MAX_STRING_LENGTH '1000'; --用于当列的最大长度为1KB时

    CQD ALLOW_INCOMPATIBLE_ASSIGNMENT 'ON'; --用于当有时间相关的列的时候

SQL>load into test_table select * from hive.hive.hive_tbl;

UTIL_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------
Task: LOAD             Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  CLEANUP         Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  CLEANUP         Status: Ended      Object: TRAFODION.SEABASE.TEST_TABLE
Task:  PREPARATION     Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
       Rows Processed: 3
Task:  PREPARATION     Status: Ended      ET: 00:00:00.390
Task:  COMPLETION      Status: Started    Object: TRAFODION.SEABASE.TEST_TABLE
Task:  COMPLETION      Status: Ended      ET: 00:00:00.447

--- SQL operation complete.

SQL>select * from test_table;

NAME       AGE         SEX
---------- ----------- ----
Lucy                20 F
Jason               22 M
Stephen             21 M

--- 3 row(s) selected.


从外部数据库加载数据(Mysql to Hive)

(1)在集群上安装并启动Sqoop,Sqoop安装步骤请参照其官方文档 点击打开链接


(2)下载mysql connector Jar包,并放到/var/lib/sqoop目录下


(3)在某台机器上安装Mysql,安装Mysql步骤此处不作详细说明


(4)在mysql数据中创建测试表,并插入几条数据

mysql> use test;
Database changed
mysql> create table test_tbl(name varchar(10), age int, sex char(1));
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
ERROR 1146 (42S02): Table 'test.test' doesn't exist
mysql> select * from test_tbl;
Empty set (0.00 sec)

mysql> insert into test_tbl values('Wang wei', 30, 'M');
Query OK, 1 row affected (0.00 sec)

mysql> insert into test_tbl values('Li ping', 29, 'F');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql>
mysql> select * from test_tbl;
+----------+------+------+
| name     | age  | sex  |
+----------+------+------+
| Wang wei |   30 | M    |
| Li ping  |   29 | F    |
+----------+------+------+
2 rows in set (0.00 sec)

(5)使用sqoop命令从mysql往hive导入数据

[hdfs@cent-2 ~]$  sqoop import --connect jdbc:mysql://localhost:3306/test --driver com.mysql.jdbc.Driver --username centos --table test_tbl --split-by name --hive-import --create-hive-table --hive-table test_tabl_hive
Warning: /opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
...
Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/jars/hive-common-1.1.0-cdh5.4.8.jar!/hive-log4j.properties
OK
Time taken: 3.052 seconds
Loading data to table default.test_tabl_hive
Table default.test_tabl_hive stats: [numFiles=4, totalSize=27]
OK
Time taken: 0.748 seconds

(6)从Trafodion或Hive Shell中查看数据是否导入成功

SQL>select * from hive.hive.test_tabl_hive;

NAME                                                                                                                             AGE         SEX                                                          
-------------------------------------------------------------------------------------------------------------------------------- ----------- --------------------------------------------------------------------------------------------------------------------------------
Li ping                                                                                                                                   29 F                                                            
Wang wei                                                                                                                                  30 M                                                            

--- 2 row(s) selected.






Hive 运维中遇到的问题 1、hive查询并行度问题 开发同事问为什么他的查询都是排队的 第一个完成后才会开始第二个 ,查询文档后找到这样一个参数 执行程序初始数 spark.dynamicAllocation.initialExecutors 刚开始是1 配置了2 之后开发同事反馈第三个开始排队 ,确认配置的有效 ......... 阅读详情

相关推荐

Hive中常见的错误

        小编用的Cloudera Manager搭建的集群,因为服务器升级,集群停掉之后再启动的时候遇到了各种问题。Hive是常用的大数据组件,在此小编特意整理了Hive在使用过程中常见的错误如下,以供大家参考~      由于造成错误的原因是多方面的,下面列举的这些可能解决过小编遇到过的错误,但不一定对读者遇到的错误有效,特此声明。1、执行/usr/bin/hive命令进入hive时遇到...

象在舞的技术专栏 2110

服务连接数据库提示“Table ‘test.User‘ doesn‘t exist”

查看到test库中包含user表,而没有User表,从业务中确认user表即为User表,则mysql数据库开启了大小写区分的功能,1. 修改mysql配置配置:vi /etc/mysql/mysql.conf.d/mysqld.cnf。注意:以上方法是有vi或vim编辑器的情况下做的,用容器跑起来的不存在vi/vim编辑器。4. 重启mysql服务:service mysql restart。登录到mysql‘数据库,进入到对应的库里,查看别=表。解决方案:修改区分大小写配置。修改完后,重启mysql。

nanhavezhi的博客 4387

doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析

原创转载请注明出处源码版本 5.7.14在MYSQL使用innodb的时候我们有时候会看到如下报错:ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist首先总结下原因:缺少frm文件innodb数据字典不包含这个表我们重点讨论情况2,因为情况1是显而易见的。?在使用innodb存储引擎的时候某些时候我们show tables能够看到这个表,...

weixin_36213934的博客 1711

CDH搭建手动启动Hive,出现Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security情况

Java HotSpot™ 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0 Java HotSpot™ 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8....

qq_43253147的博客 964

CENTO7.2安装CDH5.10和Kudu1.2(二)

5 Kudu 安装 CDH从5.10开始,打包继承Kudu1.2,并且Cloundera正式提供支持。这个版本开始Kudu的安装较之前要简单很多,省去Impala_Kudu,安装完Kudu,Impala即可直接操作Kudu。 以下安装步骤基于用户使用Clodera Manager来安装和部署Kudu1.2 5.1安装 文件 1.下载csd文件 [root@ip-172-31-2-159 ~]# ...

weixin_42438176的博客 569

azkaban 提交 yarn 任务等待

在azkaban 中出现 Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/jars/hive-common-1.1.0-cdh5.13.0.jar!/hive-log4j.properties 和 Query ID = hdfs_20190...

weixin_40809627的博客 1642

CDH6.3.2集成Kerberos

参考:https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cdh_sg_browser_access_kerberos_protected_url.html#topic_6_2__section_vj5_gwv_ls。禁用Kerberos,由于没有按钮可以直接操作,需要我们手动一个个修改开启了Kerberos的组件的配置。1.连接你的集群krb5kdc和kadmin服务所在的机器,复制/etc/krb5.conf中的配置。

热情、奔放、快乐编程! 1252

hbase常见错误

  hbase启动错误 org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: The identifier of this process is 4818@localhost85 [root@localhost86 local]# hbase shell HBase Shell; enter 'help<RETU...

奋斗的小鸟专栏 8656

hive常见错误及解决方案

1)SecureCRT 7.3出现乱码或者删除不掉数据,免安装版的SecureCRT 卸载或者用虚拟机直接操作或者换安装版的SecureCRT 2)连接不上mysql数据库 (1)导错驱动包,应该把mysql-connector-java-5.1.27-bin.jar导入/opt/module/hive/lib的不是这个包。错把mysql-connector-java-5.1.27.tar.gz导入hive/lib包下。 (2)修改user表中的主机名称没有都修改为%,而是修改为localhost

qqyang_的博客 4199

Hive使用HBaseBulkLoad导入Hbase

官网地址:HBaseBulkLoad - Apache Hive - Apache Software Foundation 概述: 如果数据量比较小,可以使用Hive和Hbase集成的方式(HBaseIntegration)完成数据的导入,同时通过Hive读取数据。集成方式如下: CREATE TABLE new_hbase_table(rowkey string, x int, y int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorage.

weixin_43721102的博客 769

oracle转mysql数据迁移

oracle转mysql数据迁移 一、 [Err] 1146 - Table ‘testfarm.TF_CAR_FRAME’ doesn’t exist linux的mysql区分大小写,数据库中的表名与输入的sql语句中的使用的表名大小写不一致导致的 如此表存在,则是linux的mysql区分大小写导致;如此表不存在,则看下一条方法 解决方法如下: <1>查找该mysql数据库的配置文件my.cnf的路径 <2>在my.cnf中的[mysqld]下,追加lower_case_tab

A初夏1的博客 782

Mysql数据库的使用总结之ERROR 1146 (42S02)

在使用mysql数据库过程中,遇到了错误ERROR 1146 (42S02):Table doesn’t exist,经过了两天,终于解决了这个问题。引起该错误的原因不同,对应的解决方法也不同。这里只针对我的情况进行一下说明。可能写的比较乱,希望你慢慢看,下面是我整个从犯错误到解决问题的整个过程,有助于你更好的了解相关知识。 先说一下发生该错误的情形。我是将别人的数据库目录下的data...

iteye_17963的博客 4545

Hbase的bulkload流程与实践

通常MapReduce在写HBase时使用的是方式,在 reduce 中直接生成 put 对象写入HBase,该方式在大数据量写入时效率低下(HBase 会 block 写入,频繁进行 flush、split、compact 等大量 IO 操作),并对HBase节点的稳定性造成一定的影响(GC 时间过长,响应变慢,导致节点超时退出,并引起一系列连锁反应),而HBase支持bulk load的入库方式,它是利用hbase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile。

小强签名设计 的博客 4003

hive 写入hbase bulkload

Hive 写入 HBase 的 Bulk Load 方法 在大数据处理和分析的场景中,Hive 和 HBase 是当前比较流行的数据存储解决方案。Hive 提供了一个对 SQL 查询的支持,而 HBase 则是一个列式存储的 NoSQL 数据库,适用于实时读取和写入的大规模数据集。本文将介绍如何通过 Hive 将数据批量加...

weixin_36733858的博客 290

HIve项目中常见错误,及修改办法

HIve项目中常见错误,及修改办法

lz_N_one的博客 1379

Hive数据导入hbase使用BulkLoad方式(spark和mapperReduce两种实现)

一、前言 在一些场景中需要把hive中的数据导入到hbase中做永久存储。hive与hbase数据交互一般有两种方式:1.hive和hbase建立起关联 2.把hive中的数据处理成hfile文件,然后通过bulkload导入到hbase。相比第一种方式,第二种方式效率更高,原因简单来说是HBase的数据是以HFile的形式存储在HDFS的,hive数据转为hfile文件后,可以通过b...

m0_37592814的博客 2502

java.sql.SQLSyntaxErrorException: Table 'test.student' doesn't exist

1. 问题:java.sql.SQLSyntaxErrorException: Table 'test.student' doesn't exist 2. 解决:连接数据库时java代码写错了 3. 感悟 这错误我都快哭了,我找了一天你信吗? ...

helloGirl 2万+

hive查看数据库里库的信息_Hive高阶之显示数据库名称和字段名

在hive中默认是不显示数据库的名称和数据表的字段名称的,这样我们在hive进行查询的时候就会发现不是很方便。默认hive的客户端执行方式如下:[root@node3 ~]# sudo -u hive hiveLogging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.15.2-1.cdh5.15....

weixin_39811842的博客 1887
上一篇: Trafodion Trickle Load 之 odb Load/Extract/Copy命令用法
下一篇: ANSI SQL 定义
数据源的港湾
博客等级 码龄10年 256粉丝 504原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值