由于公司业务上的需求,需要实时监控mysql数据库的数据的增长,并将数据同步到另一个平台,所以就问老大使用什么工具比较好,老大推荐使用StreamSets,还说在测试环境都已经部署好了StreamSets,所以就开始写了第一个测试。

  数据库版本:5.6.35 MySQL Community Server (GPL)

  jdbc版本:5.1.6

  StreamSets版本:3.3.0

  由于我要监控mysql,所以这里选择的ORIGINS是JDBC Query Consumer,接下来按照官网上的步骤:

  1.配置环境变量  

  2.安装jdbc

  具体参考这篇博客:

  https://blog.csdn.net/u012551524/article/details/78492939

  3.配置参数

  

   配置用户名,密码:

  

  配置驱动类:

  

  4.点击preview,报如下错误:

  com.zaxxer.hikari.pool.PoolInitializationException: Exception during pool initialization: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

  网上看到的解决方法:

  https://blog.csdn.net/u012228009/article/details/54095421

  就是把JDBC Connection String改为:jdbc:mysql://192.168.5.22/test?autoReconnect=true&testOnBorrow=true&validationQuery=select 1,但是对我这个没有帮助,但是报的错误却变了,如下:

  Exception during pool initialization: Communications link failure Last packe

  以为是数据库连接池的问题,于是修改mysql的配置文件my.cnf中添加如下参数:

  wait_timeout=31536000

  interactive_timeout=31536000

  依然没什么卵用。。。

  最后仔细检查了下日志,发现日志中最后有一个错误:

  Caused by: java.net.SocketException: java.security.AccessControlException: access denied ("java.net.SocketPermission" "192.168.5.22:3306" "connect,resolve")

  靠,mmp,原来是java安全策略的问题,查看官网中TROUBLESHOOTING的JDBC Origins中:

  

这里附上官网地址(https://streamsets.com/documentation/datacollector/latest/help/index.html#datacollector/UserGuide/Troubleshooting/Troubleshooting_title.html#concept_ggx_s23_ks)  

于是在/opt/jdk1.8.0_161/jre/lib/security/java.policy(这个根据自己的jdk位置确定路径)中添加如下内容: 

  // user-defined external directory
  grant codebase "file:///opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/-" {
  permission java.security.AllPermission;
  };(注释:上面的file路径要根据自己sdc-extras存放的路径确定)

添加完这个之后连接数据库的问题算是解决了,但是又报了下面的错误,mmmmmmmmmmmp

  Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

  for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=1' at line 1

  

  这个是原因是mysql 5.6中已经不再支持OPTION SQL_SELECT_LIMIT=1这个参数, 而我又使用了低版本的jdbc驱动,所以就报了这个错误,从新去mvn库中下载mysql-connector-java-5.1.46.jar,成功解决

最后,总结一下:

  其实最开始的两个错误都不是本质错误,那个java安全策略的错误才是原因,看来以后报错还是要看日志啊,而且要看最后一个错误,英语也不太好,

但是,硬着头皮看了下官方文档,差不读能看懂70%,还不错,希望以后更加细心

  

StreamSets小白踩过的一些坑的更多相关文章

  1. 与webview打交道中踩过的那些坑

    随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...

  2. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

  3. 【Fine原创】JMeter分布式测试中踩过的那些坑

    最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...

  4. 美团在Redis上踩过的一些坑-目录(本人非美团)(转)

    来自:http://carlosfu.iteye.com/blog/2254154 分为5个部分:    一.周期性出现connect timeout    二.redis bgrewriteaof问 ...

  5. 安装python爬虫scrapy踩过的那些坑和编程外的思考

    这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬虫的比较发现开源爬虫scrapy比较好用.但是以前一直用的java和php,对python不熟悉,于是花一天时 ...

  6. [原创]阿里云RocketMQ踩过的哪些坑

    由于公司的最近开始使用RocketMQ来做支付业务处理, 便开启了学习阿里云RocketMQ的学习与实践之路, 其中踩了不少的坑, 大部份是由于没有仔细查看阿里云的技术文档而踩的坑. 但是有一个非常大 ...

  7. Spring Cloud 升级最新 Finchley 版本,踩了所有的坑!

    Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 ...

  8. Redis上踩过的一些坑

    来自: http://blog.csdn.net//chenleixing/article/details/50530419 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DB ...

  9. Android Camera开发经验总结以及踩过的那些坑

    写在开头 需求方:上传试卷的时候,用户自己拍的照片有很多问题.如:不清晰.图片歪了.错误图片等.我们要是能够对拍摄照片进行识别处理就好了,能够裁切矫正就更好了,最好可以像二维码扫描一样,直接识别处理- ...

随机推荐

  1. vue+element-ui中的图片获取与上传

    vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...

  2. #leetcode刷题之路35-搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置.你可以假设数组中无重复元素. 示例 1:输入: [1,3,5,6], 5输出: ...

  3. 【2018 ICPC亚洲区域赛徐州站 A】Rikka with Minimum Spanning Trees(求最小生成树个数与总权值的乘积)

    Hello everyone! I am your old friend Rikka. Welcome to Xuzhou. This is the first problem, which is a ...

  4. 682. Baseball Game (5月28日)

    解答(打败98.60%) class Solution { public: int calPoints(vector<string>& ops) { vector<int&g ...

  5. 竞赛题解 - Broken Tree(CF-758E)

    Broken Tree(CF-758E) - 竞赛题解 贪心复习~(好像暴露了什么算法--) 标签:贪心 / DFS / Codeforces 『题意』 给出一棵以1为根的树,每条边有两个值:p-强度 ...

  6. easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题

    在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...

  7. Ubuntu 16.04LTS 更新清华源

    1 备份原来的更新源 cp /etc/apt/sources.list /etc/apt/sources.list.backup 如果提示权限不够就输入下面两行,先进入到超级用户,再备份 sudo - ...

  8. Java OOP——第六章 框架集合

    1.集合框架包含的主要内容及彼此之间的关系: 图1:   集合框架:是为了表示和操作集合而统一规定的一种统一的标准体系结构.               包含三大块的内容:对外的接口.接口的是实现和对 ...

  9. Python入门(案例)

    Python入门(案例) #一.上课案例: #输出hello wordprint('hello word') #python注释有两种#1.单行注释#这是单行注释#2.多行注释'''这是多行注释''' ...

  10. asp.net在一般处理程序里面操作Session

    1.要在一般处理程序中获取其他页面的session值,需要引用名空间: using System.Web.SessionState; 2.然后继承一个接口:IRequiresSessionState ...