zoukankan      html  css  js  c++  java
  • Oozie时出现Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure?

      不多说,直接上干货!

      问题详情

    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection

    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
      setting CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"
    
    Validate DB Connection
    
    Error: Could not connect to the database: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    
    Stack trace for the error was (for debug purposes):
    --------------------------------------
    java.lang.Exception: Could not connect to the database: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:905)
        at org.apache.oozie.tools.OozieDBCLI.createDB(OozieDBCLI.java:185)
        at org.apache.oozie.tools.OozieDBCLI.run(OozieDBCLI.java:129)
        at org.apache.oozie.tools.OozieDBCLI.main(OozieDBCLI.java:80)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:350)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2393)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:215)
        at org.apache.oozie.tools.OozieDBCLI.createConnection(OozieDBCLI.java:895)
        at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:901)
        ... 3 more
    Caused by: java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at java.net.Socket.<init>(Socket.java:425)
        at java.net.Socket.<init>(Socket.java:241)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300)
        ... 19 more
    --------------------------------------

    解决办法

      分析1: 是否你是mysql服务进程么开启。

        比如我的mysql是在root用户下安装的,且安装目录是在/home/hadoop下。当然大家可以将mysql服务进程设置为开机启动。

      分析2:还有,是不是你的oozie用户下的主机,没有在数据库列表里。

     

        <property>
            <name>oozie.db.schema.name</name>
            <value>oozie</value>
            <description>
                Oozie DataBase Name
            </description>
        </property>
        <property>
            <name>oozie.service.JPAService.create.db.schema</name>
            <value>false</value>
            <description>
                Creates Oozie DB.
                If set to true, it creates the DB schema if it does not exist. If the DB schema exists is a NOP.
                If set to false, it does not create the DB schema. If the DB schema does not exist it fails start up.
            </description>
        </property>
        <property>
            <name>oozie.service.JPAService.jdbc.driver</name>
            <value>com.mysql.jdbc.Driver</value>
            <description>
                JDBC driver class.
            </description>
        </property>
        <property>
            <name>oozie.service.JPAService.jdbc.url</name>
            <value>jdbc:mysql://bigdatamaster:3306/oozie?createDatabaseIfNotExist=true</value>
            <description>
                JDBC URL.
            </description>
        </property>
        <property>
            <name>oozie.service.JPAService.jdbc.username</name>
            <value>oozie</value>
            <description>
                DB user name.
            </description>
        </property>
        <property>
            <name>oozie.service.JPAService.jdbc.password</name>
            <value>oozie</value>
            <description>
                DB user password.
                IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
                           if empty Configuration assumes it is NULL.
            </description>
        </property>

       因为,也许你会像我这样,之前在$OOZIE_HOME/conf/下的oozie-site.xml里,已经配置好了。

      但是呢,忘记设置了。

    [root@bigdatamaster hadoop]# mysql -uroot -p
    Enter password: (默认回车)
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 6
    Server version: 5.1.73 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> select user,host,password from mysql.user;
    +------+---------------+-------------------------------------------+
    | user | host          | password                                  |
    +------+---------------+-------------------------------------------+
    | root | localhost     |                                           |
    | root | bigdatamaster |                                           |
    | root | 127.0.0.1     |                                           |
    |      | localhost     |                                           |
    |      | bigdatamaster |                                           |
    | hive | %             | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    | hive | bigdatamaster | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    | hive | localhost     | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    +------+---------------+-------------------------------------------+
    8 rows in set (0.00 sec)
    
    mysql> 

       那么,现在,我们开启它。

    mysql> create user 'oozie'@'%' identified by 'oozie';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON *.* to 'oozie'@'%' IDENTIFIED BY 'oozie' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON *.* to 'oozie'@'bigdatamaster' IDENTIFIED BY 'oozie' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT ALL PRIVILEGES ON *.* to 'oozie'@'localhost' IDENTIFIED BY 'oozie' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select user,host,password from mysql.user;
    +-------+---------------+-------------------------------------------+
    | user  | host          | password                                  |
    +-------+---------------+-------------------------------------------+
    | root  | localhost     |                                           |
    | root  | bigdatamaster |                                           |
    | root  | 127.0.0.1     |                                           |
    |       | localhost     |                                           |
    |       | bigdatamaster |                                           |
    | hive  | %             | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    | hive  | bigdatamaster | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    | hive  | localhost     | *4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC |
    | oozie | %             | *2B03FE0359FAD3B80620490CE614F8622E0828CD |
    | oozie | bigdatamaster | *2B03FE0359FAD3B80620490CE614F8622E0828CD |
    | oozie | localhost     | *2B03FE0359FAD3B80620490CE614F8622E0828CD |
    +-------+---------------+-------------------------------------------+
    11 rows in set (0.00 sec)

    mysql> exit;
    Bye
    [root@bigdatamaster hadoop]#

     

    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
      setting CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"
    
    Validate DB Connection
    DONE
    Check DB schema does not exist
    DONE
    Check OOZIE_SYS table does not exist
    DONE
    Create SQL schema
    DONE
    Create OOZIE_SYS table
    DONE
    
    Oozie DB has been created for Oozie version '4.1.0-cdh5.5.4'
    
    
    The SQL commands have been written to: oozie.sql

      

       

     

    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ pwd
    /home/hadoop/app/oozie-4.1.0-cdh5.5.4
    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ ls
    bin   docs  libext    LICENSE.txt  NOTICE.txt            oozie-core             oozie-hadooplibs-4.1.0-cdh5.5.4.tar.gz  oozie-sharelib-4.1.0-cdh5.5.4.tar.gz       oozie.sql  release-log.txt
    conf  lib   libtools  logs         oozie-4.1.0-cdh5.5.4  oozie-examples.tar.gz  oozie-server                            oozie-sharelib-4.1.0-cdh5.5.4-yarn.tar.gz  oozie.war  src
    [hadoop@bigdatamaster oozie-4.1.0-cdh5.5.4]$ 

      成功!

     

    然后呢,大家也许还会出现如下问题:

    Oozie安装时放置Mysql驱动包的总结(网上最全)

    Oozie时出现org.apache.oozie.service.ServiceException: E0103: Could not load service classes, Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

    Oozie时bin/oozied.sh start或bin/oozied.sh run出现Bootstrap进程无法启动,http://bigdatamaster:11000/oozie界面也无法打开?E0103: Could not load service classes,

    java.lang.ClassNotFoundException: Class org.apache.oozie.ser

    Oozie时bin/oozied.sh start或bin/oozied.sh run出现Bootstrap进程无法启动,http://bigdatamaster:11000/oozie界面也无法打开?

    Oozie时出现Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure?

    Oozie时出现Exception in thread "main" java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0?

    CDH版本的oozie安装执行bin/oozie-setup.sh prepare-war,没生成oozie.war?

  • 相关阅读:
    php输出UTF8格式XML文件中文乱码问题(含asp,asp.net,jsp代码)
    如何取得C# 的函数调用关系
    ZYSocketSuper 2.0 SP1 包含案例 聊天室 示例下载。
    VS2008制作安装程序
    Linq动态条件处理方法
    c#生成Excel,可建立sheet,设定sheet名称,调整列宽度
    vs2005和 vs2008 预编译的做法
    预览文章: Flex与.NET基于Socket的网络连接
    直接执行查询和命令(LINQ TO SQL)
    Fms教程7 理解共享对象
  • 原文地址:https://www.cnblogs.com/zlslch/p/6827501.html
Copyright © 2011-2022 走看看