빅데이터/하둡 11

Spark 개발시, main/resources 패키지에 hdfs-site.xml, core-site.xml 등을 넣는 이유

main/resources 디렉터리는 Apache Maven이나 SBT와 같은 빌드 도구를 사용하는 프로젝트에서 애플리케이션의 리소스 파일을 저장하는 표준 위치이다. 이 디렉터리에 배치된 파일들은 컴파일된 클래스와 함께 JAR 파일에 포함되며, 런타임에 애플리케이션에서 사용될 수 있다. HDFS 설정 파일 (hdfs-site.xml)hdfs-site.xml 파일은 Hadoop 분산 파일 시스템(HDFS)의 설정을 정의한다. 이 파일에는 HDFS 클러스터의 동작을 제어하는 다양한 구성 옵션이 포함되어 있다. 예를 들어, 네임노드의 주소, 데이터 디렉터리, 복제 수 등의 정보가 포함될 수 있다.main/resources 디렉터리에 배치하는 이유main/resources는 애플리케이션의 모든 리소스 파일(예:..

빅데이터/하둡 2024.08.13
macOS 로컬에서 스파크 실행하기

1. 다운로드 링크 : spark.apache.org/downloads Downloads | Apache Spark Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS. Note that, Spark 2.x is pre-built with Scala 2.11 except version 2.4.2, which is pre-built with Scala 2.12. Spar spark.apache.org 2. 압축풀기 저는 Documents 아래에 압축을 풀었습니다. $ pwd ~/Documents/spark-3..

빅데이터/하둡 2021.04.21
하둡 맵리듀스 동작방법

하둡의 맵리듀스에 대한 설명은 다음링크를 참조한다. voidmainvoid.tistory.com/399 하둡 맵리듀스 접근법 맵리듀스는 일괄질의처리기이다. 합리적인 시간 내에 결과를 보여주는 능력을 가지고 있음. 질의를 실행한 이후 수초내에 결과를 받는 시스템과는 다름. 하둡은 기존 병렬프로그래밍과 다른 분 blog.voidmainvoid.net 맵리듀스를 운영하는 2가지 방법을 알아본다. 첫번째는 전통적인 하둡의 맵리듀스를 사용하는 방식과 두번째는 YARN을 사용하는 방식이다. 각 방식에 대해 알아보자. 맵리듀스1 Job : 클아이언트가 수행하는 작업 단위. 하둡은 Job을 맵 태스크와 리듀스 태스크로 나우어 실행한다. Jobtracker : Tasktracker들이 수행할 태스크를 스케쥴링 Taskt..

빅데이터/하둡 2020.11.26
하둡 맵리듀스 접근법

맵리듀스는 일괄질의처리기이다. 합리적인 시간 내에 결과를 보여주는 능력을 가지고 있음. 질의를 실행한 이후 수초내에 결과를 받는 시스템과는 다름. 하둡은 기존 병렬프로그래밍과 다른 분산 프로그래밍 관점에서 바라봐야한다. MPI와 같은 병렬프로그래밍은 사용자로 하여금 직접적인 알고리즘을 짜도록 도와주지만 하둡은 최상위 수준에서만 동작한다. 개발자는 데이터의 흐름을 신경쓰지 않아도 되고 데이터 모델 관점에서만 생각하면된다. 맵리듀스와 같은 분산프로그래밍에서 어려운 점은 원격 프로세스의 실패/성공 여부이다. 프로세스(태스크)가 실패했을 경우를 감지하여 장애가 없는 머신에서 다시 돌려야한다. 하둡의 맵리듀스는 태스크간의 의존성이 없는 아키텍처이기 때문에 실패에 크게 고민하지 않아도 된다. 맵리듀스는 맵의 실패보..

빅데이터/하둡 2020.11.24
HDFS cilent 사용시 HA구성된 node 연결하기

HDFS client를 사용하여 hdfs data를 직접 접근하곤 합니다. // HDFS 설정 Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://172.1.2.3:8020"); // FileSystem 설정 FileSystem dfs = FileSystem.get(conf); Path filenamePath = new Path("/data/test.txt"); System.out.println("File Exists : " + dfs.exists(filenamePath)); // Write data FSDataOutputStream out = dfs.create(filenamePath); out.write("TEST..

빅데이터/하둡 2020.03.11
pyspark에서 gzip으로 압축되어 있는 파일 읽는 방법

pyspark를 통해 다양한 파일을 읽을 수 있습니다. 보통 .text 또는 .log와 같은 확장자로 되어진 plainText를 읽기도 하지만 압축된 파일인 .gz 과 같은 파일을 읽어야할 때도 있습니다. 이렇게 .gz과 같이 압축된 파일을 pyspark를 통해 읽으려면 어떻게 해야할까요? rdd = sc.textFile("data/label.gz") print rdd.take(10) 정답은 생각보다 간단합니다. textFile method를 사용하여 .text나 .log파일을 읽듯이 그대로 입력하여 읽으면 됩니다. Spark Document에 따르면 아래와 같이 나와 있습니다. All of Spark’s file-based input methods, including textFile, support r..

빅데이터/하둡 2020.02.11
pyspark에러 ImportError: No module named XXXX

pyspark로 개발하다 보면 local에서 돌릴때는 정상적으로 돌아가는데 cluster mode(yarn 등)으로 실행할때 아래와 같이 오류가 발생하는 경우가 있습니다. 사실 spark가 돌아가는 방식에 대해 이해하면 쉬운데, 결론부터 말하자면 worker node에 해당 모듈이 깔려 있지 않아서 발생하는 오류입니다. 위 그은Spark가 Cluster deployment mode로 돌아가는 것을 형상화 합니다. 실제로 돌아가는 Task는 각 worker node에서 수행하기 때문에 각 worker node에 module 이 존재하지 않으면 module을 못찾게 되는 것입니다.

빅데이터/하둡 2020.02.10
[local hadoop]localhost port 22: Connection refused 에러 발생시 해결방법 in MacOS

맥북에서 테스트를 위해 local hadoop을 띄우기 위해 테스트를 하다보면 아래와 같은 오류를 발생할 때가 있습니다. $ /usr/local/Cellar/hadoop/3.1.2/sbin/stop-all.sh WARNING: Stopping all Apache Hadoop daemons as a1003855 in 10 seconds. WARNING: Use CTRL-C to abort. Stopping namenodes on [localhost] localhost: ssh: connect to host localhost port 22: Connection refused Stopping datanodes localhost: ssh: connect to host localhost port 22: Conne..

빅데이터/하둡 2020.01.16
Java로 AWS s3에 간단히 file write하기(hadoop-aws 라이브러리 사용, NativeS3FileSystem)

S3는 Simple Storage Service의 약자로 AWS의 강력한 object storage이다. 요구사항에 따라 Java code를 사용하여 aws s3에 file을 write해야할 때가 있다. aws-java-sdk를 사용해도 되지만 apache hadoop에서 제공하는 hadoop-aws를 사용하여 간단하게 file write가 가능하다. 단계 1) 디펜던시 추가 org.apache.hadoop hadoop-aws 2.7.3 org.apache.commons commons-io ${commons-io.version} 단계 2) AWS에서 secretawsAccessKeyId, awsSecretAccessKey 발급 단계 3) 코딩 import org.apache.hadoop.conf.Conf..

빅데이터/하둡 2019.07.11
Hadoop에서 hadoop job은 어떻게 각 data node에서 job을 수행할까?

Hadoop에서 가장 많이 쓰이는 명령어로 아래와 같이 job을 수행하는 것이 있다. /bin/hadoop jar [jar file] [arguments..]상기와 같이 jar를 실행하게되면 hadoop은 어떤 node로 어떤 job을 보내게 되는걸까? Client 혹은 interface server에서 hadoop jar와 함께 command를 입력Client는 실행에 대한 신규 application Id를 발급받. 그리고 jar file은 HDFS의 job resource로 복사(by default 10 on large clusters)Cluster(각 데이터노드)에서 실행됨. (다만 hadoop config에 local 설정을 하게 되면 해당 호스트에서 실행됨)

빅데이터/하둡 2018.12.17
Hdfs dfs 명령어 정리 및 설명(ls, cat, du, count, copyFromLocal 등)

Hadoop을 적절히 사용하기 위해서는 hdfs 명령어를 알아야 한다. 아래에 정리를 해 보았다. ※ 2.6.0 version을 기준으로 정리함 Hadoop 명령어 Hadoop filesystem command를 사용하기 위함. Usage : hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS] HDFS 명령어 File System(FS) shell은 Hadoop Distributed File System(HDFS)를 여타 파일시스템처럼 관리하기 위한 목적으로 command를 사용할 수 있다. Hadoop-2.6.0에서는 총 33개의 HDFS 명령어를 지원한다. 1) appendToFile Local 파일들을 hdfs에 append 저장하기 위한 목적 Usage: hdfs df..

빅데이터/하둡 2018.12.11