메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


* shellscript파일
-----------------
#!/bin/bash
export CLASSPATH=${CLASSPATH}:/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1000.24102687/lib/hive/auxlib/ImpalaJDBC42.jar
export CLASSPATH=${CLASSPATH}:~/gooper/libs/*.jar

kinit -kt /var/lib/keytab/hadoop.keytab hadoop
if [ $? != 0 ]; then
   echo "kinit fail"
   exit -1
else
   echo "kinit sucess"
fi

java ImpalaTest
------------------------

*참고1 : 아래 프로그램을 수행하는데 필요한 jar파일 목록(os폴더 위치 : ~/gooper/libs)
(/opt/cloudera/parcels/CDH/jars에 있으니 복사해서 사용한다, 이곳에은 동일한 jar가 바젼별로 존재하므로 이 경로를 classpath에 통째 포함시켜서 사용하면 실행시 NoSuchMehod같은 오류가 발생한다)
commons-collections-3.2.2.jar         hadoop-common-3.1.1.7.1.7.1000-141.jar            hive-service-3.1.3000.7.1.7.1000-141.jar      log4j-1.2-api-2.17.1.jar
commons-configuration2-2.1.1.jar      hive-exec-3.1.3000.7.1.7.1000-141.jar             hive-service-rpc-3.1.3000.7.1.7.1000-141.jar  log4j-api-2.17.1.jar
commons-lang-2.6.jar                  hive-jdbc-3.1.3000.7.1.7.1000-141.jar             httpclient-4.5.13.jar                         log4j-core-2.17.1.jar
guava-27.0.1-jre.jar                  hive-jdbc-3.1.3000.7.1.7.1000-141-standalone.jar  jaxb-impl-2.2.3-1.jar                         slf4j-log4j12-1.7.30.jar
hadoop-auth-3.1.1.7.1.7.1000-141.jar  hive-metastore-3.1.3000.7.1.7.1000-141.jar        libthrift-0.9.3.jar


* 참고2 : java source(파일명 ImpalaTest.java)
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ImpalaTest {
        private static String connectionUrl;
        private static String jdbcDriverName;

        private static void loadConfiguration() throws IOException {
                try {
          // connectionUrl = "jdbc:impala://impalajdbcnode.gooper.com1050;AuthMech=3;UID=hadoop;PWD=;UseSasl=0";             // 해당 user로 동작함
          connectionUrl = "jdbc:impala://impalajdbc_l4.gooper.com:21051/default;AuthMech=1;KrbRealm=GOOPER.COM;KrbHostFQDN=impala_jdbc_node.gooper.com;KrbServiceName=impala;" ;
             //impalaJDBC4.1의 경우
             //jdbcDriverName = "com.cloudera.impala.jdbc41.Driver";
             //ImpalaJDBC4.2의 경우
             jdbcDriverName = "com.cloudera.impala.jdbc.Driver";
                } finally {
                      System.out.println("test");
                }
        }

        public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
                selectTest();
        }
        public static void selectTest() throws IOException {
                String sqlStatement = "select count(*) as 'abcd' from test.test_table;";
                loadConfiguration();

                System.out.println("\n=============================================");
                System.out.println("Using Connection URL: " + connectionUrl);

                Connection con = null;
                Statement stmt = null;

                try {

                        Class.forName(jdbcDriverName);
                        con = DriverManager.getConnection(connectionUrl);
                        stmt = con.createStatement();
                        ResultSet rs = stmt.executeQuery(sqlStatement);

                        System.out.println("\n== Begin Query Results ======================");
                        System.out.println("rs:"+rs);
                        // print the results to the console
                        while (rs.next()) {
                                // the example query returns one String column
                                System.out.println(rs.getString(1));
                        }

                        System.out.println("== End Query Results =======================\n\n");

                } catch (SQLException e) {
                        e.printStackTrace();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        try {
                                stmt.close();
                                con.close();
                        } catch (Exception e) {
                                // swallow
                        }
                }
        }
}
번호 제목 글쓴이 날짜 조회 수
40 [Kudu]ERROR: Unable to advance iterator for node with id '2' for Kudu table 'impala::core.pm0_abdasubjct': Network error: recv error from unknown peer: Transport endpoint is not connected (error 107) gooper 2023.03.16 536
39 Hadoop Clsuter에 이미 포함된 host의 hostname변경시 처리 절차 gooper 2023.03.24 14
38 [KUDU] kudu tablet server여러가지 원인에 의해서 corrupted상태가 된 경우 복구방법 gooper 2023.03.28 37
37 [DataNode]org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/datanode03@GOOPER.COM from keytab hdfs.keytab오류 gooper 2023.04.18 3525
36 [Ranger]계정에 admin권한(grant, create등)의 권한 부여 방법 gooper 2023.04.18 46
35 [Atlas Server]org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=atlas/node01.gooper.com@GOOPER.COM, scope=default:atlas_janus, params=[table=default:atlas_janus,], action-CREATE)] gooper 2023.05.15 66
34 Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 gooper 2023.05.19 93
33 [impala]insert into db명.table명 select a, b from db명.table명 쿼리 수행시 "Memory limit exceeded: Failed to allocate memory for Parquet page index"오류 조치 방법 gooper 2023.05.31 22
32 [CDP7.1.3]Ranger WebUI에서 Error! Connection refused: Please check the KMS provider URL and whether the Ranager KMS is running발생시 조치 방법 gooper 2023.06.07 19
31 [Ranger]RangerAdminRESTClient Error gertting pplicies; Received NULL response!!, secureMode=true, user=rangerkms/node01.gooper.com@ GOOPER.COM (auth:KERBEROS), serviceName=cm_kms gooper 2023.06.27 24
30 [KTS Cluster의 Key Trustee Server]self-signed 인증서 발급및 설정 방법 gooper 2023.06.27 29
29 [Hadoop Encryption] Encryption Zone 생성/설정시 User:hadoop not allowed to do 'DECRYPT_EEK' ON 'testkey' 오류 발생 조치 사항 gooper 2023.06.28 18
28 [HDFS]Encryption Zone에 생성된 테이블 조회시 Failed to open HDFS file hdfs://nameservice1/tmp/zone1/sec_test_file.txt Error(255): Unknown error 255 Root cause: AuthorizationException: User:impala not allowd to do 'DECRYPT_EEK' on 'testkey' gooper 2023.06.29 52
27 [EncryptionZone]User:testuser not allowed to do "DECRYPT_EEK" on 'testkey' gooper 2023.06.29 11
26 [Encryption Zone]Encryption Zone에 생성된 table을 select할때 HDFS /tmp/zone1에 대한 권한이 없는 경우 gooper 2023.06.29 12
25 [CDP7.1.6,HDFS]HDFS파일을 삭제하고 Trash비움이 완료된후에도 HDFS 공간을 차지하고 있는 경우 확인/조치 방법 gooper 2023.07.17 15
24 oozie의 sqoop action수행시 ooize:launcher의 applicationId를 이용하여 oozie:action의 applicationId및 관련 로그를 찾는 방법 gooper 2023.07.26 10
23 [Hue admin]Add/Sync LDAP user, Sync LDAP users/groups 버튼 기능 설명 gooper 2023.08.09 15
22 [Hue metadata]Oracle에 있는 Hue 메타정보 테이블을 이용하여 coordinator와 workflow관계 목록을 추출하는 방법 gooper 2023.08.22 15
» [Impala jdbc]CDP7.1.7환경에서 java프로그램을 이용하여 kerberized impala cluster에 접근하여 SQL을 수행하는 방법 gooper 2023.08.22 57

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로