sqoop2 尝试

进入客户端  sqoop2


show connector
show link
show job


update link -lid 5
update job -jid 3


1.create link 
hdfs link
create link --cid 3  
Name: hdfs
HDFS URI: ->hdfs://CDH1:8020

oracle link
create link --cid 4
Name: oracle
JDBC Driver Class: oracle.jdbc.driver.OracleDriver
JDBC Connection String: jdbc:oracle:thin:@10.10.10.10:1521:sid1
Username: ccd
Password: ******

2.create job
create job -f 5 -t 4  [from link_id to link_id]

Name: test_import
Schema name:
Table name: table_name
Table SQL statement:
Table column names:
Partition column name: table_id
Null value allowed for the partition column:
Boundary query:
Override null value:
Null value:
Output format:
  0 : TEXT_FILE
  1 : SEQUENCE_FILE
Choose: 0
Compression format:
  0 : NONE
  1 : DEFAULT
  2 : DEFLATE
  3 : GZIP
  4 : BZIP2
  5 : LZO
  6 : LZ4
  7 : SNAPPY
  8 : CUSTOM
Choose: 0
Custom compression format:
Output directory: /warehouse/table_name
Extractors: 2  [mapper num]
Loaders: 2     [reduce num]


3.run job
start job --jid 2


遇到的问题
1.驱动找不到
sqoop1 将驱动放在/opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/sqoop/lib
sqoop2 将驱动放在/var/lib/sqoop2
2.There is no column found in the target table, 
sqoop1中table name 需要大写
3.com.google.protobuf.InvalidProtocolBufferException CDH端口是8020,不是9000,
sqoop1的问题,sqoop2指定HDFS地址
4.No column is found to partition data
没有指定partition,会自动拿到表的primary key做为partition(从源码上看到的)。
如果表配置有错误,比如下面这种情况,直接抛出GENERIC_JDBC_CONNECTOR_0005异常。修改完下面这个问题,也就不会抛该异常了。
5. table or view does not exist,SELECT MIN(driver_id), MAX(driver_id) FROM ccd.tablename
在JDBC Connection String(jdbc:oracle:thin:@10.10.10.10:1521:sid1)中以及有sid的了,
所以在配置job的时候Schema name设置为空即可。


sqoop2[1.99.5]  默认分隔符是",",不能自定义,字段前后有"'"包住,看上去不适合作为hive数据。

你可能感兴趣的:(sqoop)