jdbc驱动程序类

u2nhd7ah  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(531)

我们安装了一个集群 Hadoop 服务器和我们使用的 Hue 作为我们的接口,我们的目标是从 MS SQL ServerHadoop . 我们在这里找到了一个教程
但是我得到以下错误 Hue

kgsdhlau

kgsdhlau1#

我在他的帮助下找到了解决办法http://capnjosh.com/
如果您在基于web的界面中使用sqoop,那么实际上您使用的是sqoop2
您必须自己下载并安装用于sql server的jdbc驱动程序-curl-l'http://download.microsoft.com/download/0/2/a/02aae597-3865-456c-ae7f-613f99f850a8/sqljdbc_4.0.2206.100_enu.tar.gz“| tar xz–sudo cp sqljdbc_4.0/enu/sqljdbc4.jar/var/lib/sqoop2/–当您在使用时,您也可以将它放在sqoop目录中:sudo cp sqljdbc_.0/enu/sqljdbc4.jar/var/lib/sqoop/
sqoop2主目录是/var/lib/sqoop2/
在jdbc驱动程序文件中复制后重新启动sqoop2服务
5a级。”连接器“是一个sqoop的东西,它是如何与hadoop中的各种进程通信的。除非你有更多的经验,它应该只是“通用jdbc连接器”
第5b条。类路径是“com.microsoft.sqlserver.jdbc.sqlserverdriver”
“管理连接”中的连接字符串如下所示:jdbc:sqlserver://192.168.1.102:1433(虽然端口号默认为1433)
对于作业的操作:
schema name:我只是把它保留为空,而是粘贴到我想要的tsql查询中——如果您在下面指定了一个tsql语句,那么它就需要为空
表名:我将此项留空,而是在tsql中执行所有操作如果您在下面指定一个tsql语句,那么它需要为空
tablesql语句:粘贴到查询中(您可以在ssms中创建它并粘贴到这里)。然后,将其附加到它的末尾:+和+${conditions}${conditions}展开为可以在此字段下面指定的分区列名的某个值范围。
表列名:如果要限制实际提取的列,请将它们放入。
分区列名:确保以某种方式对该列进行索引–sqoop首先查询最小值和最大值,然后发出一系列查询,根据该列值返回所有行的均匀分布部分。e、 g.交易表;在分区列名中指定事务日期列;sqoop获取最小和最大日期;然后,sqoop发出一系列查询,将${conditions}替换为“where transdate>='2015-01-01'和transdate<'2015-04-01'”(为每个查询移动该窗口)。每个查询都可以从集群中的任何节点发送(尽管我打赌您可以限制这些节点是哪些节点)12。分区列中的空值:如果确实有空值,这有助于sqoop.13。您可以手动指定sqoop用来获取分区列名的min/max的查询(默认情况下,它看起来像“select min(),max()from()”。
如果您弄乱了在hue/sqoop2中创建的连接,请注意,您必须再次键入密码
如果出现错误,不要与之抗争–必须通过ssh登录并查看/var/log/sqoop2/sqoop2.log
如果您的作业失败,并且在您要查询的sql server上的sql server profiler中,您只会看到带有“where…(1=0)…”的查询。在这些查询中,请检查防火墙规则:群集中的所有节点都需要能够与sql server示例对话。是的,sqoop将在集群中分发各种分区查询:)

相关问题