通过sqoop操作在oozie中列出mssqlserver表

guicsvcw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(410)

我能够在cli中完美地执行以下sqoop命令。

sqoop list-tables
--connect 'jdbc:sqlserver://xx.xx.xx.xx\MSSQLSERVER2012:1433;username=usr;password=xxx;database=db'
--connection-manager org.apache.sqoop.manager.SQLServerManager
--driver com.microsoft.sqlserver.jdbc.SQLServerDriver 
-- --schema schma

但在oozie(色调)中尝试相同的方法时出错
2055[main]error org.apache.sqoop.manager.catalogquerymanager-未能列出表java.sql.sqlexception:找不到适合的驱动程序'jdbc:sqlserver://xx.xx.xx.xx\mssqlserver2012:1433;用户名=usr;密码=;数据库=db'

2057[main]error org.apache.sqoop.sqoop-运行sqoop时出现异常:java.lang.runtimeexception:java.sql.sqlexception:找不到适合的驱动程序'jdbc:sqlserver://xx.xx.xx.xx\mssqlserver2012:1433;用户名=usr;密码=;数据库=db'
我们怎样才能让它在oozie工作(在cloudera hadoop发行版上工作)

vawmfj5a

vawmfj5a1#

我使用CDH5.11和hue工作流编辑器创建了一个oozie>sqoop1工作流…但是它需要你硬编码用户名和密码参数。。。屏幕截图包括在下面。
以下是步骤:
打开“色调>工作流编辑器”(hue>workflow editor)
创建新工作流
将sqoop1操作拖到“dropyourcaction here”灰色框中。
忽略默认的sqoop命令框,而是点击sqoop命令框下参数右侧的+来添加新参数。
添加不带双引号的“import”作为第一个参数。
删除sqoop命令框的全部内容,它需要为空。
添加一个值为“--connect”且不带双引号的新参数。
添加值为“”的新参数jdbc:sqlserver://yourservername此处;database=yourdatabasename此处“
添加值为“--username”的新参数
添加值为“yoursqlservernamedUserName”的新参数
添加值为“--password”的新参数
添加值为“--query”的新参数
添加一个值为“select*from optionaldbnamehere.schemanamehere.tablenamehere where$conditions”的新参数
添加值为“--delete target dir”的新参数
添加值为“--target dir”的新参数
添加值为“”的新参数hdfs://fdqservername:portnumber8020isdefault/user/full/path/to/where/you/want/the/csv/file/placed/in/hdfs/newfolderforthistablehere“--每次运行sqoop作业时,都将删除并重新创建最后一个文件夹。
添加值为“num mappers”的新参数
添加值为“1”的新参数
重要提示:
答。“where$conditions”对于在第13项中的sql select语句的末尾具有重要作用。没有它就跑不动。
b。这将使用一个名为sqlserver的用户帐户,该帐户可以访问dbserver数据库和要sqoop的表。
b。如果命名用户的默认模式未设置为“dbo”,或者表的模式不是数据库和用户的默认模式,则需要输入这样的参数。
c。sql server jdbc驱动程序已正确放置在安装中。对于我的cloudera的特定版本,位置是:“/opt/cloudera/parcels/cdh-5.11.0-1.cdh5.11.0.p0.34/lib/sqoop/lib/sqljdbc41.jar”,但是您也可以尝试将它放在“/var/lib/oozie”或“/var/lib/sqoop”中……不确定这两种方法是否各自有效。
d。我没有成功地用job.properties文件中的值替换硬编码为参数的用户名和密码。我相信这是可能的,但我一直找不到任何人谁可以清楚地表明如何做到这一点和暴力审判和错误的天都没有成功。
下面是截图,显示了完成后的效果。sqoopcommandasargumentssqoopcommandasargumentssuccess命令

相关问题