Java - Read & Write tables from Impala with Security

Java - Read & Write tables from Impala with Security

Github Project : example-java-read-and-write-from-impala-with-security

 

Common part

Maven Dependencies

<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2.1</version> </dependency>

Impala Connection Url

Connection URL are like that : jdbc:hive2://impalahost:21050/;auth=PLAIN

Default port is 21050.

Init Connection

// Set JDBC Impala Driver Class.forName(JDBC_DRIVER_NAME); // Connect to Impala con = DriverManager.getConnection(connectionUrl,user,password); // Init Statement Statement stmt = con.createStatement();

How to create an Impala table with Java?

String sqlStatementInvalidate = "INVALIDATE METADATA"; String sqlStatementDrop = "DROP TABLE IF EXISTS helloworld"; String sqlStatementCreate = "CREATE TABLE helloworld (message String) STORED AS PARQUET"; // Invalidate metadata to update changes stmt.execute(sqlStatementInvalidate); // Execute DROP TABLE Query stmt.execute(sqlStatementDrop); // Execute CREATE Query stmt.execute(sqlStatementCreate);

How to insert data into an Impala table with Java?

 String sqlStatementInsert = "INSERT INTO helloworld VALUES (\"helloworld\")"; // Execute INSERT Query stmt.execute(sqlStatementInsert);

How to select data from an Impala table with Java?

 String sqlStatementSelect = "SELECT * from helloworld"; // Execute SELECT Query ResultSet rs = stmt.executeQuery(sqlStatementSelect); // Process results while(rs.next()) { logger.info(rs.getString(1)); } // Invalidate metadata to update changes stmt.execute(sqlStatementInvalidate);