• 시작하세요! 하둡프로그래밍 [결론 : 실패]

    2017. 11. 1. 00:04

    by. 위지원




    시작하세요! 하둡 프로그래밍 빅데이터 분석을 위한 하둡 기초부터 YARN까지 - 정재화 지음을 보고 공부한내용



    혹시라도 이걸 성공하고 싶어 오신분을 위해 http://ledgku.tistory.com/74 이분것을보시는걸추천합니다.. 흐귝

    하둡 개발 준비


    1.실행 모드 결정

    3가지가 있음

    -독립 실행(로컬모드) : 기본 실행모드 ,맵리듀스 디버깅용

    -가상 분산 : 하나의 장비에서함 , 보통 하둡 초보자들이 이렇게해서 공부

    -완전 분산 : 여러대의 장비에 하둡설치



    2.리눅스 서버 준비

    -네임노드

    -보조네임노드,데이터노드 : 실제 서비스용도면 보조네임노드만 단독인게 좋음

    -데이터노드

    -데이터노드


    VirtualBox dp 책에 있는데로 CentOS를 설치했다. http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso



    센트오에스는 처음깔아보는데 참 이쁘다 UI가..



    설치할 때 이 두 가지를 설정해 준다. 시스템과 사용자 설정


    **내가 이 네트웤 설정을 안해서 ip가 안잡혀서 흐기기깅ㅎ귺 ㅠㅠㅠ




    2.하둡다운로드 http://apache.mirror.cdnetworks.com/hadoop/common/stable1/

    *책에서 안전한 버전을 받으라는 권고를 따르자 했음 , 이렇게 설치 안하고 내 멋대로 설치하니까 ./conf파일이 없었음... 흑흐긓긓꾸ㅠㅠㅠ


    $su

    $yum install wget                                           

    *yum에서 "Cannot find a valid .... : base/7/x86_64 에러가 나면 http://weejw.tistory.com/141


     $wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

    출처: http://weejw.tistory.com/128 [위지원의 블로그]
     $wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

    출처: http://weejw.tistory.com/128 [위지원의 블로그]
     $wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

    출처: http://weejw.tistory.com/128 [위지원의 블로그]
     $wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

    출처: http://weejw.tistory.com/128 [위지원의 블로그]

    $wget http://apache.mirror.cdnetworks.com/hadoop/common/stable1/hadoop-1.2.1.tar.gz




    압축 풀기


    $su hadoop

    $tar xvfz hadoop.gz파일

    $ln -s hadoop.gz파일 hadoop


    환경변수 설정


    $vi /etc/profile



    export HADOOP_HOME=/home/hadoop/hadoop

    export PAHT=$PATH:$HADOOP_HOME/bin


    *오타 조심해야한다. 오타나서 su,vi 뭐 아무것도 안먹히면 http://weejw.tistory.com/129


    잘 되었는지 확인하려면 $hadoop



    3.자바 설치 [ 하둡이랑 버전을 잘봐야한다고한다! 자칫 에러가 남!! ]


    +1.9를 받았는데 버전다운을 ㅂ좀해야할거같음


    $cd /usr/local/


    $wget --no-cookies[띄어쓰기]--header[띄어쓰기]"Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz


    버전변경이야 이렇게만 변경하면 되겠지 자바싸이트[링크]


    $wget --no-cookies[띄어쓰기]--header[띄어쓰기]"Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz



    이후과정은 버전 잘 변경해서 ..

    $chmod 755 jdk-9.0.1_linux-x64_bin.tar.gz

    $tar xvzf jdk-9.0.1_linux-x64_bin.tar.gz

    $ln -s jdk-9.0.1 java ( 심볼릭 링크 생성)


    환경변수 설정


    $vi /etc/profile


    export JAVA_HOME=/usr/local/java

    export PATH=$PATH:$JAVA_HOME/bin


    잘 되었는지 확인하려면 $java -version




    5.하둡 환경설정 파일 수정(6개)


    ./conf아래에있음

    hadoop-env.sh : 하둡 실행 셸 스크립트 파일 환경변수 , JDK경로, classPath,데몬 실행 옵션 설정

    masters : 보조네임노드를 실행할 서버

    slaves : 데이터노드를 실행할 서버

    core-site.xml : HDFS와 맵 리듀스에서 공통적으로 사용할 환경 정보를 설정 ( 설정 값이 없으면 core-default.xml 사용 )

    hdfs-site.xml : hdfs  설정 ( 설정 값이 없으면 hdfs-default.xml 사용)

    mapred-site.xml 맵리듀스 설정( 설정 값이 없으면 mapred-default.xml 사용)


    모든 파일에는 유용한 옵션설정이 가능하지만 나는 초보이니깐..필수적인것만 일단 해보겠다.


    1)hadoop-env.sh


    -java 경로 설정





    -HADOOP_PID_DIR을 설정해준다 하둡 데몬의 PID정보를 저장하는 디렉터리 (그냥 내가 디렉터리 생성해서 했음




    +아래의 마스터나 슬레이브는 호스트명이나 아이피로 기재하면 된다.


    2)masters

    wikibooks02


    3)slaves

    wikibooks02

    wikibooks03

    wikibooks04


    4)core-site.xml

    아래 두가지 속성을 추가

    fs.default.name : hdfs의 기본이름 (namenode) 이값을 참조해 네임노드 호출

    hadoop.tmp.dir : 하둡에서 발생하는 임시 데이터를 저장하기 위한 공간


    <property>

        <name>fd.default.name</name> :hdfs의 기본 이름으로 url형태로

        <value>hdfs://wikibooks01:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name> :하둡에서 발생하는 임시데이터를 저장하기 위한 공간 *이것도 파일 새로 만들어줌

        <value>/home/hadoop/hadoop-data</value>

    </property>


    5)hdfs-site.xml


    <property>

    <name>dfs.replication</name> :hdfs의 저장될 데이터의 복제본 개수 1로 설정하면 가상 분산모드 ,우리는 완전 분산이라 3

    <value>3</value>

    </propery>

    <property>

    <name>dfs.http.address</name> :네임노드용 웹서버 주소 50070이 기본값 완전분산일때 꼭 설정해야 보조네임이 네임에 접속함

    <value>namenode:50070</value>

    </property>

    <property>

    <name>dfs.secondary.http.address</name> :보조네임용 웹서버주소 :50090이 기본값

    <value>secondnode:50090</value>

    <property>


    6)mapres-site.xml


    <property>

    <name>mapred.job.tracker</name> :데이터노드에서 이주소로 맵리듀스 작업을 요청함

    <value>namenode:9001</value>

    </property>



    *여기까지 한다음에 버츄어머신에서 복제로 second,datanode 생성

    ++복제하고나서 네트워크 설정에서 주소 랜덤으로 바꿔주고



    여기서 맥주소 새로고침 버튼으로 변경해주면 된다


    *이제부터 서로 연결하기 위한 설정 +필수는 아니긴한데 그래도 하면 훨씬 편하다...


    1.호스트네임 설정,호스트 파일 수정(모든 노드에 동일) 



    확인하려면 $cat /etc/hostname



    2.하둡 실행 계정 생성과 호스트파일 수정(모든 노드에 동일)


    root로 하둡을 실행할 수있지만 좋지않은 방법이다.때문에 계정을 생성하는것이다


    $adduser hadoop

    $vi /etc/hosts 를 입력한 뒤 아래와같이 입력해준다. ( ssh접속할때 ip로 할꺼면 설정안해도 괜찮다)


     [ip주소] namenode

     [ip주소] secondnode

     [ip주소] datanode01

     [ip주소] datanode02


    3.ssh 설정 ( 공개키 배포 : 데이터노드에 배포 )


    $ssh-keygen

    $ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@secondnode

    $ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@datanode01

    $ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@datanode02


    5.인코딩 방식 설정 (잠시 보류;;)


    $echo $LANG

    $vi /etc/sysconfig/i18n


    LANG="ko_KR.UTF-8"

    SUPPORTED="en_US.UTF-8:en_US:ko_KR.eucKR:ko_KR:ko"

    SYSFONT="lat0-sun16"

    SYSFONTACM="8859-15"


    $source /etc/sysconfig/i18n


    잘되었는지 확인하려면 $locale





    **하둡실행


    namenode를 ssh로 접속한뒤 초기화 후 실행 버츄어머신은 스크롤이안되서 내 터미널씀 ㅠ-ㅠ


    $./bin/hadoop namenode -format





    $./bin/start-all.sh



    $jps로 확인




    ..;;

    잠시후에 죽어버린다 ..ㅠㅠ 끙 .. 에잇 암튼 이렇게 한다는 개념을 알았으니 다음번엔 하둡2를 깔아보자


    '2017년 > Spark' 카테고리의 다른 글

    하둡2.0 설치해보기  (0) 2017.11.02
    Spark Sql 실습  (0) 2017.10.20
    spark 로 하는 고속 빅데이터 분석과 처리  (0) 2017.10.19
    hadoop 설치  (0) 2017.10.19
    spark 예제 돌려보기  (0) 2017.10.18