이 페이지는 시험 연구소 브레인덤프 [ http://blog.examslabs.com ]에서 내보낸 페이지입니다. 내보내기 날짜:금 12 27 3:59:28 2024 / +0000 GMT ___________________________________________________ 제목: CCA175 시험에 새로운 2022 유효 연습 문제(업데이트된 96문항) [Q38-Q52] 받기 --------------------------------------------------- CCA175시험에 새로운 2022 유효한 연습문제 (96문항 업데이트) 받기 Cloudera 인증 CCA175시험 실전 시험 문제 덤프 번들! CCA175시험으로 당신의 경력을 쌓아라. IT 업계에서 오랫동안 일하고 경력을 업그레이드하고 싶은 사람들은 Cloudera Certified Advanced Architect- Data Engineer시험을 준비할 수 있습니다. Cloudera Certified Advanced Architect- Data Engineer 시험의 코딩을 통해 시험 문제를 더 쉽게 풀 수 있습니다. 클라우데라 공인 고급 아키텍트- 데이터 엔지니어 시험 문제를 다운로드하세요. CCA175시험 문제를 풀면 시험 문제를 더 쉽게 풀 수 있습니다. CCA175 시험 문제의 데이터 세트는 매우 유용합니다. CCA175 시험 문제를 푸는 데 파이썬이 사용되고 있습니다. CCA175 시험 문제 보기. 데이터 프레임은 CCA175 시험 문제를 푸는 데 사용되고 있습니다. Cloudera CCA175시험 덤프는 우리의 CCA175시험 문제를 통과하는 데 가장 좋은 자료입니다. CCA175시험문제를 검토하는 것만으로도 우리의 CCA175덤프는 우리의 시험에 합격하는 데 충분하다. Cloudera Certified Advanced Architect- Data Engineer 시험 문제 소지. 클라우데라 공인 고급 아키텍트- 데이터 엔지니어 시험의 코딩을 통해 시험 문제를 더 쉽게 풀 수 있습니다. ISA 자격증은 경력을 업그레이드하는 데 활용되고 있습니다. 시험 문제를 메모해 두세요. CCA175 시험 문제의 답은 가장 적절한 방식으로 준비되고 있습니다. 시험 문제 풀이 방법을 알아보세요. 클라우데라 공인 고급 아키텍트- 데이터 엔지니어 시험의 복습을 통해 시험 문제를 더 쉽게 복습할 수 있습니다. 클라우데라 공인 고급 아키텍트- 데이터 엔지니어 시험의 구성만으로도 시험에 합격할 수 있습니다. Cloudera Certified Advanced Architect- Data Engineer 시험의 도구는 매우 유용합니다. CCA175 시험 문제는 가장 적절한 방식으로 준비되고 있습니다. 38번 정답 문제 시나리오 68 : 아래와 같은 파일이 주어졌습니다.spark75/file1.txt파일에는 일부 텍스트가 포함되어 있습니다. 아래에 주어진대로spark75/file1.txt아파치 하둡은 상용 하드웨어로 구축된 컴퓨터 클러스터에서 매우 큰 데이터 세트의 분산 저장 및 분산 처리를 위해 Java로 작성된 오픈 소스 소프트웨어 프레임워크입니다. Hadoop의 모든 모듈은 하드웨어 장애가 일반적이며 프레임워크에서 자동으로 처리되어야 한다는 기본 가정 하에 설계되었습니다. Apache Hadoop의 핵심은 HDFS(Hadoop Distributed FileSystem)로 알려진 스토리지 부분과 MapReduce라는 처리 부분으로 구성됩니다. Hadoop은 파일을 큰 블록으로 분할하여 클러스터의 노드에 분산시킵니다. 데이터를 처리하기 위해 하둡은 처리해야 하는 데이터에 따라 노드가 병렬로 처리할 수 있도록 패키지화된 코드를 전송합니다.이 접근 방식은 데이터 로컬리티 노드가 액세스할 수 있는 데이터를 조작하여 고속 네트워킹을 통해 계산과 데이터가 분산되는 병렬 파일 시스템에 의존하는 기존 슈퍼컴퓨터 아키텍처보다 데이터 집합을 더 빠르고 효율적으로 처리할 수 있습니다.조금 더 복잡한 작업을 위해 문서에서 문장을 단어 빅그램으로 분할하는 것을 살펴봅시다. 빅그램은 어떤 시퀀스에 있는 연속적인 토큰 쌍입니다.각 문장의 단어 시퀀스에서 빅그램을 구축한 다음 가장 자주 발생하는 단어를 찾아보겠습니다.첫 번째 문제는 초기 RDD의 각 파티션에 있는 값이 문장이 아닌 파일의 줄을 설명한다는 것입니다. 문장은 여러 줄로 분할될 수 있습니다. glom() RDD 메서드를 사용하여 모든 줄의 목록을 포함하는 각 문서에 대해 단일 항목을 만든 다음, 줄을 결합한 다음 "."를 구분 기호로 사용하여 문장으로 재분할하고 flatMap을 사용하여 RDD의 모든 객체가 이제 문장이 되도록 할 수 있습니다.bigram은 어떤 시퀀스에서 연속적인 토큰 쌍입니다. 각 문장의 단어 시퀀스로부터 빅그램을 만든 다음 가장 자주 등장하는 단어를 찾아보세요. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계 : 3개의 타일을 모두 hdfs로 생성합니다({Hue}를 사용합니다). 그러나 먼저 로컬 파일 시스템에서 만든 다음 hdfs에 업로드할 수 있습니다.2단계 : 첫 번째 문제는 초기 RDD의 각 파티션에 있는 값이 문장이 아닌 파일의 줄을 설명한다는 것입니다. 문장은 여러 줄로 분할될 수 있습니다.glom() RDD 메서드를 사용하여 모든 줄 목록을 포함하는 각 문서에 대해 단일 항목을 만든 다음 줄을 조인한 다음 "."를 구분 기호로 사용하여 문장으로 재분할하고 flatMap을 사용하여 RDD의 모든 개체가 이제 문장이 되도록 합니다.sentences = sc.textFile("spark75/file1.txt") .glom() map(lambda x. " ".join(x)": " ".join(x)) .flatMap(lambda x: x.spllt("."))3단계: 이제 각 문장을 분리하여 단어 목록으로 분할하고 단어 빅그램을 추출할 수 있습니다. 새로운 RDD에는 단어 bigram(그 자체가 첫 번째와 두 번째 단어를 포함하는 튜플)을 첫 번째 값으로, 숫자 1을 두 번째 값으로 포함하는 튜플이 포함되어 있습니다. bigrams = sentences.map(lambda x:x.split()) .flatMap(lambda x: [((x[i],x[i+1]),1)for i in range(0,len(x)-1)])4단계: 마지막으로 단어 수 예제에서 사용한 것과 동일한 reduceByKey 및 정렬 단계를 적용하여 빅그램을 계산하고 내림차순으로 정렬할 수 있습니다. reduceByKey에서 키는 개별 단어가 아니라 bigram.freq_bigrams = bigrams.reduceByKey(lambda x,y:x+y)map(lambda x:(x[1],x[0])) sortByKey(False)freq_bigrams.take(10)NO.39입니다. 올바른 텍스트문제 시나리오 75 : 다음 세부 정보가 포함된 MySQL DB가 제공되었습니다.user=retail_dbapassword=clouderadatabase=retail_dbtable=retail_db.orderstable=retail_db.order_itemsjdbc URL = jdbc:mysql://quickstart:3306/retail_db 다음 작업을 수행하십시오.1. "retail_db.order_items" 테이블을 각 디렉터리 p90_order_items의 hdfs에 복사합니다 .2. 이 테이블의 전체 매출을 파이썬으로 합산합니다.3. 최대 매출과 최소 매출도 구합니다.4. 평균 매출 계산오더엠템 테이블의 열 : (주문_아이템_아이디 , 주문_아이템_상품_아이디 , 주문_아이템_수량 , 주문_아이템_총액 , 주문_아이템_총합 , 주문_아이템_상품가격) 단계별 솔루션 및 설정에 대한 설명을 참조하세요.설명:솔루션 :1단계 : 단일 테이블 가져오기 .sqoop import -connect jdbc:mysql://quickstart:3306/retail_db -username=retail_dba - password=cloudera -table=order_items -target -dir=p90 ordeMtems -m 1노트 : '=' 기호 앞뒤 사이에 공백이 없는지 확인하시기 바랍니다. 맵리듀스 프레임워크를 사용하여 RDBMS에서 hdfs로 데이터 복사2단계 : 위의 명령으로 생성한 파티션 중 하나에서 데이터를 읽습니다. hadoop fs-cat p90_order_items/part-m-000003단계 : 파이 스파크에서 모든 일과 주문의 총 매출을 가져옵니다. 전체 TableRDD = sc.textFile("p90_order_items")#C캐스트 문자열을 floatxtractedRevenueColumn으로 = entireTableRDD.map(lambda line: float(line.split(",")[4]))4단계: 추출된 데이터 확인추출된 수익에 대한 수익 확인RevenueColumn.collect():print revenue1TP5감소'함수를 사용하여 단일 열을 합산합니다 valetotalRevenue = extractedRevenueColumn.reduce(lambda a, b: a + b)5단계: 최대 수익 계산최대수익 = 추출된 수익 칼럼.reduce(lambda a, b: (a>=b else b))6단계: 최소 수익 계산minimum수익 = 추출된 수익 칼럼.reduce(lambda a, b: (aProduct(p(0).tolnt,p(1),p(2),p(3}.tolnt,p(4}.toFloat))prdRDD.first()prdRDD.count()5단계 : 이제 데이터 프레임 생성val prdDF = prdRDD.toDF()6단계 : 이제 하이브 웨어하우스 디렉토리에 데이터를 저장합니다. (단, 테이블은 생성되지 않습니다 } import org.apache.spark.sql.SaveMode prdDF.write.mode(SaveMode.Overwrite).format("orc").saveAsTable("product_orc_table") 7단계: 이제 저장된 데이터를 사용하여 웨어하우스 디렉터리에 테이블을 생성합니다. hive.hiveshow tables의 도움으로외부 테이블 제품 생성 (productid int,코드 문자열,이름 문자열 .quantity int,가격 float}STORED AS oreLOCATION 7user/hive/warehouse/product_orc_table';8단계 : 이제 마루 테이블을 만듭니다import org.apache.spark.sql.SaveModeprdDF.write.mode(SaveMode.Overwrite).format("parquet").saveAsTable("product_parquet_ table")9단계 : 이제 이것을 사용하여 테이블을 생성합니다CREATE EXTERNAL TABLE products_parquet (productid int,code string,name string.quantity int, price float}STORED AS parquetLOCATION 7user/hive/warehouse/product_parquet_table';10단계 : 데이터 로드 여부 확인제품에서 * 선택;제품_파켓에서 * 선택;NO.41 올바른 텍스트문제 시나리오 32 : 아래와 같이 세 개의 파일을 제공했습니다.spark3/sparkdir1/file1.txtspark3/sparkd ir2ffile2.txtspark3/sparkd ir3Zfile3.txt각 파일에 일부 텍스트 포함.spark3/sparkdir1/file1.txtApache Hadoop은 상용 하드웨어로 제작된 컴퓨터 클러스터에서 매우 큰 데이터 집합을 분산 저장 및 분산 처리하기 위해 Java로 작성된 오픈 소스 소프트웨어 프레임워크입니다. Hadoop의 모든 모듈은 하드웨어 장애가 일반적이며 프레임워크에 의해 자동으로 처리되어야 한다는 기본 가정 하에 설계되었습니다. spark3/sparkdir2/file2.txt아파치 하둡의 핵심은 HDFS(Hadoop 분산 파일 시스템)라는 스토리지 부분과 MapReduce라는 처리 부분으로 구성됩니다. Hadoop은 파일을 큰 블록으로 분할하여 클러스터의 노드에 분산시킵니다. 데이터를 처리하기 위해 Hadoop은 처리해야 하는 데이터에 따라 노드가 병렬로 처리할 수 있도록 패키지화된 코드를 전송합니다.spark3/sparkdir3/file3.tx이 접근 방식은 데이터 로컬리티 노드가 액세스할 수 있는 데이터를 조작하여 고속 네트워킹을 통해 계산과 데이터가 분산되는 병렬 파일 시스템에 의존하는 기존 슈퍼컴퓨터 아키텍처보다 데이터 집합을 더 빠르고 효율적으로 처리할 수 있도록 합니다. 이제 이 세 파일을 모두 hdfs에서 로드하고 다음 단어를 필터링하여 단어 수를 계산하는 스파크 코드를 scala로 작성해 보겠습니다. 그리고 결과는 단어 수에 따라 역순으로 정렬되어야 합니다.필터 단어 ("a","the","an","as","a","with","this","these","is","are","in","for","to","and","The","of")또한 세 파일을 모두 단일 RDD로 로드해야 합니다(세 파일 모두 단일 API 호출을 사용하여 로드해야 합니다).또한 다음과 같은 코덱이 제공됩니다.org.apache.hadoop.io.compress.GzipCodec위 코덱을 사용하여 파일을 압축하고 hdfs에 저장하세요. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계 : 세 파일을 모두 hdfs에 생성합니다(Hue를 사용하여 수행합니다). 그러나 먼저 로컬 파일 시스템에서 만든 다음 hdfs에 업로드할 수 있습니다.2단계 : 모든 파일에서 콘텐츠를 로드합니다.val content =sc.textFile("spark3/sparkdir1/file1.txt,spark3/sparkdir2/file2.txt,spark3/sparkdir3/file3.txt") //텍스트 파일 로드3단계 : 이제 각 줄을 분할하고 단어의 RDD를 생성합니다.val flatContent = content.flatMap(word=>word.split(" "))4단계 : 각 단어 뒤의 공백을 제거합니다(트림)val trimmedContent = f1atContent.map(word=>word.trim)5단계 : 제거해야 하는 모든 단어를 remove에서 RDD를 생성합니다.val removeRDD = sc.parallelize(List("a","theM,ManM,"as","a","with","this","these","is","are'"in'"for","to","and","The","of"))6단계 : removeRDD에 없는 콘텐츠만 가질 수 있도록 RDD를 필터링합니다.val filtered = trimmedContent.subtract(removeRDD}7단계 : (word,1) 튜플 또는 PairRDD를 가질 수 있도록 PairRDD를 생성합니다. val pairRDD = filtered.map(word => (word,1))Step 8 : 이제 PairRDD에서 단어 수를 수행합니다. val wordCount = pairRDD.reduceByKey(_ +_)9단계 : 이제 PairRDD를 스왑합니다.val swapped = wordCount.map(item => item.swap)10단계 : 이제 콘텐츠를 역순으로 정렬합니다. val sortedOutput = swapped.sortByKey(false)11단계 : 출력을 텍스트 파일로 저장합니다.sortedOutput.saveAsTextFile("spark3/result")12단계 : 압축된 출력 저장.import org.apache.hadoop.io.compress.GzipCodecsortedOutput.saveAsTextFile("spark3/compressedresult", classOf[GzipCodec])NO.42 올바른 텍스트 문제 시나리오 13 : 다음과 같은 mysql 데이터베이스 세부 정보 및 기타 정보가 주어졌습니다.user=retail_dbapassword=clouderadatabase=retail_dbjdbc URL = jdbc:mysql://quickstart:3306/retail_db 다음을 수행하십시오.1.소매 데이터베이스에 다음과 같은 정의로 테이블을 생성합니다.CREATE table departments_export (department_id int(11), department_name varchar(45), created_date T1MESTAMP DEFAULT NOWQ);2. 이제 다음 디렉토리에서 departments_export table,/user/cloudera/departments new로 데이터를 가져옵니다. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계 : musql에 로그인 dbmysql -user=retail_dba -password=clouderashow databases; use retail_db; show tables;2단계 : 문제 진술에 주어진 대로 테이블을 생성합니다.CREATE table departments_export (departmentjd int(11), department_name varchar(45), created_date T1MESTAMP DEFAULT NOW()); show tables;3단계: /user/cloudera/departmentsnew에서 새 테이블 departments_export sqoop export -connect jdbc로 데이터를 내보냅니다:mysql://quickstart:3306/retail_db -username retaildba -password cloudera -table departments_export -export-dir /user/cloudera/departments_new -batch4단계 : 이제 내보내기가 제대로 수행되었는지 여부를 확인합니다. mysql -user*retail_dba - password=cloudera show databases; use retail _db;show tables;select' from departments_export;NO.43 올바른 텍스트문제 시나리오 35: spark7/EmployeeName.csv(id,name).EmployeeName.csvE01,LokeshE02,BhupeshE03,AmitE04,RatanE05,DineshE06,PavanE07,TejasE08,SheelaE09,KumarE10,Venkat1이라는 파일이 주어졌습니다. 이 파일을 hdfs에서 로드하고 이름별로 정렬한 후 결과 디렉터리에 (id,name)으로 다시 저장합니다. 단, 저장하는 동안 단일 파일에 쓸 수 있어야 합니다. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션:1단계: hdfs에 파일 만들기(Hue를 사용하여 수행합니다). 그러나 먼저 로컬 파일 시스템에서 만든 다음 hdfs에 업로드할 수 있습니다.2단계 : hdfs에서 EmployeeName.csv 파일을 로드하고 PairRDDsval name = sc.textFile("spark7/EmployeeName.csv")val namePairRDD = name.map(x=> (x.split(",")(0),x.split(",")(1)))Step 3 : 이제 namePairRDD를 스왑합니다 RDD.val swapped = namePairRDD.map(item => item.swap)4단계 : 이제 rdd를 key.val로 정렬합니다.sortedOutput = swapped.sortByKey()5단계 : 이제 결과를 다시 교환합니다.swappedBack = sortedOutput.map(item => item.swap}6단계 : 출력을 텍스트 파일로 저장하고 출력은 단일 파일에 기록해야 합니다.swappedBack. repartition(1).saveAsTextFile("spark7/result.txt")NO.44 올바른 텍스트 문제 시나리오 64 : 아래 코드 조각이 주어졌습니다.val a = sc.parallelize(List("dog", "salmon", "salmon", "rat", "elephant"), 3) val b = a.keyBy(_.length) val c = sc.parallelize(Ust("dog","cat","gnu","salmon","rabbit","turkey","wolf","bear","bee"), 3) val d = c.keyBy(_.length) operation1원하는 출력을 생성하는 올바른 코드 조각을 아래와 같이 작성하세요.Array[(lnt, (Option[String], String))] = Array((6,(일부(연어),연어)),(6,(일부(연어),토끼}}, (6,(일부(연어),칠면조)), (6,(일부(연어),살몬)),(6,(일부(연어),토끼)), (6,(일부(연어),칠면조)), (3,(일부(개),개)), (3,(일부(개),고양이)), (3,(일부(개),쥐),(3,(일부(쥐),고양이)), (3,(일부(쥐),쥐)), (3,(일부(쥐),쥐)), (3,(일부(쥐),벌)), (4,(None,wo!f)),(4,(None,bear)))) 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:solution : b.rightOuterJqin(d).collectrightOuterJoin [Pair] : 두 개의 키-값 RDD를 사용하여 오른쪽 외부 조인을 수행합니다. 이 작업이 올바르게 작동하려면 키가 일반적으로 비슷해야 합니다.NO.45 올바른 텍스트문제 시나리오 27 : 아래 정보를 파일로 제출할 때 정보를 수집하기 위해 거의 실시간에 가까운 솔루션을 구현해야 합니다.Dataecho "IBM,100,20160104" >> /tmp/spooldir/bb/.bb.txtecho "IBM,103,20160105" >> /tmp/spooldir/bb/.bb.txtmv /tmp/spooldir/bb/.bb.txt /tmp/spooldir/bb/bb.txt몇 분 후echo "IBM,100.2,20160104" >> /tmp/spooldir/dr/.dr.txtecho "IBM,103.1,20160105" >> /tmp/spooldir/dr/.dr.txtmv /tmp/spooldir/dr/.dr.txt /tmp/spooldir/dr/.txt필요조건: 아래 디렉토리 위치(생성하지 않으면 사용 가능) /tmp/spooldir이 주어졌을 경우 .블룸버그와 로이터에서 주가를 얻기 위한 금융 구독이 있고, ftp를 사용하여 각각 /tmp/spooldir/bb 및 /tmp/spooldir/dr 디렉터리에 있는 각각의 ftp 사이트에서 매시간 새 파일을 다운로드합니다.이 디렉터리에 커밋한 파일은 단일 디렉터리의/tmp/flume/finance 위치에 있는 hdfs에서 사용해야 합니다.flume7.conf라는 플룸 구성 파일을 작성하고 다음 추가 속성을 가진 hdfs에서 데이터를 로드하는 데 사용합니다 .1 . 스풀 /tmp/spooldir/bb 및 /tmp/spooldir/dr2 . hdfs의 파일 접두사는 이벤트3 여야 합니다. 파일 접미사는 .log4 여야 합니다. 파일이 커밋되지 않고 사용 중이면 접두사에 _가 있어야 합니다.5 . 데이터는 hdfs에 텍스트로 기록해야 합니다. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계 : 디렉토리 생성 mkdir /tmp/spooldir/bb mkdir /tmp/spooldir/dr2단계 : 아래 구성으로 플룸 구성 파일 생성 foragent1.sources = source1 source2agent1 .sinks = sink1agent1.channels = channel1agent1 .sources.source1.channels = channel1agentl .sources.source2.채널 = 채널 에이전트1 .싱크스.싱크l.채널 = 채널 에이전트1 .소스 소스1.유형 = 스풀디알 에이전트1 .소스 소스2.유형 = 스풀디알 에이전트1 .sources.source2.spoolDir = /tmp/spooldir/dragent1 .sinks.sink1.type = hdfsagent1 .sinks.sink1.hdfs.path = /tmp/flume/financeagent1-sinks.sink1.hdfs.filePrefix = eventsagent1.sinks.sink1.hdfs.fileSuffix = .logagent1 .sinks.sink1.hdfs.inUsePrefix = _agent1 .sinks.sink1.hdfs.fileType = Data Streamagent1.channels.channel1.type = file4단계 : 아래 명령을 실행하여 이 구성 파일을 사용하고 hdfs에 데이터를 추가합니다.Start flume service:flume-ng agent -conf /home/cloudera/flumeconf -conf-file/home/cloudera/fIumeconf/fIume7.conf -name agent15단계: 다른 터미널을 열고 /tmp/spooldir/echo "IBM,100,20160104" > /tmp/spooldir/bb/.bb.txtecho "IBM,103,20160105" > /tmp/spooldir/bb/.bb.txt mv /tmp/spooldir/bb/.bb.txt/tmp/spooldir/bb/bb.txt몇 분 후echo "IBM,100.2,20160104" > /tmp/spooldir/dr/.dr.txtecho "IBM,103.1,20160105" >/tmp/spooldir/dr/.dr.txt mv /tmp/spooldir/dr/.dr.txt/tmp/spooldir/dr/dr.txtNO.46 올바른 텍스트 문제 시나리오 21 : 아래와 같이 로그 생성 서비스가 제공됩니다.startjogs (연속 로그 생성)tailjogs (어떤 로그가 생성되고 있는지 확인할 수 있습니다)stopjogs (로그 서비스를 중지합니다)위의 서비스를 사용하여 로그가 생성되는 경로 : /opt/gen_logs/logs/access.log이제 flumel.conf라는 이름의 flume 구성 파일을 작성하고, 이 구성 파일을 사용하여 HDFS 파일 시스템의 flumel이라는 디렉토리에 로그를 덤프합니다. Flume 채널에는 다음과 같은 속성도 있어야 합니다. 100개의 메시지가 커밋될 때마다 비내구성/고속 채널을 사용해야 하며 최대 1000개의 이벤트를 저장할 수 있어야 합니다솔루션 :1단계 : 소스, 싱크, 채널에 대해 아래와 같이 구성하여 flume 구성 파일을 생성합니다.#소스, 싱크, 채널, 에이전트 정의,agent1 .sources = source1agent1 .sinks = sink1agent1.channels = channel1# source1agent1 설명/구성 .sources.source1.type = execagent1.sources.source1.command = tail -F /opt/gen logs/logs/access.log## 설명 싱크 에이전트 설명 .sinks.sinkl.channel = 메모리 채널 에이전트 .sinks.sinkl .type = hdfsagentl .sinks.sink1.hdfs.path = flumelagentl .sinks.sinkl.hdfs.fileType = 데이터스트림# 이제 채널 property.agent1.channels.channel1.type = memoryagent1을 정의해야 합니다.channels.channell.capacity = 1000agent1.channels.channell.transactionCapacity = 100# 채널에 소스 및 싱크 바인딩agent1.sources.source1.channels = channel1agent1.sinks.sink1.channel = channel12단계 : 이 구성 파일을 사용하고 hdfs에 데이터를 추가하는 아래 명령을 실행합니다.다음을 사용하여 로그 서비스 시작 : startjogsStart flume service:flume-ng agent -conf /home/cloudera/flumeconf -conf-file/home/cloudera/flumeconf/flumel.conf-Dflume.root.logger=DEBUG,INFO,console몇 분 동안 기다린 후 로그 서비스 중지.Stop_logs를 실행합니다. 단계별 해결 방법 및 구성에 대한 설명을 참조하십시오.NO.47 올바른 텍스트 문제 시나리오 31 : 다음 두 파일을 제공했습니다1 . Content.txt: 공백으로 구분된 단어가 포함된 대용량 텍스트 파일이 포함되어 있습니다.2 . Remove.txt: 이 파일에 주어진 모든 단어를 무시/필터링합니다(쉼표로 구분).Content.txt 파일을 읽고 RDD로 로드하는 Spark 프로그램을 작성하고, 방송 변수에서 모든 단어를 제거합니다(Remove.txt에서 단어의 RDD로 로드됨).그리고 각 단어의 발생 횟수를 계산하여 HDFS.Content.txt에 텍스트 파일로 저장합니다. 안녕하세요, ABCTech.com입니다.TechABY.com입니다.아파치 스파크 교육입니다.스파크 학습 세션입니다.스파크가 맵리듀스보다 빠릅니다.Remove.txt입니다.안녕하세요, 이것은, 이것은, 입니다. 단계별 솔루션 및 구성에 대한 설명을 참조하십시오.설명 :솔루션 :1 단계 : spark2라는 디렉토리에 hdfs에 세 개의 파일을 모두 만듭니다 (Hue를 사용하여 수행합니다).그러나 먼저 로컬 파일 시스템에서 만든 다음 hdfs에 업로드 할 수 있습니다.2 단계 : Content.txt 파일을로드합니다val content = sc.textFile("spark2/Content.txt") //텍스트 파일 로드3단계 : Remove.txt 파일 로드val remove = sc.textFile("spark2/Remove.txt") //텍스트 파일 로드4단계 : remove에서 RDD 생성 단, 각 단어에 후행 공백이 있을 수 있으므로 해당 공백도 제거합니다. 여기서는 두 가지 함수를 사용했습니다.flatMap, map, trim.val removeRDD= remove.flatMap(x=> x.splitf',") ).map(word=>word.trim)//단어 배열 생성5단계 : 무시할 변수를 브로드캐스트합니다.bRemove = sc.broadcast(removeRDD.collect().toList) // 문자열의 배열이어야 합니다6단계 : 콘텐츠 RDD를 분할하여 문자열의 배열을 가질 수 있도록 합니다. val words = content.flatMap(line => line.split(" "))7단계 : "BroadcastVariable"에 없는 콘텐츠만 포함할 수 있도록 RDD를 필터링합니다. val filtered = words.filter{case (word) => !bRemove.value.contains(word)}8단계 : (word,1) 튜플 또는 PairRDD를 가질 수 있도록 PairRDD를 생성합니다. val pairRDD = filtered.map(word => (word,1))9단계 : 이제 PairRDD에서 단어 수를 계산합니다. val wordCount = pairRDD.reduceByKey(_ + _)10단계 : 출력을 텍스트 파일로 저장합니다.wordCount.saveAsTextFile("spark2/result.txt")NO.48 수정 텍스트 문제 시나리오 95 : 각 실행기마다 최대 힙 크기는 512MB이고 각 실행기에 할당할 프로세서 코어 수는 1이며 기본 응용 프로그램에는 입력 인수로 세 가지 값이 필요합니다./bin/spark-submit -class com.hadoopexam.MyTask -master yarn-cluster-num-executors 3-driver-memory 512m XXX YYY lib/hadoopexam.jarZZZ로 대체하십시오. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션XXX: -실행자-메모리 512m YYY: -실행자-코어 1ZZZ : V1 V2 V3노트 : spark-submit on yarn 옵션 옵션 설명아카이브 각 실행자의 작업 디렉터리로 추출할 아카이브의 쉼표로 구분된 목록입니다. 이 경로는 클러스터 내에서 전역적으로 표시되어야 합니다. AdvancedDependency Management.executor-cores 각 실행기에 할당할 프로세서 코어 수를 참조하세요. 또는 각 실행기에 할당할 executor-memory 최대 힙 크기인 spark.executor.cores 속성을 사용할 수 있습니다. 또는 이 애플리케이션에 할당할 YARN 컨테이너의 총 개수인 spark.executor.memory-property.num-executors를 사용할 수 있습니다. 또는 제출할 YARN 대기열인 spark.executor.instances 속성인 queue를 사용할 수 있습니다. 자세한 내용은 리소스 풀에 애플리케이션 및 쿼리 할당을 참조하세요. 기본값: default.NO.49 올바른 텍스트 문제 시나리오 19: 다음과 같은 mysql 데이터베이스 세부 정보 및 기타 정보가 제공되었습니다.user=retail_dbapassword=clouderadatabase=retail_dbjdbc URL = jdbc:mysql://quickstart:3306/retail_db 이제 다음 작업을 수행합니다.1. departments_text 디렉터리에서 mysql에서 hdfs로 부서 테이블을 텍스트 파일로 가져오기.2. departments_sequence 디렉터리에서 sequnce 파일로 부서 테이블을 가져오기.3. departments avro 디렉터리에서 avro 파일로 부서 테이블을 mysql에서 hdfs로 가져오기.4. departments_parquet 디렉터리에서 parquet 파일로 부서 테이블을 mysql에서 hdfs로 가져오기. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계: mysql에서 hdfs로 부서 테이블을 텍스트 파일로 가져오기qoop import -connect jdbc:mysql://quickstart:3306/retail_db ~ username=retail_dba -password=cloudera -table departments -as-textfile -target-dir=departments_textverify 가져온 데이터 dfs -cat departments_text/part"Step 2 : mysql에서 hdfs로 부서 테이블 가져오기 sequncetllesqoop import -connect jdbc:mysql://quickstart:330G/retaiI_db ~ username=retail_dba -password=cloudera -table departments -as-sequencetlle -~target-dir=departments sequenceverify 가져온 데이터 dfs -cat departments_sequence/part*3단계 : 부서 테이블을 mysql에서 hdfs로 가져오기 sequncetllesqoop import -connect jdbc:mysql://quickstart:330G/retaiI_db ~ username=retail_dba -password=cloudera -table departments -as-avrodatafile -target-dir=departments_avroverify 가져온 데이터 dfs -cat departments avro/part*4단계 : 부서 테이블을 mysql에서 hdfs로 가져오기 sequncetllesqoop import -connect jdbc:mysql://quickstart:330G/retaiI_db ~ username=retail_dba -password=cloudera -table departments -as-parquetfile -target-dir=departments_parquetverify 가져온 데이터 dfs -cat departmentsparquet/part*NO로 가져옵니다.50 올바른 텍스트문제 시나리오 1:다음과 같은 세부 정보가 포함된 MySQL DB가 제공되었습니다.user=retail_dbapassword=clouderadatabase=retail_dbtable=retail_db.categoriesjdbc URL = jdbc:mysql://quickstart:3306/retail_db다음 작업을 수행하십시오.1 . MySQL DB를 연결하고 테이블의 내용을 확인합니다.2 . 디렉토리 이름을 지정하지 않고 "retaildb.categories" 테이블을 hdfs에 복사합니다.3 . "retaildb.categories" 테이블을 디렉토리 이름 "categories_target"으로 hdfs에 복사합니다.4 . "retaildb.categories" 테이블을 웨어하우스 디렉터리 이름 "categories_warehouse"로 hdfs에 복사합니다. 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :1단계 : 기존 MySQL 데이터베이스에 연결 mysql -user=retail_dba - password=cloudera retail_db2단계 : 사용 가능한 모든 테이블 표시 show tables;3단계 : MySQL의 테이블에서 데이터 보기/계산 select count(1} from categories;4단계 : HDFS 디렉토리에서 현재 사용 가능한 데이터 확인 hdfs dfs -Is5단계 : 단일 테이블 가져오기(디렉토리 지정하지 않음).sqoop import -connect jdbc:mysql://quickstart:3306/retail_db -username=retail_dba - password=cloudera -table=categories주 : '=' 기호 앞뒤에 공백이 없는지 확인하시기 바랍니다. 맵리듀스 프레임워크를 이용해 RDBMS에서 hdfs로 데이터 복사6단계 : 위 명령어로 생성한 파티션 중 하나에서 데이터 읽기, hdfs dfs - catxategories/part-m-000007단계 : import 명령으로 대상 디렉터리 지정 (맵퍼 개수= 1을 사용하고 있으며, 필요에 따라 변경 가능) sqoop import -connectjdbc:mysql://quickstart:3306/retail_db -username=retail_dba -password=cloudera~ table=categories -target-dir=categortes_target -m 18단계 : 파티션 파일 중 하나에서 내용을 확인합니다.hdfs dfs -cat categories_target/part-m-000009단계 : 지정한 대상 디렉터리에 둘 이상의 테이블을 복사할 수 있도록 상위 디렉터리를 지정합니다. warehouse 디렉터리 지정 명령 .sqoop import -.-connect jdbc:mysql://quickstart:3306/retail_db -username=retail dba -password=cloudera -table=categories -warehouse-dir=categories_warehouse -m 1NO.51 올바른 텍스트 문제 시나리오 52: 아래 코드 스니펫이 주어졌습니다.val b = sc.parallelize(List(1,2,3,4,5,6,7,8,2,4,2,1,1,1,1,1))Operation_xyz 아래 출력을 생성하는 Operation_xyz에 대한 올바른 코드 스니펫을 작성하세요.scalaxollection.Map[lnt,Long] = Map(5 -> 1, 8 -> 1, 3 -> 1, 6 -> 1, 1 -> S, 2 -> 3, 4 -> 2, 7 -> 1) 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:솔루션 :b.countByValuecountByValueReturn RDD의 모든 고유 값과 각각의 발생 횟수를 포함하는 맵을 반환합니다. (경고: 이 작업은 최종적으로 단일 감속기에 정보를 집계합니다.)목록 변형def countByValue(): Map[T, Long]NO.52 올바른 텍스트 문제 시나리오 93: 로컬 8 스레드 또는 8코어에서 로컬로 Spark 애플리케이션을 실행해야 합니다. XXX를 올바른 값으로 바꿉니다.spark-submit -class com.hadoopexam.MyTask XXX -deploy-mode clusterSSPARK_HOME/lib/hadoopexam.jar 10 단계별 솔루션 및 구성에 대한 설명을 참조하세요.설명:SolutionXXX: -master local[8]참고 : Spark에 전달된 마스터 URL은 다음 형식 중 하나일 수 있습니다.마스터 URL 의미local 하나의 워커 스레드로 로컬로 Spark 실행(즉, 병렬 처리 없음}.local[K] K개의 워커 스레드로 로컬로 Spark 실행(이상적으로는 머신의 코어 수로 설정).local[*] 머신의 논리적 코어 수만큼 워커 스레드로 로컬로 Spark 실행.spark://HOST:PORT 지정된 Spark 독립 실행형 클러스터 마스터에 연결하세요. 포트는 마스터가 사용하도록 구성된 포트 중 하나(기본값은 7077)여야 합니다.mesos://HOST:PORT 지정된 Mesos 클러스터에 연결합니다. 포트는 마스터가 사용하도록 구성된 포트 중 하나(기본값은 5050)여야 합니다. 또는 ZooKeeper를 사용하는 Mesos 클러스터의 경우 mesos://zk://....을 사용합니다. 배포 모드 클러스터로 제출하려면 -deploy-mode의 값에 따라 클라이언트 또는 클러스터