-
시작하세요! 하둡 프로그래밍 빅데이터 분석을 위한 하둡 기초부터 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/i18nLANG="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