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

标签 sql-server hadoop jdbc sqoop hue

我们安装了一个集群 Hadoop服务器,我们使用 Hue作为我们的接口(interface),我们的目标是从 MS SQL Server 获取数据至Hadoop .我们找到了一个教程here

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

enter image description here

最佳答案

我在 http://capnjosh.com/ 的帮助下找到了解决方案

  • 如果你在基于网络的界面中使用 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
    – 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)

  • 对于作业的操作:
  • 架构名称:我只是将其留空,然后粘贴到我想要的 TSQL 查询中
    – 如果你在下面指定一个 TSQL 语句,那么这需要为空
  • 表名:我将其留空,而是在 TSQL 中完成。
    – 如果你在下面指定一个 TSQL 语句,那么这需要为空
  • 表 SQL 语句:粘贴到您的查询中(您可以在 SSMS 中制作并粘贴到此处)。然后,将其附加到它的末尾:+and+${CONDITIONS}。 ${CONDITIONS} 扩展为您可以在此字段下方指定的分区列名称的某个值范围。
  • 表列名称:如果您想限制实际提取的列,请将它们放入。
  • 分区列名:确保以某种方式索引此列 - Sqoop 首先查询最小值和最大值,然后发出一系列查询,这些查询根据此列值返回所有行的均匀分布部分。例如交易表;我在分区列名称中指定交易日期列; sqoop 获取最小和最大日期; Sqoop 然后发出一系列查询,将 ${CONDITIONS} 替换为“where transDate >= '2015-01-01' and transDate < '2015-04-01'”(为每个查询移动该窗口)。可以发送每个查询从集群中的任何节点(尽管我打赌你可以限制那些节点)12. 分区列中的空值:如果你确实有空值,这有助于 Sqoop.13. 你可以手动指定 Sqoop 用来获取 min/的查询分区列名的最大值(默认情况下,它看起来像这样“select min(), max() from ()”。
  • 如果您弄乱了在 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/

    相关文章:

    c# - 这个 SQL 数据库错误在 C# 中意味着什么?

    python - 使用Python从HDFS目录中读取文件并在Spark中创建RDD

    java - Parquet .io.ParquetDecodingException : Can not read value at 0 in block -1 in file

    SQL 嵌套 CASE 语句

    sql-server - Hibernate 将 SQL Server 日期部分视为列而不是关键字

    c# - 如何在存储过程中将 DateTime 格式传递给 MS sql server?

    hadoop - Hive 查询从边缘节点运行

    java - Tomcat 数据库连接 Derby

    java - 我的 sql jdbc 方法可以免受 sql 注入(inject)攻击吗?

    mysql - 将字符串转换为 SQL 日期类型