본문 바로가기

IT

(47)
RDD Transformation #2 GroupByRDD 원소들을 일정 기준에 따라 분리, K 타입을 키로 가지는 T 집합체를 리턴해 준다.groupBy[K](f: T => K): RDD[(K, Iterable[T])]Ex)test("GroupBy"){ val rdd = sc.parallelize(1 to 10) val result = rdd.groupBy { case i: Int if (i % 2 == 0) => "even" case _ => "odd" } result.collect.foreach { v => println(s"${v._1}, [${v._2.mkString(",")}]") } }result)even, [2,4,6,8,10] odd, [1,3,5,7,9]패턴 매칭 예는 아래 사이트 에서https://twitter.github..
RDD Transformation #1 map map[U](f:(T) => U):RDD[U] 함수f 는 입력타입이 T 이고, 출력타입이 U 이다. map 의 결과값은 RDD[U] 가 된다. Ex)기호 _ 는 피호출객체의 원소를 말한다. val rdd2 = rdd1.map(_ + 1) map 은 간단하다. 컬렉션 원소 하나하나에 입력 함수를 맥여서 그 결과들의 집합 컬랙션을 리턴한다. 이때 입력한 함수의 리턴 타입과 동일한 타입의 컬렉션을 리턴한다고 보면 된다. flatMap flatMap[U] (f:(T) => TraversableOnce[U]):RDD[U] 함수f 는 입력타입이 T 이고, 출력타입이 TraversableOnce[U] 이다. map 의 결과값은 RDD[U] 가 된다. Ex) val rdd1 = List("apple,orange..
spark docker 에 설치하기(작성중) https://github.com/P7h/docker-spark 디폴트는 /bin/bash 까지만 실행되는 예제만 있다. 터미널 형태이기에, 지속적으로 사용할 수 없다. docker run -td --restart=always -p 4040:4040 -p 8888:8080 -p 8081:8081 --name=spark spark_master:latest/usr/local/spark-2.2.0-bin-hadoop2.7/sbin docker run -td --restart=always -p 4040:4040 -p 8888:8080 -p 8081:8081 --name=spark spark_master:latest docker run -d -p 4040:4040 -p 8888:8080 -p 8081:8081 -..
비번없이 원격지 머신에 접속(ssh-keygen) 리눅스 아무 머신에서나 ssh-keygen 결과물id_rsa.pub id_rsaid_rsa.pubid_rsa.pub 는 리모트 머신에cat id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys id_rsaid_rsa는 내 로컬머신에 cat id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys id_rsa 파일을 로컬PC에 저장, 로컬 PC가 리눅스라면 ~/.ssh 폴더에 저장한다.그리고 ssh 를 통해 접속ssh 계정@IPAddrss 윈도우거나 특정 폴더에 저장해 놓는다면ssh -i /mnt/d/ssh-key/id_rsa 계정@IPAddrss
RDD 정리 스파크 클러스터여러 대가 마치 한대의 서버처럼 동작. 네트워크, 장애, 스케쥴링 처리에 대한 복잡함을 스파크가 대신 처리해줌분산 데이터RDD(Resilient Distributed Datasets) 분산 데이터 집합, 복구 가능. 클러스터에 흩어져서 저장RDD의 불변성복구라는 것이 어딘가에 백업된 데이터를 다시 복제하는 것이 아니라, 데이터를 다시 만들어 내는 방식이다.RDD 가 불변! 이기 때문에 가능하다. RDD를 만드는 방법(함수) 만 알고 있으면 언제든지 똑같은 데이터를 만들 수 있다.HDFS패스~Job 과 ExecutorJob = 스파크가 프로그램을 실행하는 것. 클러스터에서 병렬로 처리되며 이 Job은 Executor 가 실행한다.드라이버 프로그램Job 을 실행할 수 있는 메인함수를 가지고 있..
relocate index and log path problem /etd/elasticseasrch/elasticseasrch.yml 에서 인덱스 파일들과, 로그 파일 path 를 바꿀 수 있는데,서비스로 실행하면 해당 path 에 데이터들이 저장되지 않는다. 데몬에서 설정되어 있는 default 경로 설정을 제거해야 한다. /usr/lib/systemd/system/elasticsearch.service 파일을 열면 아래와 같은 디폴트 값이 있는데 이걸 지워주어야 한다.... -E default.path.data=${DATA_DIR}-E default.path.logs=${DATA_DIR}
재밌어 보이는 것 서버리스서버https://github.com/awslabs/aws-gamelift-sample 공유문화 기사http://www.zdnet.co.kr/column/column_view.asp?artice_id=20170623155728 괜찮은 블로그?http://totuworld.github.io/ 서버엔진https://improbable.io/ ndc 자료 https://www.slideshare.net/SangHeonLee9/ndc2016-tera-modern-chttp://ndcreplay.nexon.com/NDC2016/sessions/NDC2016_0066.html#c=NDC2016&t%5B%5D=%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D&p=4
Practice using the results "jar" in Spark 단어세기 예제 코드import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { require(args.length==2,"Usage : WordCount ") val inputPath = args(0) val outoutPath = args(1) val conf = new SparkConf().setAppName("Simple Application").setMaster("local") val sc = new SparkContext(conf) val logData = sc.textFile(inputPath) val words = logData.flatMap( str => s..