【发布时间】:2017-05-20 06:41:09
【问题描述】:
我是 nifi 的新手,我想将 SQL Server 数据库连接到 nifi 并使用处理器创建数据流。我该怎么做,谁能帮我解决这个问题。
提前致谢 山姆
【问题讨论】:
我是 nifi 的新手,我想将 SQL Server 数据库连接到 nifi 并使用处理器创建数据流。我该怎么做,谁能帮我解决这个问题。
提前致谢 山姆
【问题讨论】:
【讨论】:
如果您使用的是最新的 Hortonworks 沙箱,或其他使用 docker 容器的设置,请阅读下文。
您必须在 docker 中安装 JDBC jar 文件。 SQL Server 需要 6.2 以上。
docker ps
docker exec -it <mycontainer uuid> bash
cd file:///usr/lib/jvm/jre/lib/
mkdir jdbc
cd ./jdbc
wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./
jdbc:sqlserver://192.168.1.201:1433;databaseName=[your database]
com.microsoft.sqlserver.jdbc.SQLServerDriver
您可能需要将 IP 地址替换为在 Windows 中的 ipconfig 或 Mac/Linux 中的 ifconfig 下找到的主机的 IPv4 地址。
您可以将file:///usr/lib/jvm/jre/lib/ 更改为您想要的任何路径。
【讨论】:
如果您通过像 apache/nifi 这样的 docker 镜像或前面提到的 Hortonworks 沙箱运行 nifi,以下内容应该可以帮助您在镜像上获取所需的驱动程序,这样您就不需要 exec 进入容器来执行手动。
查看 docker 文件下面的 cmets
FROM apache/nifi
USER root
RUN mkdir /lib/jdbc
WORKDIR /lib/jdbc
RUN wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
RUN tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
RUN cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./
USER nifi
EXPOSE 8080 8443 10000 8000
WORKDIR ${NIFI_HOME}
ENTRYPOINT ["../scripts/start.sh"]
apache/nifi作为基础镜像。如果您愿意,可以使用任何具有基础的 nifi docker 映像。lib/jdbc 指定任何位置,只需记住您需要将此作为文件位置的引用,以便将其引用为file:///lib/jdbc/mssql-jdbc-6.2.2.jre8.jar
【讨论】:
Enabling 上。带有错误消息Can't load Database Driver。我可以尝试其他任何想法吗?
wget 中指定了不兼容的驱动程序,或者您需要在 NiFi 本身中指定的 jar 的位置是找不到