반응형

안녕하세요

알고리즘 공부하는 개발자 Henry Joo 입니다~~~~><

 

오늘은 요기요, 배민, 배달통의 기업으로 알려지는 

Delivery Hero Korea의 코딩테스트를 보았습니다.

 

 

 

코딩테스트의 시작은 이렇습니다

 

제가 최근에 알고리즘 공부를 하고 있는데,
비전공자 친구들에게 파이썬으로 알고리즘 푸는 방법을
알려주고 있습니다~~

 

그런데 최근에 그 중 한 친구가

다음과 같은 Python 공고가 올라왔다고 단톡방에 올려주었습니다.

 

 

 

 

확인해보니

Python으로 백엔드쪽을 개발하는 조직에서

Python 인력을 대규모 채용한다는 내용이었습니다.

 

때마침 Python을 공부하고 있었던 찰나에,

그동안에 쌓은 실력을 가늠해볼 수 있는 좋은 시간이겠다 싶어서 바로 접수했습니다!!!ㅋㅋㅋ

 

 

 

 

모바일로도 간편하게 접수할 수 있었습니다!!

(접수 링크: https://boards.greenhouse.io/deliveryherokoreatech/jobs/4713964002?gh_src=efc568952us)

 

별다른 서류전형없이

지원자의 이름과 메일주소, 그리고 연락처만 기입하면

누구에게나 코딩테스트를 시켜주는 그런 채용방식이었습니다(심플해서 좋았습니다ㅋㅋㅋ)

 

 

신청을 완료하고,

Gmail에 "띠링~~!" 하고

바로 안내메일이 도착했습니다~~~

 

 

 

 

본 메일 수신 후,
온라인 코딩테스트를 볼 수 있는 사이트를

24시간 안에 링크로 보내준다는 내용이었습니다.

 

지원을 완료하고
설레는 마음으로 하루를 보내고

 

다음날!! 메일이 도착해있었습니다~~

 

 

 

 

본 메일 수신 후 7일 이내에
링크에 들어가서 코딩테스트를 진행하라고
나와있었습니다~~~~!

 

(코딩테스트는 Codility 라는 웹사이트를 통해서 진행이 되었습니다)

 

원래 저는 Python에 대해서 쫌 더 공부를 하고 보려고 하였으나,

코딩테스트 문제가 너무 궁금해서 바로 들어가서 풀어보았습니다~~!!

실제로 문제 풀면서

알고리즘 뿐만 아니라
다양한 지식이 필요했습니다~~!!ㅎㅎ

 

문제를 푸는 내내 어려웠지만 

알고리즘 푸는 거 자체가 그냥 재밌었습니다

 

 

 

 

 

문제의 내용을 말씀드릴 수 없지만,

100분 안에 2문제 풀기를 도전하였고!

 

결과는 한문제 대충 맞추고,

한문제 거의 감도 못잡았습니다.ㅜㅜ

 

그래도 생각보다 알고리즘 푸는 시간이 너무 재밌어서

아쉬움보다는 즐거움이 더 많이 남았습니다~!!ㅎㅎㅎ

 

 

문제를 풀고 나서 1분 남겨두고 

바로 제출~~~~~!!ㅎㅎㅎ

 

 

 

 

 

Tip: 모든 문제를 다 Python으로 풀어야되서
Python의 전체적인 문법에 대해서

공부하고 보시면 좋을 것 같습니다~!!

 

 

문제 풀고 제출하면,

짧게 Survey 같은거를 시키는데,

생각보다 Delivery Hero Korea라는 회사가 

코드에 대한 정성과 피드백을 소중히 여기고 있다는 느낌이 물씬 들었습니다.!!

 

 

아래는 Delivery Tech 블로그라고 해서,

다양한 개발 경험에 대해서 나누고,

Posting 하는 분위기인것 같아서 공유드립니다~!!ㅎㅎ

 

https://medium.com/deliverytechkorea

 

Delivery Tech Korea — 요기요&배달통 기술블로그 – Medium

요기요&배달통 서비스 개발 및 함께 일하는 방식과 문화, Delivery Hero Group의 글로벌 배달앱 경험에 대한 이야기를 나눕니다.

medium.com

 

 

ps. Delivery Hero Korea 코딩테스트는 Codility 라는 사이트에서 진행됩니다.

혹시 Delivery Hero Korea 코딩테스트를 준비중이시라면, 아래 링크를 통해서

하루에 1문제씩 풀어보시는 것도 추천드립니다!

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

 

제 강의입니다~~!ㅎㅎ

 

 

오늘도 모두 열공하시고

화이팅하세여~~!!ㅎㅎ

 

반응형
반응형

물고기가 위 또는 아래 방향으로 헤엄치고 있는데, 

물고기의 사이즈에 따라서 크기가 큰 물고기가 작은 물고기와 충돌할때,

잡아먹게 되면!! 총 몇마리의 물고기가 남는지를 물어보는 문제다

 

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A, B):
    # write your code in Python 3.6
    
    if len(A) == 1:
        return 1
    
    arr = []
    
    for i in range(len(A)):
        arr.append((A[i],B[i]))
        
    arr_ = []
    arr_.append(arr[0])

    for i in range(1,len(arr)):
        
        # 충돌하면
        while(True):
            if arr[i][1] == 0 and arr_[len(arr_)-1][1] == 1:
                # 기존 물고기가 더 쎄면
                if arr[i][0] < arr_[len(arr_)-1][0]:
                    break
                # 새로운 물고기가 더 쎄면
                else:
                    del arr_[len(arr_)-1]
            else:
                arr_.append(arr[i])
                break
            
    return len(arr_)
            
    pass

 

처음으로 시도했을때, 정확도는 --> 75%가 나왔다ㅠㅠㅠ

어디서 에러가 발생했는지 확인해보니

모두 한방향으로 가고, 하나의 물고기가 다른 방향으로 갈 때,

Runtime Error가 발생하고 있었다.

 

 

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A, B):
    # write your code in Python 3.6
    
    if len(A) == 1:
        return 1
    
    arr = []
    
    for i in range(len(A)):
        arr.append((A[i],B[i]))
        
    arr_ = []
    arr_.append(arr[0])

    for i in range(1,len(arr)):
        
        # 충돌하면
        while(True):
            if arr[i][1] == 0 and arr_[len(arr_)-1][1] == 1:
                # 기존 물고기가 더 쎄면
                if arr[i][0] < arr_[len(arr_)-1][0]:
                    break
                # 새로운 물고기가 더 쎄면
                else:
                    del arr_[len(arr_)-1]
                    if len(arr_) == 0:
                        arr_.append(arr[i])
                        break
            else:
                arr_.append(arr[i])
                break
            
    return len(arr_)
            
    pass

 

 

생각해보니 del 이라는 예약어를 사용할 때,

더이상 기존에 물고기가 존재하지 않을 수도 있는 예외처리를 진행해주어야 했다.

 

 

그래서 

del 이라는 코드 아래에 아래와 같이 조건문을 넣어주어 해결하였다.

 

if len(arr_) == 0:
	arr_.append(arr[i])
    	break

 

반복문 하나만 사용하여 문제를 풀었다.

 

시간 복잡도: O(N) --> 100%의 정답률

 

 

관련 유튜브 강의도 있습니다~~!

https://www.youtube.com/watch?v=pPk-qrvBNO8

 

저의 강의입니다ㅋㅋㅋ

반응형

'Codility' 카테고리의 다른 글

Codility - StoneWall  (0) 2020.05.09
Codility - Nesting 문제풀이  (1) 2020.04.28
Codility - Brackets  (0) 2020.04.27
Codility - Triangle  (0) 2020.04.25
Codility - NumberOfDiscIntersections  (0) 2020.04.24
반응형

이 문제는 잘만 풀면 한큐에 끝낼 수 있는 문제이다.

 

그러나 조건에 다양한 예외처리를 신경써주어야 한다.

 

그렇지 않으면, 중간에 Runtime Error가 발생한다ㅜㅜㅜ

 

시간 복잡도: O(N) --> 100%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(S):
    # write your code in Python 3.6
    
    
    if len(S) == 0:
        return 1
    
    arr = []
    
    for i in S:
        if i == "{":
            arr.append(3)
        elif i == "[":
            arr.append(2)
        elif i == "(":
            arr.append(1)
        elif i == ")":
            arr.append(-1)
        elif i == "]":
            arr.append(-2)
        elif i == "}":
            arr.append(-3)
           
    
    arr_ = []
    arr_.append(arr[0])
    
    for i in range(1,len(arr)):
        if len(arr_) != 0 and arr[i] < 0 and arr[i] == -1 * arr_[len(arr_)-1]:
            del arr_[len(arr_)-1]
        else:
            arr_.append(arr[i])
        
    if len(arr_) == 0:
        return 1
    else:
        return 0
        
    
    pass

 

관련 유튜브 강의도 있습니다~~

 

https://www.youtube.com/watch?v=4Lzl1yOsyRM

 

저의 강의입니다ㅋㅋㅋ

반응형

'Codility' 카테고리의 다른 글

Codility - Nesting 문제풀이  (1) 2020.04.28
Codility - Fish  (0) 2020.04.27
Codility - Triangle  (0) 2020.04.25
Codility - NumberOfDiscIntersections  (0) 2020.04.24
Codility - MaxProductOfThree  (0) 2020.04.24
반응형

Codility Lesson 6의 마지막 문제다.

Triangle 이라는 문젠데, 배열 안에 3개의 수가 아래의 조건을 만족하는 지의 여부를 묻는 문제다.

 

A[i] + A[j] > A[k]

A[j] + A[k] > A[i]

A[i] + A[k] > A[j]

(단, 0< i,j,k < N)

 

최대한 for 문을 안쓰고 싶은데, 어떻게 해야할까..

for 문 3개 쓰니깐, 마지막 3문제는 Timeout Error가 발생했다.ㅜㅜ

 

 

 

시간 복잡도: O(N**3) --> 81%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")


def solution(A):
    # write your code in Python 3.6
    
    A = sorted(A)
    
    for i in range(len(A)):
        for j in range(i+1,len(A)):
            for k in range(j+1,len(A)):
                if A[i] + A[j] <= A[k]:
                    break
                else:
                    if is_triangular(A[i],A[j],A[k]) == 1:
                        return 1
            
    return 0
    pass


def is_triangular(a,b,c):
    if a+b > c and a+c > b and b+c > a:
        return 1
    else:
        return 0

 

크기에 따라서 오름차순으로 정렬하고,

for문 하나로 문제를 푸니 풀렸다!!

 

ex) 1,2,5,8,10,20 로 정렬을 하면,

 

a < b < c이렇게 정렬이 될때,

 

일단 a + c > b 는 당연한 사실 c가 b 보다 크기 때문에.

그리고 c + b > a도 당연한 사실 c,b가 a보다 크기 때문에,

 

그러므로 a + b > c 인지만 확인하면 됨.

 

 

시간 복잡도: O(N*log(N)) --> 100%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    A = sorted(A)
    
    for i in range(len(A)-2):
        if A[i] + A[i+1] > A[i+2]:
            return 1
    
    return 0
    pass

 

관련 유튜브 강의도 있습니다~~

 

https://www.youtube.com/watch?v=IxLlq9RGFI8

 

저의 강의입니다ㅋㅋㅋ

반응형

'Codility' 카테고리의 다른 글

Codility - Fish  (0) 2020.04.27
Codility - Brackets  (0) 2020.04.27
Codility - NumberOfDiscIntersections  (0) 2020.04.24
Codility - MaxProductOfThree  (0) 2020.04.24
Codility - Distinct  (0) 2020.04.23
반응형

열심히 풀려고 하였으나, 반복문 2번 돌리는 거 외에는 생각이 잘 안났다.ㅜㅜ

결국 정답을 보고 이해하였지만, 앞으로도 열심히 해야겠다.

 

내 코드: 시간 복잡도: O(N ** 2) --> 53%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    count = 0
    
    for i in range(len(A)):
        for j in range(i+1,len(A)):
            tmp = i+A[i] 
            tmp2 = j-A[j]
            if tmp2 <= tmp:
                count += 1
                
    return count
                
            
    
    pass

구글링한 코드: 시간 복잡도: O(N*log(N)) or O(N) --> 100%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    arr = []
    
    for i,v in enumerate(A):
        arr.append((i+v,1))
        arr.append((i-v,-1))
        
    arr.sort()
    
    
    intersect = 0
    intervals = 0
    
    for i,v in enumerate(arr):
        if v[1] == 1:
            intervals -= 1
        if v[1] == -1:
            intersect += intervals
            intervals += 1
    
    if intersect > 10000000:
        return -1
    
    return intersect
    pass

 

ㅜㅜ 열심히 풀려고 해보았지만, 생각보다 다른 접근 방법이 생각이 나지 않아 골머리를 앓았다.

 

코드는 다음의 블로그를 참고했다.

https://m.blog.naver.com/PostView.nhn?blogId=evanecen&logNo=221359303451&proxyReferer=https:%2F%2Fwww.google.com%2F

 

다들 화이팅

코로나 19 다함께 이겨냅시다!

 

 

관련 유튜브 강의도 있습니다~~~

https://www.youtube.com/watch?v=Ell5C1yoBRQ

 

저의 강의입니다ㅋㅋㅋ

반응형

'Codility' 카테고리의 다른 글

Codility - Brackets  (0) 2020.04.27
Codility - Triangle  (0) 2020.04.25
Codility - MaxProductOfThree  (0) 2020.04.24
Codility - Distinct  (0) 2020.04.23
Codility - PassingCars  (0) 2020.04.20
반응형

시간 복잡도: O(N * log(N)) --> 100%의 정답률

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    A = sorted(A, reverse=True)
    
    if A[0]*A[1]*A[2] > A[0]*A[-1]*A[-2]:
        return A[0]*A[1]*A[2]
    else:
        return A[0]*A[-1]*A[-2]
    
    pass

 

관련 유튜브 강의도 있습니다~~!!

 

https://www.youtube.com/watch?v=gFpzBTytLPY

저의 강의입니다ㅋㅋㅋ

반응형

'Codility' 카테고리의 다른 글

Codility - Triangle  (0) 2020.04.25
Codility - NumberOfDiscIntersections  (0) 2020.04.24
Codility - Distinct  (0) 2020.04.23
Codility - PassingCars  (0) 2020.04.20
Codility - MinAvgTwoSlice  (0) 2020.04.19
반응형
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    if len(A) == 0:
        return 0
    
    B = set(A)
    
    return len(B)
    
    pass
반응형

'Codility' 카테고리의 다른 글

Codility - NumberOfDiscIntersections  (0) 2020.04.24
Codility - MaxProductOfThree  (0) 2020.04.24
Codility - PassingCars  (0) 2020.04.20
Codility - MinAvgTwoSlice  (0) 2020.04.19
Codility - GenomicRangeQuery  (0) 2020.04.19
반응형

오늘은 리눅스 Ubuntu에 Hadoop을 설치해보도록 하겠습니다.

 

귀여운 코끼리 로고를 가지고 있는 하둡입니다.

 

 

하둡은 분산처리를 도와주는 플랫폼이라고 생각하시면 됩니다.

빅데이터 환경을 구축하기 위해서 필수적인 시스템입니다.

 

빅데이터 시대가 도래했다!!

요즘 5G 시대가 오면서, 점점 오고가는 데이터들이 많아지고 있습니다.

데이터를 송수신하는데 걸리는 지연시간도 점점 단축되고,

그만큼 다양한 데이터들이 발생하고 어떤 시스템에서는 하루에 몇십억개의 로그들이 찍히고 있는 곳도 있다고 합니다.

이러한 빅(big)데이터를 빠르게 처리하고 저장하기 위해서 빅데이터 프로그래밍이라는 새로운 분야가 개설되었습니다.

 

우리 집에 있는 컴퓨터로는 빅데이터 프로그래밍을 할 수 있을까요?

절대적으로 못합니다. 하루에 몇억개의 로그를 실시간으로 받아주고, 처리해주다보면,

하루도 채 가지 못해서, 컴퓨터가 병들고, 터질수도...ㅜㅜ

 

하둡이란?

여러개의 저성능 컴퓨터를 이어붙여서, 각 컴퓨터에 일을 조금씩 부여해주어,

결과적으로는 빅데이터를 처리할 수 있게 만들어주는 시스템.

 

분산저장과 분산 처리를 지원해줍니다.

분산저장: HDFS(Hadoop Distributed File System의 약자)

분산처리: Hadoop MapReduce(맵리듀스라고 읽습니다.)

 

## 중요 ##

우분투에 하둡 설치하기

 

하둡을 설치하기 위한 환경 구축

 

먼저 우분투의 설치 시스템인 apt-get 을 업데이트 해줍니다.

>> sudo apt-get update

 

그리고 자바를 설치해주어야겠죠?

아래의 명령어를 실행합니다.

>> sudo add-apt-repository ppa:webupd8team/java

 

도중에 ENTER 키 한번 눌러주시면 됩니다.

 

그리고 apt-get 시스템 한번 더 update 해주세요.

>> sudo apt-get update

 

java 8버전을 설치해주어하는데, 

>> sudo apt-get install oracle-java8-installer

의 명령어를 입력하면,

그런거는 없다고 말한다.

 

 

왜그런지 찾아보니, JAVA 라이선스 정책이 변경되어서, 수동으로 설치를 해주어야 한다고 한다.

(자동: sudo apt-get install oracle-java8-installer 명령어로 설치하는거를 의미)

 

 

출처: https://m.blog.naver.com/PostView.nhn?blogId=love_tolty&logNo=221585458347&proxyReferer=https:%2F%2Fwww.google.com%2F

 

(JAVA 라이선스 정책변경에 따른) Ubuntu에 JAVA v1.8 설치하기

​0. 들어가기 전에... | 간단한 포스팅 소개 세계 최대 데이터베이스 관련 SW 개발사인 Oracle社는 201...

blog.naver.com

 

 

그래서 아래와 같이 설치해준다.

자바 버전을 관리하는 github 사이트에 들어가서 수동으로 설치진행해준다.

https://github.com/frekele/oracle-java/releases/download/8u212-b10/jdk-8u212-linux-x64.tar.gz

불러오는 중입니다...

 

여기서,

1. jdk-8u212-linux-x64.tar.gz 버전에서 마우스 우클릭

2. 주소 링크 복사 클릭

3. 터미널에서 wget + 복사한 주소 붙여넣기(wget 명령어는 링크에 들어가서 해당 파일을 다운로드 하는 리눅스 명령어이다.)

4. Enter 로 설치진행.

 

5. 잘되고 있쥬?

6. 다운로드 잘 했는지 확인

>> ls

명령어 실행하면 jdk-8u212-linux-x64.tar.gz 가 잘 받아진 것을 볼 수 있다.

(ls 명령어는 현재 위치에 있는 파일들의 list를 보여준다. (ls ==> list를 의미하지 않을까?)

7. 압축을 푼다.

>> tar -xvzf jdk-8u212-linux-x64.tar.gz

명령어를 실행(tar 라는 명령어는 tar 로 압축되어 있는 압축파일을 압축하거나, 풀때 사용)

 

8. 잘 풀렸는지 확인

>> ls

명령어 입력하니, 잘 풀렸다. jdk1.8.9_212 라는 파일이 생김.

9. 해당 파일을 /usr/local 위치로 옮기

>> sudo mv jdk1.8.0_212 /usr/local

10. 잘 옮겨졌다 확인해보니, 잘 옮겨졌다.

>> ls /usr/local

 

11. 옮겨진 자바를 우분투가 인식하기 위해 환경설정 파일에 등록해준다.

>> sudo vi /etc/profile

위 화면 뜨면, 맨 아래줄에 다음과 같이 추가해준다.

(추가 방법:

1. "esc" 누르고 맨 아래줄에 가서 "a" 키 누르고 입력 활성화시킴

2. 파일 수정하고

3. "esc" 누르고 입력 비활성화시킴

4. ":" 누르고 

5. "qw" 누르고 "엔터")

 

 

 

JAVA_HOME=/usr/local/jdk1.8.0_212

CLASSPATH=$JAVA_HOME/lib/tools.jar

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

 

맨 아래줄에 추가된 것 보이시죵?

 

 

 

JAVA_HOME 이라는 것을 추가해서 앞으로는 우분투가 JAVA를 알아볼 수 있도록 profile에 적어준 것이다.

 

12. profile 수정하고 나면 리눅스 reboot 전까지는 바로는 적용이 안되서 source 명령어 수행하여 바로 적용시킴

source 명령어 후에 설정한 JAVA_HOME이 잘 뜬다.

 

13. java -version 확인해서 잘 나오면 성공적으로 우분투에 자바 설치된 것입니다.

>> java -version

 

 

 

드디어 자바 설치 완료!!

 

이제 다시 apt-get 시스템 업그레이드 해준다./

 

>> sudo apt-get upgrade

 

## 우분투 그룹 만들어주고 키 설정 ##

 

먼저 hadoop 이라는 그룹을 만든다.

>> sudo addgroup hadoop

 

그리고 해당 그룹에 사용자를 추가한다.

>> sudo adduser --ingroup hadoop hduser

 

사용자에 대한 비밀번호를 2번 입력받고,

관련 정보들은 입력해준다.(연습용이라면 그냥 enter 치고 넘어간다.)

 

그리고 sudoers 파일에 사용자를 등록해준다.

>> sudo vi /etc/sudoers

 

다음의 파일은 중요한 파일이여서 readonly(즉 읽는것만 가능하다고 나온다.)

이것을 해결하기 위해

":" + "q!" (강제종료로 나가서)

 

아래 링크를 통해 

>> sudo bash

>> chattr -i /etc/sudoers

>> chmod u+w /etc/sudoers

입력하고

 

다시 실행하면 수정가능하다.

>> vi /etc/sudoers

 

https://datacodingschool.tistory.com/25

 

os, readonly 파일 수정방법(feat, sudoers 수정)

아래의 코드를 명령창에 실행하면 된다. >> sudo bash >> chattr -i /etc/sudoers >> chmod u+w /etc/sudoers 그 후 수정하면 된다. ex) >> vi /etc/sudoers

datacodingschool.tistory.com

수정하였다.

 

openssl server 를 설치한다.

>> apt-get install openssh-server

 

키를 생성해서, 앞으로 들어갈때는 비밀번호 물어보지 않고 들어가게 설정해줌

>> sudo su hduser -> cd -> ssh-keygen -t rsa -P "" -> Enter

>> cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

 

sysctl.conf 파일을 수정한다.

>> sudo vi /etc/sysctl.conf

 

맨 아래쪽에 다음 내용 추가

# disable ipv6

l.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable)ipv6 = 1

 

그 다음 ubuntu 리부트 해준다.

>> sudo reboot

 

1분 뒤? 다시 켜준다.

 

## 중요 ##

## 이제 진짜 하둡 설치 ##

 

1. 노란색 다운로드 들어감

2. 아래 mirror site 클릭

 

3. https://downloads.apache.org/hadoop/common 클릭하여 들어감

 

 

4. hadoop-3점대 버전으로 설치해보겠다.

5. hadoop-3.1.3.tar.gz 파일에서 우클릭하고 링크 주소 복사를 눌러, 주소를 복사한다.

 

6. wget + 복사한 주소 를 통해 주소가 가리키는 파일을 가져온다.

>> wget 주소

 

7. 다운로드 받은 hadoop-3.1.3.tar.gz 파일 압축 풀기

>> tar -zxf hadoop-3.1.3.tar.gz

 

8. 압축 푼 파일을 위치를 옮겨준다.

>> sudo mv 'hadoop-3.1.3' /usr/local/hadoop

 

9. 아래 명령어도 실행해준다.

>> sudo chown hduser:hadoop -R /usr/local/hadoop

>> sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode

>> sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode

>> sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/

 

10. 이제 환경설정 파일을 수정해준다.

>> sudo vi .bashrc

 

11. .bashrc 파일을 열고 맨 아래에 다음을 추가해준다.

출처: https://coding-factory.tistory.com/60

12. hadoop-env.sh 편집해주기

>> cd /usr/local/hadoop/etc/hadoop

>> sudo vi hadoop-env.sh /비밀번호

 

13. 하둡 관련 파일 수정해준다.

>> sudo vi core-site.xml

 

>> sudo vi hdfs-site.xml

 

>> sudo vi yarn-site.xml

 

template 파일이라고 하둡에서 입문자들을 위해 미리 작성해놓은 구조가 있는데,

아래의 코드가 지금 설치하는 대로 하면 3점대에서는 존재하지 않아서 에러가 날 수도 있다.(그냥 무시)

>> cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

 

 

>> sudo vi mapred-site.xml

>> cd

>> source ~/.bashrc

>> cd /usr/local/hadoop_tmp/hdfs

 

 

 

## 드디어 하둡 실행 ## (거의 다옴)

 

각 노드들 켜주는 명령어이다.

>> hadoop namenode -format

>> start-dfs.sh 

>> start-yarn.sh

 

여기까지 하둡 관련 노드들을 실행했고,

잘 실행됬는지 확인하는 명령어를 입력해본다.

 

>> jps

아래처럼 나오면 성공!!

참고한 블로그: https://coding-factory.tistory.com/60

 

[Linux] 우분투에서 하둡(hadoop) 설치하기

리눅스 우분투상에서 하둡(hadoop)을 설치해보도록 하겠습니다. 하둡(hadoop)은 빅데이터 환경을 구축하기 위해서 필요한 필수 프로그램입니다. 이번 포스팅에서는 우분투에서 하둡의 설치방법에 대해서 알아보도..

coding-factory.tistory.com

 

반응형

+ Recent posts