我们安装了集群的Hadoop服务器,并使用Hue作为我们的界面,我们的目标是将数据从MS SQL Server压缩到Hadoop。我们找到了一个教程here

但是我在Hue中收到以下错误

sql-server - 在Hue中找不到用于MS SQL Server的JDBC驱动程序类-LMLPHP

最佳答案

我在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” |焦油xz
    – sudo cp sqljdbc_4.0 / enu / sqljdbc4.jar / var / lib / sqoop2 /
    –进行操作时,也可以将其也放置在sqoop目录中:sudo cp sqljdbc_4.0 / enu / sqljdbc4.jar / var / lib / sqoop /
  • Sqoop2主目录为/ var / lib / sqoop2 /
  • 复制到JDBC驱动程序文件
  • 后,重新启动Sqoop2服务

    5a。 “连接器”是Sqoop的东西,用于说明它如何与Hadoop中的各种流程进行通信。除非您有很多经验,否则应该只是“generic-jdbc-connector”

    5b。类路径为“com.microsoft.sqlserver.jdbc.SQLServerDriver”
  • “管理连接”中的连接字符串如下:jdbc:sqlserver://192.168.1.102:1433(尽管端口号默认为1433)

  • 对于工作的 Action :
  • 架构名称:我只是将其保留为空白,而是粘贴到我想要的TSQL查询中
    –如果在下面指定一个TSQL语句,则该字段必须为空
  • 表名:我将此留空,而在TSQL中全部完成。
    –如果在下面指定一个TSQL语句,则该字段必须为空
  • 表SQL语句:粘贴到您的查询中(您可以在SSMS中制作它并将其粘贴到此处)。然后,将其附加到末尾:+ and + $ {CONDITIONS}。 $ {CONDITIONS}扩展为您可以在此字段下方指定的“分区列”名称的某些值范围。
  • 表列名:如果要限制实际提取的列,则将它们放入。
  • 分区列名称:确保以某种方式为该列建立索引– Sqoop首先查询最小值和最大值,然后发出一系列查询,这些查询基于此列值返回所有行的均匀分布部分。例如交易表;我在分区列名称中指定交易日期列; sqoop获取最小和最大日期;然后,Sqoop发出一系列查询,将$ {CONDITIONS}替换为“where transDate> ='2015-01-01'和transDate
  • 如果您破坏在Hue / Sqoop2中创建的连接,请注意,您必须再次输入密码
  • 如果遇到错误,请不要打扰–您必须通过SSH登录并查看/var/log/sqoop2/sqoop2.log
  • (如果您的作业失败),并且在您正在查询的SQL Server的SQL Server Profiler中,您仅看到查询中带有“where…(1 = 0)…”的查询,请检查您的防火墙规则:群集中的所有节点都需要以便能够与SQL Server实例对话。是的,Sqoop将在您的集群中分布各种分区查询:)
  • 关于sql-server - 在Hue中找不到用于MS SQL Server的JDBC驱动程序类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34295919/

    10-13 00:05