chunjun icon indicating copy to clipboard operation
chunjun copied to clipboard

读取mysql数据写到hbase时报异常

Open shaolei7788 opened this issue 3 years ago • 3 comments

mysql表字段是int类型 在jdbc阶段转为BigDecimalColumn ,但是在hbase写入阶段又没有对应的类型,就会抛异常

shaolei7788 avatar May 23 '22 10:05 shaolei7788

@shaolei7788 方便提供下报错信息和脚本情况;

zoudaokoulife avatar May 23 '22 10:05 zoudaokoulife

mysql 表结构 create table emp ( EMPNO int primary key, ENAME varchar(10) , JOB varchar(9) , MGR double , HIREDATE date , SAL double , COMM double , DEPTNO int );

INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-07-13', 3000, null, 20); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-07-13', 1100, null, 20); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, null, 20); INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10);

hbase 表 create ‘emp’,‘info’

========json =========

{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": [ { "name": "comm", "type": "DOUBLE" }, { "name": "deptno", "type": "INT" }, { "name": "empno", "type": "INT" }, { "name": "ename", "type": "VARCHAR" }, { "name": "hiredate", "type": "DATE" }, { "name": "job", "type": "VARCHAR" }, { "name": "mgr", "type": "DOUBLE" }, { "name": "sal", "type": "DOUBLE" } ], "connection": [ { "jdbcUrl": [ "jdbc:mysql://ip:3306/test?useSSL=false" ], "table": [ "emp" ] } ], "password": "root", "username": "root" } }, "writer": { "name": "hbasewriter", "parameter": { "hbaseConfig": { "hbase.zookeeper.property.clientPort": "2181", "hbase.rootdir": "hdfs://hadoop1:9000/hbase", "hbase.cluster.distributed": "true", "hbase.zookeeper.quorum": "hadoop1,hadoop2,hadoop3", "zookeeper.znode.parent": "/hbase" }, "table" : "emp", "nullMode" : "skip", "walFlag": false, "writeBufferSize" : 1000, "changeLog": "tb1", "rowkeyExpress" : "$(info:EMPNO)_$(info:ENAME)", "column": [ { "name": "info:COMM", "type": "DOUBLE" }, { "name": "info:DEPTNO", "type": "int" }, { "name": "info:EMPNO", "type": "int" }, { "name": "info:ENAME", "type": "STRING" }, { "name": "info:HIREDATE", "type": "STRING" }, { "name": "info:JOB", "type": "STRING" }, { "name": "info:MGR", "type": "int" }, { "name": "info:SAL", "type": "DOUBLE" } ] } } } ], "setting": { "speed": { "channel": 1, "bytes": 0 } } } }

问题是必现的

shaolei7788 avatar May 24 '22 02:05 shaolei7788

1653359187(1)

shaolei7788 avatar May 24 '22 02:05 shaolei7788