목록Data (66)
우노
Spark ML 패키지와 MLlib 패키지의 차이 ML 패키지는 DataFrame 기반의 머신러닝 지원 패키지이다. MLlib 패키지는 RDD 기반의 머신러닝 지원 패키지이다. Spark ML 의 정식 명칭은 'MLlib DataFrame-based API' 이며, DataFrame 이 RDD 보다 Spark 에서의 로딩, 실행 계획 최적화, 언어 간의 API 통일성에 있어 장점이 있기 때문에 ML 패키지가 Spark 2 버전 기준, 머신 러닝을 위한 Primary API 이다. Spark ML, MLlib 패키지 제공 기능 ML Algorithms Classification, Regression, Clustering, Collaborative filtering 등의 머신러닝 알고리즘 제공..
Finding Similar Items 고차원의 데이터 공간(high-dimensional space)에서 가장 유사한 아이템(near-neighbors)을 찾는 작업은 중요한 작업들 중 하나이며, 많은 분야에서 사용되고 있습니다. 페이지에서 유사한 단어 찾기 유사한 상품을 구매한 사용자 유사한 Feature 를 가진 이미지 하지만, 아이템 간 유사도 계산 과정에서는 다양한 문제들이 발생할 수 있습니다. 각 아이템들의 Feature 표현 방식 각 아이템들의 Feature Vector Dimension 유사도 계산 시의 시간 복잡도 따라서, 해당 포스트에서는 여러개의 파일들(C1, C2, ..., Cn) 중 악성코드 파일을 찾는 작업이 주어졌을 때 해당 작업에서 발생할 수 있는 문제들과, 각각의 문제들을 ..
Reference https://spark.apache.org/docs/latest/api/java/org/apache/spark/mllib/linalg/distributed/BlockMatrix.html https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/linalg/distributed/BlockMatrix.scala 예제 코드 import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry} val lr = 1134890 val lc = 1134890 val rc = 1000 val lr_block = 3000 val..
sc.textFile Spark 환경에서, 외부 텍스트 데이터를 spark context 객체의 textFile 메서드를 이용해 읽어오면, Spark Cluster 내에 RDD 객체가 생성된다. sc.textFile() 함수 사용 코드는 아래와 같다. val temp = sc.textFile("file:///home/test.txt", minPartitions=3) temp.getNumPartitions 또한, RDD 생성시, minPartitions 매개변수를 통해 데이터를 최소 몇 조각으로 나눌지 지정할 수 있으며, RDD 생성 후, getNumPartitions 함수를 통해 데이터가 총 몇 조각의 파티션으로 나뉘었는지도 확인할 수 있다. 데이터를 몇 개의 파티션으로 나누는게 좋을까? 각 Execut..
특정 application 의 전체 로그 확인 yarn logs -applicationId 특정 application 의 에러 로그만 확인 yarn logs -applicationId -log_files stderr참고 https://sthyun.tistory.com/entry/Yarn-log-확인
HDFS 명령어 Hadoop 의 Filesystem 인 HDFS 는, 아래와 같은 명령어 구조를 사용해 다룰 수 있다. Hadoop-2.6.0 에서는 총 33개의 HDFS 명령어를 지원한다. hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS] ls 특정 디렉토리 또는 디렉토리 내부의 파일을 보여준다. hdfs dfs -ls [-R] {args} R : 특정 디렉토리 이하에 대해서 정보를 보여줌 mkdir 특정 path 에 directory 를 생성한다. hdfs dfs -mkdir [-p] {paths} cat 해당 파일의 내용을 출력한다. (linux 명령어 cat 과 동일) hdfs dfs -cat URI [URI ...] cp Hdfs 내부에서 파일을 복사/붙여넣기 한다..
RDD Operation Spark 의 RDD 는 2가지 Operation(Transformation, Action) 을 사용해 조작할 수 있습니다 Transformation 기존의 RDD 를 변경하여 새로운 RDD 를 생성하는 것입니다. 즉, 리턴값이 RDD 입니다. map, filter 등을 예로 들 수 있습니다. Action RDD 값을 기반으로 무엇인가를 계산해서, 결과를 생성하는 것입니다. 즉, 리턴값이 데이터 또는 실행 결과입니다. collect, count 등을 예로 들 수 있습니다. 이러한, RDD 동작 원리의 핵심은 Lazy Evaluation (느긋한 연산) 입니다. 즉, RDD 는 Action 연산자를 만나기 전까지는, Transformation 연산자가 아무리 쌓여도 처리하지 않습니..
Matrix Multiplication 을 통한 Multi Source BFS Search Directed Graph 는, 특정 노드와 인접한 노드를 Matrix Multiplcation 을 통해 찾을 수 있습니다. 전체 흐름 세부 설명 예를 들어, 아래와 같은 Directed Graph 가 주어졌을 때 해당 Directed Graph 는 아래와 같은 Matrix 로 표현할 수 있습니다. col : 시작 노드 row : 도착 노드 이때, 해당 Directed Graph 에서 3번 노드, 5번 노드와 인접한 노드를 찾고자 한다면 Directed Graph Matrix 에 아래와 같은 Matrix 를 곱해주면 됩니다. col : 시작 노드로 지정할 노드의 개수 row : 시작 노드의 번호 따라서, 아래와 같..
Hadoop 구성 요소 Hadoop은 다음 세 가지로 구성됩니다. 노드 클러스터에 광범위한 데이터를 저장하기위한 HDFS 파일 시스템 분산 계산을 위해 개발 된 MapReduce 프레임 워크 요청 된 작업에 사용 가능한 리소스를 할당하기위한 YARN HDFS 위 그림은, HDFS의 구조를 나타냅니다. HDFS는 하둡 분산 파일 시스템의 약자로써, 대규모 데이터를 클러스터 내에 분산 저장하는 시스템입니다. 전체 데이터는 128MB 씩 분할 되어, 하나의 블록 내에 저장되며, 하나의 블록은 3개씩 다른 노드에 복제됩니다. 이 값은 기본값이며 변경할 수 있습니다. 따라서, 하나 이상의 노드가 서비스를 중단하면, 다른 노드에 저장된 데이터 복사본으로 부터 데이터를 가져올 수 있습니다. HDFS는 클러스터 내부의..
json4s 란? spark-shell 에서 Map 을 json 으로 변환할 수 있는 방법 중 하나는, json4s library를 사용하는 것이다. 예제 코드 import org.json4s.jackson.JsonMethods._ import org.json4s.JsonDSL._ // Map 생성 val map : Map[String,org.json4s.JsonAST.JValue] = Map("a"->1, "b"->"cool") // Map to json val json = pretty(render(map)) //{ // "a" : 1, // "b" : "cool" //}