Dr.Elephant mysql connection error

This is the first time I try to use english to write my blog, so don‘t jeer at the mistake of my grammar and spelling.

Because of multi threaded drelephant will cause JobHistoryServer’s Loads very high, so I stopped it for a strench of time. Until last week, a period pull from JHS patch merge request from github was released. I re-compiled dr. elephant and deploy the new dr. elephant on the cluster. It seems stable, but on this Monday morning, my leader told me that there were no more counters and any information about cluster jobs in dr. elephant.  So I logged in to the server, and check log, then I found this message below.

[error] c.j.b.ConnectionHandle - Database access problem. Killing off this connection and all remaining connections in the connection pool. SQL State = HY000

And then, I found two things will cause this issue, one of them is selinux config is set to enforcing, change this config value to disabled and reboot the server, it seem good, but still got same error, only not too many.

Then I review the code of dr. elephant, I  find out that in mysql create table in mysql initializing script of play framework has an issue. the index is too long, I change the index to 250 previously, but if an url is longer then 250, it gone wrong.

create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(250));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(250));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(250));

So I delete this index limitation, and rewrite the sql like this, add a innodb_large_prefix and row_format=dynamic to the table creation script, and finally, no more error log appears…

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_large_prefix = ON;
CREATE TABLE yarn_app_result (
  id               VARCHAR(50)   NOT NULL              COMMENT ‘The application id, e.g., application_1236543456321_1234567‘,
  name             VARCHAR(100)  NOT NULL              COMMENT ‘The application name‘,
  username         VARCHAR(50)   NOT NULL              COMMENT ‘The user who started the application‘,
  queue_name       VARCHAR(50)   DEFAULT NULL          COMMENT ‘The queue the application was submitted to‘,
  start_time       BIGINT        UNSIGNED NOT NULL     COMMENT ‘The time in which application started‘,
  finish_time      BIGINT        UNSIGNED NOT NULL     COMMENT ‘The time in which application finished‘,
  tracking_url     VARCHAR(255)  NOT NULL              COMMENT ‘The web URL that can be used to track the application‘,
  job_type         VARCHAR(20)   NOT NULL              COMMENT ‘The Job Type e.g, Pig, Hive, Spark, HadoopJava‘,
  severity         TINYINT(2)    UNSIGNED NOT NULL     COMMENT ‘Aggregate severity of all the heuristics. Ranges from 0(LOW) to 4(CRITICAL)‘,
  score            MEDIUMINT(9)  UNSIGNED DEFAULT 0    COMMENT ‘The application score which is the sum of heuristic scores‘,
  workflow_depth   TINYINT(2)    UNSIGNED DEFAULT 0    COMMENT ‘The application depth in the scheduled flow. Depth starts from 0‘,
  scheduler        VARCHAR(20)   DEFAULT NULL          COMMENT ‘The scheduler which triggered the application‘,
  job_name         VARCHAR(255)  NOT NULL DEFAULT ‘‘   COMMENT ‘The name of the job in the flow to which this app belongs‘,
  job_exec_id      VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A unique reference to a specific execution of the job/action(job in the workflow). This should filter all applications (mapreduce/spark) triggered by the job for a
 particular execution.‘,
  flow_exec_id     VARCHAR(255)  NOT NULL DEFAULT ‘‘   COMMENT ‘A unique reference to a specific flow execution. This should filter all applications fired by a particular flow execution. Note that if the scheduler supports sub-
workflows, then this ID should be the super parent flow execution id that triggered the the applications and sub-workflows.‘,
  job_def_id       VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A unique reference to the job in the entire flow independent of the execution. This should filter all the applications(mapreduce/spark) triggered by the job for al
l the historic executions of that job.‘,
  flow_def_id      VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A unique reference to the entire flow independent of any execution. This should filter all the historic mr jobs belonging to the flow. Note that if your scheduler 
supports sub-workflows, then this ID should reference the super parent flow that triggered the all the jobs and sub-workflows.‘,
  job_exec_url     VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A url to the job execution on the scheduler‘,
  flow_exec_url    VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A url to the flow execution on the scheduler‘,
  job_def_url      VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A url to the job definition on the scheduler‘,
  flow_def_url     VARCHAR(800)  NOT NULL DEFAULT ‘‘   COMMENT ‘A url to the flow definition on the scheduler‘,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
create index yarn_app_result_i1 on yarn_app_result (finish_time);
create index yarn_app_result_i2 on yarn_app_result (username,finish_time);
create index yarn_app_result_i3 on yarn_app_result (job_type,username,finish_time);
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id);
create index yarn_app_result_i5 on yarn_app_result (job_def_id);
create index yarn_app_result_i6 on yarn_app_result (flow_def_id);
create index yarn_app_result_i7 on yarn_app_result (start_time);
CREATE TABLE yarn_app_heuristic_result (
  id                  INT(11)       NOT NULL AUTO_INCREMENT COMMENT ‘The application heuristic result id‘,
  yarn_app_result_id  VARCHAR(50)   NOT NULL                COMMENT ‘The application id‘,
  heuristic_class     VARCHAR(255)  NOT NULL                COMMENT ‘Name of the JVM class that implements this heuristic‘,
  heuristic_name      VARCHAR(128)  NOT NULL                COMMENT ‘The heuristic name‘,
  severity            TINYINT(2)    UNSIGNED NOT NULL       COMMENT ‘The heuristic severity ranging from 0(LOW) to 4(CRITICAL)‘,
  score               MEDIUMINT(9)  UNSIGNED DEFAULT 0      COMMENT ‘The heuristic score for the application. score = severity * number_of_tasks(map/reduce) where severity not in [0,1], otherwise score = 0‘,
  PRIMARY KEY (id),
  CONSTRAINT yarn_app_heuristic_result_f1 FOREIGN KEY (yarn_app_result_id) REFERENCES yarn_app_result (id)
);
create index yarn_app_heuristic_result_i1 on yarn_app_heuristic_result (yarn_app_result_id);
create index yarn_app_heuristic_result_i2 on yarn_app_heuristic_result (heuristic_name,severity);
CREATE TABLE yarn_app_heuristic_result_details (
  yarn_app_heuristic_result_id  INT(11) NOT NULL                  COMMENT ‘The application heuristic result id‘,
  name                          VARCHAR(128) NOT NULL DEFAULT ‘‘  COMMENT ‘The analysis detail entry name/key‘,
  value                         VARCHAR(255) NOT NULL DEFAULT ‘‘  COMMENT ‘The analysis detail value corresponding to the name‘,
  details                       TEXT                              COMMENT ‘More information on analysis details. e.g, stacktrace‘,
  PRIMARY KEY (yarn_app_heuristic_result_id,name),
  CONSTRAINT yarn_app_heuristic_result_details_f1 FOREIGN KEY (yarn_app_heuristic_result_id) REFERENCES yarn_app_heuristic_result (id)
);
create index yarn_app_heuristic_result_details_i1 on yarn_app_heuristic_result_details (name);

At last I send a pull request to linkedin on github.com…

时间: 2024-08-25 17:22:22

Dr.Elephant mysql connection error的相关文章

DATABASE CONNECTION ERROR (1): THE MYSQL ADAPTER 'MYSQLI' IS NOT AVAILABLE.解决办法

网站迁移之后遇到:Database connection error (1): The MySQL adapter 'mysqli' is not available.这个问题,我一开始以为是我配置的参数错了呢!然后回去检查,检查好几遍我的数据库账号和密码都没错,但是为什么就是连接不上数据库呢?? 网上有人说是"可能有你安装wamp或者xamp之后,sqlserver的服务没有启动,你可以到系统服务菜单里看看这个是否自动启动."但是我问过空间商,他们说默认都是开启的,然后他们也检查了数

Dr.Elephant启动过程问题汇总

在首次启动Dr.Elephant时,因为配置不当或者环境因素可能会导致启动失败.当启动失败后,我们可以从Dr.Elephant的日志文件(默认的启动日志是dr.log)中查看启动过程日志,找到Error和Exception,定位问题所在. 下面,是我总结的自己以及大家在启动过程中遇到的一些问题,如果大家也遇到了这些问题,希望可以帮助到你们. 问题一 问题描述 日志中记录ERROR:"Specified key was too long; max key length is 767 bytes [

Hadoop监控分析工具Dr.Elephant

公司基础架构这边想提取慢作业和获悉资源浪费的情况,所以装个dr elephant看看.LinkIn开源的系统,可以对基于yarn的mr和spark作业进行性能分析和调优建议. DRE大部分基于java开发,spark监控部分使用scala开发,使用play堆栈式框架.这是一个类似Python里面Django的框架,基于java?scala?没太细了解,直接下来就能用,需要java1.8以上. prerequest list: Java 1.8 PlayFramework+activator No

(MYSQL)ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 方案1. 1.#ps -A|grep mysql 显示类似: 1829 ?        00:00:00 mysqld_safe   1876 ?        00:00:31 mysqld 2.#kill -9 1829 3.#kill -9 1876 4.#/etc/init.d/

mybatis connection error Cannot create PoolableConnectionFactory (Access denied for user 'root '@'local

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exc

mysql客户端登录时报mysql: relocation error错误

在安装了xtrabackup后,再用下列命令登录时报下列错误 [[email protected] ~]# mysql -u root -pmysql: relocation error: mysql: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference 解决方法: 查看该库文件是否存在 [[email protected] ~]# f

Dr.Elephant 部署启动详细流程

最近尝试在测试环境安装部署了Dr.Elephant,花了不少时间,碰到一些问题.借助于官方文档和LinedIn akshayrai大神的帮助,最终成功启动Dr.Elephant.鉴于国内还没有类似的文章详细介绍Dr.Elephant的部署启动的实践,现将自己的一些经验分享给大家,欢迎一起讨论. 我的首次安装是在分布式Hadoop集群上完成的,没有尝试本地安装Dr.Elephant,所以下面的安装步骤和经验也都是针对集群部署启动而言的.首先,我会对文档中要求的准备工作已经部署启动过程进行一个汇总,

<Dr.Elephant>

Why Dr.Elephant? Most of Hadoop optimization tools out there, but they are focused on simplifying the deploy and managment of Hadoop clusters. Very few tools are designed to help Hadoop users optimize their flows. Dr.Elephant supports Hadoop with a v

Mac Mysql mysql_secure_installation Error: Access denied for user 'root'@'localhost' (using password: YES)

mysql由brew安装, 期间好像自动更新了一次 然后再次执行mysql_secure_installation, 输入root密码后报错, 重装mysql还是不行 Error: Access denied for user 'root'@'localhost' (using password: YES) 原因是之前安装的mysql配置文件没有彻底清除 参照 http://stackoverflow.com/questions/4359131/brew-install-mysql-on-mac