打赏

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?

posted @ 2017-05-08 20:31  大数据和AI躺过的坑  阅读(3067)  评论(0编辑  收藏  举报