본문 바로가기
반응형

BigData 기술37

[HDFS] 네임노드 SafeMode 켜지는 경우 네임노드 시작 과정 fsimage를 메모리에 로딩 editlog를 읽어 fsimage에 반영 (체크포인팅) 데이터노드가 블록리포트를 보내줌 safemode에 진입하고, 데이터노드가 보내준 블록리포트 정보를 토대로 블록 복제수가 일정 수준까지 만족했는지 확인한다. 만족했으면 safemode에서 빠져나온다. ... 아래 글에 네임노드 시작과정을 자세하게 정리해두었다. 네임노드 SafeMode 시 HDFS 읽기는 가능하다. HDFS 쓰기가 불가능하다. 네임노드 SafeMode는 언제 켜질까? 1) 네임노드를 시작할 때 블록 복제수가 일정 수준(dfs.namenode.safemode.threshold-pct = 0.999f)을 만족하는지 확인 되어야 safemode를 빠져나온다. 예를 들어 전체 블록수가 900.. 2020. 7. 14.
[Spark] Spark 예제 - 데이터 로딩, 조인, 필터링, 정렬 샘플데이터 data_products (상품데이터) 1#ROBITUSSIN PEAK COLD NIGHTTIME COLD PLUS FLU#9721.89#10 상품ID#상품이름#가격#수량? data_transaction (구매데이터) 2015-03-30#6:55 AM#51#68#1#9506.21 일자#시간#고객id#상품id#구매수량#가격 데이터 로딩 및 준비 //구매데이터 로딩 val tranFile = sc.textFile("/spark-in-action/ch04_data_transactions.txt") val tranData = tranFile.map(_.split("#")) //상품목록 로딩 val products = sc.textFile("/spark-in-action/ch04_data_product.. 2020. 7. 10.
[Spark] Spark 예제 - 고객별 구매횟수, 구매금액 등 구해보기 (count, sum, sort) 샘플데이터 2015-03-30#6:55 AM#51#68#1#9506.21 일자#시간#고객id#상품id#구매수량#가격 파일 로딩 및 고객 ID 별로 데이터 재생성하기 val tranFile = sc.textFile("/spark-in-action/ch04_data_transactions.txt") val tranData = tranFile.map(x => x.split("#")) //val tranData = tranFile.map(_.split("#")) // key : 고객ID, value : 구매기록 배열 var transByCust = tranData.map(tran => (tran(2).toInt, tran)) // transByCust.foreach(println) // (51,[Ljava.la.. 2020. 7. 6.
[Spark] Spark 예제 - json 데이터에서 원하는 데이터만 추출 테스트환경 zeppelin 0.8.1 spark 2.4.0 예제 github 이벤트 관련 json 데이터를 사용한다. push 횟수가 많은 순서대로 이름을 추출하고 정렬한다. 그 중에서 특정 명단에 있는 사람들만 뽑는다. 코드 %spark //최종버전 import scala.io.Source.fromFile object App { def main(args : Array[String]) { // git push 횟수가 많은 순서대로 이름을 뽑는다. val inputPath = "/spark-in-action/2015-03-01-23.json" val ghLog = spark.read.json(inputPath) val pushes = ghLog.filter("type = 'PushEvent'") val g.. 2020. 6. 25.
[spark] 파일 한 줄씩 읽기 (scala fromFile) 테스트환경 zeppelin 0.8.1 spark 2.4.0 코드 %spark import scala.io.Source.fromFile // fromFile : hdfs 경로 안됨. 로컬 경로만 가능 val empPath = "/root/sunny/spark-in-action/ghEmployess.txt" val employees = Set() ++ ( for{ line employees.contains(user) val isEmployee = spark.udf.register("isEmpUdf", isEmp) // udf 사용하기 sql("""select isEmpUdf("NathanNg") as isEmpUdf from orderedTable limit 1""").show() 2020. 6. 24.
histogram in spark (scala) using zeppelin 스파크로 히스토그램을 만들고 그래프까지 그려본다. 실행 환경은 zeppelin 이다. 1. 샘플데이터 처리 %spark // collect : 단일 배열으로 바꿈 val lines = sc.textFile("/spark-in-action/client-ids.log") val idsStr = lines.map(line => line.split(",")) idsStr.collect // flatMap : 모든 배열 요소를 단일 컬렉션으로 만든다. (엔터 없애기) val ids = lines.flatMap(_.split(",")) ids.collect ids.collect.mkString(";") val intIds = ids.map(_.toInt) intIds.collect val uniqueIds = in.. 2020. 6. 23.
반응형