복붙노트

[HADOOP] 스파크에서 하이브 테이블에 액세스하기

HADOOP

스파크에서 하이브 테이블에 액세스하기

하이브 0.13 설치가 있고 사용자 지정 데이터베이스를 만들었습니다. 나는 스파크 1.1.0 단일 노드 클러스터 mvn - 하이브 옵션을 사용하여 빌드했습니다. hivecontext를 사용하여 스파크 애플리케이션에서이 데이터베이스의 테이블에 액세스하려고합니다. 하지만 hivecontext는 항상 spark 디렉토리에 생성 된 로컬 메타 스토어를 읽습니다. hive-site.xml을 spark / conf 디렉토리에 복사했습니다. 다른 구성을해야합니까 ??

해결법

  1. ==============================

    1.1 단계: 최신 버전의 SPARK 설정 ....

    1 단계: 최신 버전의 SPARK 설정 ....

    $ cd $SPARK_Home; ./sbt/sbt -Phive assembly
    $ cd $SPARK_Home; ./sbt/sbt -Phivethriftserver assembly
    

    이걸 실행하면 몇 가지 항아리 파일을 다운로드하고 bydefault 그것은 추가 할 필요가 추가됩니다 ....

    2 단계: Hive 클러스터의 hive-site.xml을 $ SPARK_HOME / conf / dir에 복사하고 XML 파일을 편집하고 아래에 나열된 파일에 이러한 속성을 추가하십시오.

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://MYSQL_HOST:3306/hive_{version}</value>
        <description>JDBC connect string for a JDBC metastore</description>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore/description>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>XXXXXXXX</value>
        <description>Username to use against metastore database/description>
    </property> 
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>XXXXXXXX</value>
        <description>Password to use against metastore database/description>
    </property>
    

    3 단계 : MYSQL JDBC 커넥터를 다운로드하여 SPARK CLASSPATH에 추가하십시오.     이 명령을 실행하십시오. bin / compute-classpath.sh     다음 스크립트에 대해 아래 행을 추가하십시오.

    CLASSPATH=”$CLASSPATH:$PATH_TO_mysql-connector-java-5.1.10.jar
    

    HIVE에서 SPARK로 데이터를 검색하는 방법 ....

    1 단계: 다음 명령으로 모든 데몬을 시작하십시오 ....

    start-all.sh
    

    2 단계: 다음 명령을 사용하여 hive thrift server 2를 시작하십시오 ....

    hive --service hiveserver2 & 
    

    3 단계 : 다음 명령으로 스파크 서버를 시작하십시오 ....

    start-spark.sh 
    

    마지막으로 다음 명령으로 확인하여 시작되었는지 여부를 확인하십시오 ....

    RunJar 
    ResourceManager 
    Master 
    NameNode 
    SecondaryNameNode 
    Worker 
    Jps 
    JobHistoryServer 
    DataNode 
    NodeManager
    

    4 단계 : 다음 명령으로 마스터를 시작하십시오 ....

    ./sbin/start-master.sh 
    

    주인을 멈추기 위하여는 아래에 ..... 명령을 사용하십시오

    ./sbin/stop-master.sh
    

    5 단계 : 새 터미널 열기 .... 다음 경로로 시작하십시오.

    hadoop@localhost:/usr/local/hadoop/hive/bin$ beeline 
    

    그것이 입력을 요청한 후에 ... 아래 나열된 입력을 전달하십시오 ....

    !connect jdbc:hive2://localhost:10000 hadoop "" org.apache.hive.jdbc.HiveDriver 
    

    그 후 다음 명령으로 스파크를 설정하십시오 .... 참고 : 이러한 구성을 conf 파일에 설정하면 항상 실행할 필요가 없습니다.

    set spark.master=spark://localhost:7077; 
    set hive.execution.engines=spark; 
    set spark.executor.memory=2g; // set the memory depends on your server
    set spark.serializer=org.apache.spark.serializer.kryoSerializer; 
    set spark.io.compression.codec=org.apache.spark.io.LZFCompressionCodec; 
    

    입력을 요청한 후 .... 데이터를 가져 오려는 쿼리를 전달하고 브라우저를 열고 다음 명령으로 URL을 체크인하십시오. localhost : 8080 실행중인 작업 및 완료된 작업을 URL ....

  2. from https://stackoverflow.com/questions/26360725/accesing-hive-tables-in-spark by cc-by-sa and MIT license