大数据平台Sqoop访问NetSuite设置

1.下载JDBC驱动程序(Linux64)

参考:下载链接驱动程序

2.安装用于Linux的JDBC驱动程序

1)下载完成后,将.zip文件的内容提取到所需的位置。

2)在提取.zip文件内容的位置中,找到NQjc.jar文件。该文件包含可通过将NQjc.jar文件添加到类路径中来在Java环境中注册的驱动程序

参考:安装用于Linux的JDBC驱动程序

sudo cp NQjc.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/sqoop/lib/

sudo cp NQjc.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hadoop/lib/

sudo -u hdfs hadoop fs -putNQjc.jar /user/oozie/share/lib/lib_20200313175221/sqoop/

#分发到其他设备

xsync /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hadoop/lib/

xsync /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/sqoop/lib/

3.Sqoop访问NS测试

sqoop list-databases \

--driver com.netsuite.jdbc.openaccess.OpenAccessDriver \

--connect "jdbc:ns://4857309.connect.api.netsuite.com:1708;ServerDataSource=NetSuite.com;encrypted=1;NegotiateSSLClose=false;CustomProperties=(AccountID=4857309;RoleID=1035)"  \

--username xxxx \

--password xxxx \

 

sqoop list-tables \

--driver com.netsuite.jdbc.openaccess.OpenAccessDriver \

--connect "jdbc:ns://4857309.connect.api.netsuite.com:1708;ServerDataSource=NetSuite.com;encrypted=1;NegotiateSSLClose=false;CustomProperties=(AccountID=4857309;RoleID=1035)"  \

--username xxxx \

--password xxxx \

4.同步数据测试

编写脚本,通过Hue+Oozie构建工作流,运行测试

#!/bin/bash

#db_date=$2
#echo $db_date
db_name=Full_Access_Read_Only

import_data(){
sqoop import --driver com.netsuite.jdbc.openaccess.OpenAccessDriver \
--connect "jdbc:ns://xxxxx:1708;ServerDataSource=NetSuite.com;encrypted=1;NegotiateSSLClose=false;CustomProperties=(AccountID=xxx;RoleID=xxx)" \
--username xxxxxx \
--password xxxxxx \
--target-dir /origin_data/$db_name/db/$1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query "$2"' and $CONDITIONS;'
}

import_accounts(){
import_data "accounts" "SELECT * FROM ACCOUNTS WHERE 1=1"
}

case $1 in
"accounts")
import_accounts
;;
"all")
import_accounts
;;
esac

查看HDFS目录,数据已经生成

大数据平台Sqoop访问NetSuite设置_第1张图片

5.问题

脚本运行,一直报错,百思不得其解

ERROR tool.BaseSqoopTool: Error parsing arguments for import:
ERROR tool.BaseSqoopTool: Unrecognized argument:

大数据平台Sqoop访问NetSuite设置_第2张图片

原因分析:编写的脚本‘\’后面多了一个空格

大数据平台Sqoop访问NetSuite设置_第3张图片

解决方案:删除多余空格重新运行工作任务通过

 

你可能感兴趣的:(Sqoop)