Skip to content

zzong2006/kakao-coding-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kakao-coding-test

This is kakao coding test solutions made by Woosung Hwang.

  • 코딩 테스트의 문제 1,2,3,4에 대한 솔루션은 각각 problem 01, 02, 03, 04 폴더에 대응됨

  • JDK : 1.8 version, Parquet : 버전 1.9 version, Hadoop : 3.2.1

  • MySQL : equal or more than 8.0.0 version (WITH clause 사용을 위해 필수)

문제 4 (problem04/kakaotest04)

  • JAVA 프로그램 : problem04/kakaotest04/out/artifacts/kakaotest04_jar/kakaotest04.jar

  • 프로그램 프로젝트 경로 (intellij-idea-community 로 maven project 생성 후 artifact build) : problem04/kakaotest04/

  • 주요 class

    • SQLToParquet : 주어진 MySQL 데이터를 Parquet 데이터로 변환
      • 변환 결과 : problem04/parquet_output/
      • 실행 시 출력 결과 : problem04/kakaotest04_SQLToParquet_실행_결과.output
      • 소스 경로 : problem04/kakaotest04/src/main/java/com/kakaotest/sqlparquet/SQLToParquet.java
    • ParquetToText : 변환된 Parquet 데이터를 Text 데이터 변환 (올바르게 변환되었는지 확인용)
      • 변환 결과 : problem04/text_output/
      • 실행 시 출력 결과 : problem04/kakaotest04_ParquetToText_실행_결과.output
      • 소스 경로 : problem04/kakaotest04/src/main/java/com/kakaotest/sqlparquet/ParquetToText.java
    • 단위 테스트용 클래스 SQLToParqeutTest포함
      • 경로 : problem04/kakaotest04/src/test/java/com/kakaotest/sqlparquet/SQLToParquetTest.java
  • 실행 방법

    1. Hadoop 클러스터 실행 (테스트 환경: 단일 JVM의 Pseudo-Distributed Operation)
    2. problem4/kakaotest04/tempJson.json 을 실행 환경에 맞춰서 수정
    3. problem4/kakaotest04으로 접근 후, 아래의 명령어를 실행
    • MySQL DB를 Parquet으로 변환

      • yarn jar ${kakao-coding-test_folder_path}/problem04/kakaotest04/out/artifacts/kakaotest04_jar/kakaotest04.jar com.kakaotest.sqlparquet.SQLToParquet tempJson.json
    • 변환된 Parquet 데이터를 Text File로 변환

      • yarn jar ${kakao-coding-test_folder_path}/problem04/kakaotest04/out/artifacts/kakaotest04_jar/kakaotest04.jar com.kakaotest.sqlparquet.ParquetToText tempJson.json ${output_path}
  • com.mysql.cj.jdbc.Driver 에러 발생시 (Ubuntu 환경 기준)

    • utils/mysql-connector-java-8.0.21.jar 파일을 $JAVA_HOME/jre/lib/ext/로 복사
  • 참고 사항

    kakao-coding-test/problem04/parquet_output$ ls -l
    total 28
    -rw-r--r-- 1 woosung woosung   203  8월 26 20:36 _common_metadata
    -rw-r--r-- 1 woosung woosung   505  8월 26 20:36 _metadata
    -rw-r--r-- 1 woosung woosung 18914  8월 26 20:36 part-m-00000.parquet
    -rw-r--r-- 1 woosung woosung     0  8월 26 20:36 _SUCCESS
    
    kakao-coding-test/problem04/text_output$ ls -l
    total 48
    -rw-r--r-- 1 woosung woosung 48878  8월 26 20:39 part-m-00000
    -rw-r--r-- 1 woosung woosung     0  8월 26 20:39 _SUCCESS
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published