Elasticsearch7 se conecta usando jdbc

Elasticsearch7.0.1 usa la conexión jdbc
Agregar dependencias maven al proyecto
<repositories>  
<repository>  
<id>elastic.co</id>  
<url>https://artifacts.elastic.co/maven</url>  
</repository>  
</repositories>  
<dependency>  
  <groupId>org.elasticsearch.plugin</groupId>  
  <artifactId>x-pack-sql-jdbc</artifactId>  
  <version>7.0.1</version>  
</dependency>  
Conéctese usando el código de prueba
package com.hts;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.Statement;  
import java.util.Properties;  

public class ESJdbcTest {  

static String driver = "org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver";  
static String elasticsearchAddress = "192.168.79.128:9200";  

public static Properties connectionProperties(){  
Properties properties = new Properties();  
        //如果集群设置了密码
        //properties.put("user", "test_admin");  
        //properties.put("password", "x-pack-test-password");  
return properties;  
}  
public static void main(String[] args) {  

String address = "jdbc:es://http://" + elasticsearchAddress;  
Properties connectionProperties = connectionProperties();  
try {
Connection connection = DriverManager.getConnection(address, connectionProperties);  
Statement statement = connection.createStatement();  
ResultSet results = statement.executeQuery(
"SELECT firstname, account_number FROM bank ORDER BY account_number DESC LIMIT 5");  
while(results.next()){  
System.out.println(results.getString("firstname"));  
}  
}catch (Exception e){  
e.printStackTrace();  
}  
 
}  

}  

Excepción: el error de excepción en el subproceso "principal" java.sql.SQLInvalidAuthorizationSpecException: la licencia actual no cumple con [jdbc] debe descifrarse y la licencia de platino debe actualizarse;

  • Busque x-pack-core-7.0.1.jar en el directorio /elasticsearch-7.0.1/modules/x-pack-core y cópielo

  • Cree dos nuevos archivos java llamados LicenseVerifier.java y XPackBuild.java, pegue el siguiente código

    ①:
    Paquete LicenseVerifier.java org.elasticsearch.license;
    importar java.nio. ;
    importar org.elasticsearch.common.bytes.
    ;
    importar java.util. ;
    importar java.seguridad.
    ;
    importar org.elasticsearch.common.xcontent. ;
    importar org.apache.lucene.util.
    ;
    importar org.elasticsearch.core.internal.io. ;
    importar java.io.
    ;
    Licencia de clase pública Verificador { booleano estático público verificar licencia (licencia de licencia final, byte final [] datos de clave pública cifrados) { volver verdadero; } booleano estático público verificar licencia (licencia de licencia final) { volver verdadero; }






    }

    ②:
    Paquete XPackBuild.java org.elasticsearch.xpack.core;
    importar org.elasticsearch.common.io. ;
    importar java.net.
    ;
    importar org.elasticsearch.common. ;
    importar java.nio.file.
    ;
    importar java.io. ;
    importar java.util.jar.
    ;
    public class XPackBuild{ public static final XPackBuild ACTUAL; cadena privada shortHash; Fecha de cadena privada; @SuppressForbidden(motivo = “busca la ruta de xpack.jar directamente”) static Path getElasticsearchCodebase() { URL final url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation(); tratar {







    devuelve PathUtils.get(url.toURI());
    }
    catch (URISyntaxException falso) { throw new RuntimeException(falso); } } XPackBuild(final String shortHash, final String date) { this.shortHash = shortHash; esta.fecha = fecha; } public String shortHash() { devuelve this.shortHash; } public String date() { devuelve this.date; } static { ruta de acceso final = getElasticsearchCodebase(); Cadena shortHash = nulo; Fecha de cadena = nulo; Label_0157: { shortHash = “Desconocido”; fecha = "Desconocido"; }





















    ACTUAL = nuevo XPackBuild (shortHash, fecha);
    }
    }

  • Para compilar estos dos archivos java usando javac, debe introducir dependencias de importación y usar el parámetro -cp (los paquetes jar correspondientes están disponibles en el paquete de instalación de elasticsearch)

    javac -cp “F:\es\x-pack-core-7.0.1.jar;F:\es\lucene-core-8.0.0.jar;F:\es\elasticsearch-7.0.1.jar;F :\es\elasticsearch-core-7.0.1.jar” F:esLicenseVerifier.java
    javac -cp “F:\es\x-pack-core-7.0.1.jar;F:\es\lucene-core-8.0 .0.jar;F:\es\elasticsearch-7.0.1.jar;F:\es\elasticsearch-core-7.0.1.jar” F:esXPackBuild.java

  • Sobrescriba el LicenseVerifier.class generado sobre LicenseVerifier.class en el directorio org/elasticsearch/license en el x-pack-core-7.0.1.jar copiado, y sobrescriba el XPackBuild.class generado sobre org/elasticsearch/xpack/core directorio XPackBuild.class bajo

  • Copie el x-pack-core-7.0.1.jar sobrescrito de nuevo en el directorio /elasticsearch-7.0.1/modules/x-pack-core para sobrescribir el original

  • Obtenga un certificado de licencia
    ①: https://license.elastic.co/registration Complete algún nombre de usuario, dirección de correo electrónico (importante, obtenga el enlace de descarga), seleccione China como país, complete otra información a voluntad, haga clic en Enviar
    ② Abra el dirección obtenida por correo electrónico y descarga El archivo posterior se renombra como license.json ③Modifique


    el contenido del archivo y cambie los dos atributos a lo siguiente
    Reemplace "tipo": "básico" con "tipo": "platino" # Cambie el básico class a la versión platinum y
    "expiry_date_in_millis": 1561420799999 se reemplaza por
    ④ Use curl para reemplazar la licencia (license.json se refiere al certificado después de descargar los atributos modificados, para habilitar el servicio elasticsearch)
    curl -XPUT 'http://127.0. 0.1:9200/_xpack/licenseacknowledge=true' - d @license.json
    inserte la descripción de la imagen aquí

    ⑤Es posible que encuentre el error No se puede instalar una licencia [PLATINUM] a menos que TLS esté configurado o la seguridad esté deshabilitada. La solución se agrega en
    elasticsearch.yml: xpack.security.enabled: false ⑥Verifique
    el tiempo del certificado después de cargar http://127.0. 0.1:9200/_licencia

    inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_54853503/article/details/124241580
Recomendado
Clasificación