메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


1. 서버준비(5대, CentOS설치,  Jdk설치)(root로 실행)


2. SSH설정(root로 실행)

가. [root@sda1 ~]# ssh-keygen -t rsa -P ""

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): 

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

69:08:3e:f2:60:6f:29:90:a9:64:e5:7a:d8:9f:11:5c root@sda1

The key's randomart image is:

+--[ RSA 2048]----+

|                 |

|                 |

|   ..  E         |

| oo..... .       |

|+o+.oo. S        |

|+o+= o..         |

|.o.o=.           |

|  .o. o          |

|     o           |

+-----------------+

나. /root/.ssh/에 id_rsa.pub이 생성됨, "cat id_rsa.pub >> authorized_keys"를 실행해서 파일을 만들어 주고

    각 서버에 authorized_keys를 복사해준다.

     ==> [root@sda1 .ssh]# cat id_rsa.pub >> authorized_keys

     ==> [root@sda1 .ssh]# scp -P 22 /root/.ssh/authorized_keys root@sda2:/root/.ssh/authorized_keys에서 호스트이          름만 바꿔서 각 서버에 복사해준다.

      * master에서 생성하고 authorized_keys를 각서버에 복사해주면 node1~node4는 패스워드를 묻지 않고 master의 접속을 받아 들이게 된다.

              (상호 접근이 가능하도록 하려면 모든 서버에서 ssh-keygen을 실행후 각각의 서버에 생성된 authorized_keys 의 내용을 모아서 

               각서버의 authorized_keys 에 추가해준다.)


3. /etc/hosts파일 수정및 5개 서버에 복사/배포(root로 실행)

   scp -P 22 /etc/hosts root@sda1:/etc/hosts

   scp -P 22 /etc/hosts root@sda2:/etc/hosts

   scp -P 22 /etc/hosts root@so1:/etc/hosts

   scp -P 22 /etc/hosts root@so2:/etc/hosts

   scp -P 22 /etc/hosts root@so-db2:/etc/hosts


4. hadoop계정 생성(모든 서버에서 수행해줌, root로 실행)

  가. adduser hadoop

  나. passwd hadoop 


5. /etc/profile수정(모든 서버에서 수행해줌, root로 수정)

가. [root@sda1 ~]# vi /etc/profile


export JAVA_HOME=/opt/jdk1.8.0_66

export PATH="$JAVA_HOME/bin:$PATH"

export CLASSPATH=".:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar"

export CATALINA_OPTS="Djava.awt.headless=true"

나. 변경내용 반영(각서버에서 모두 실행해줌) : [root@sda1 ~]# source /etc/profile


6. YARN설치(root로 수행)

  가. 설치할 폴더로 생성및 이동 : mkdir /svc/apps/sda/bin/hadoop

  나. jar파일 다운로드 : 

     [root@sda1 hadoop]# wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

  다. 압축풀어서 링크생성

   ==> [root@sda1 hadoop]# tar xvfz hadoop-2.7.2.tar.gz

   ==> [root@sda1 hadoop]# ln -s hadoop-2.7.2 hadoop


7. /etc/profile수정(root로 수행)후 각 서버에 scp한후 각 서버에서 "source /etc/profile"로 반영시켜준다.


#java Setting

export JAVA_HOME=/opt/jdk1.8.0_66

export PATH="$JAVA_HOME/bin:$PATH"

export CLASSPATH=".:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar"

export CATALINA_OPTS="Djava.awt.headless=true"


# Hadoop Path

export HOME=/svc/apps/sda/bin/hadoop
export HADOOP_PREFIX=$HOME/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
export HADOOP_HOME=$HOME/hadoop
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export YARN_HOME=${HADOOP_PREFIX}
export HADOOP_YARN_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop

# Native Path
export HADOOP_COMMON_LIB_NATIVE_DIR=${YARN_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$YARN_HOME/lib"


8. 필요한 경로 생성(서버모두 실행, root로 실행)

* mkdir /data, /logs 두개만 만들고 각 데몬을 띄위면 각 데몬에서 필요한 경로및 파일을 만든다


----------------------파일관련 경로 지정(참고)------------------------

가. etc/hadoop/hdfs-site.xml

 - dfs.namenode.name.dir : /data/hadoop/dfs/namenode

 - dfs.namenode.checkpoint.dir : /data/hadoop/dfs/checkpoint

 - dfs.datanode.data.dir : /data/hadoop/dfs/datanode

 - dfs.journalnode.edits.dir : /data/hadoop/dfs/journal/data


나. etc/hadoop/core-site.xml

 - hadoop.tmp.dir : /data/hadoop/tmp


다. etc/hadoop/mapreduce-site.xml

 - mapred.system.dir : /data/hadoop/mapred/system

 - mapred.local.dir : /data/hadoop/mapred/local

 - mapreduce.jobtracker.staging.root.dir : /data/hadoop/tmp/staging


라. etc/hadoop/yarn-site.xml

 - 파일경로 지정없음


(파일 경로 생성 명령문 - hadoop관련 데몬이 실행되면서 자동으로 생성되지 않는 경우 개별 생성해줄것)

root@sda1:/hadoop/mapred:> mkdir /data/hadoop

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/tmp

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/tmp/staging


root@sda1:/hadoop/mapred:> mkdir /data/hadoop/mapred

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/mapred/system

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/mapred/local


root@sda1:/hadoop/mapred:> mkdir /data/hadoop/dfs

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/dfs/namenode

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/dfs/checkpoint

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/dfs/datanode


root@sda1:/hadoop/mapred:> mkdir /data/hadoop/journal

root@sda1:/hadoop/mapred:> mkdir /data/hadoop/journal/data


9. 설정파일 수정(master에서 수정후 나머지는 scp명령으로 복사한다, root로 실행)

가. hdfs-site.xml

나. yarn-site.xml

다. mapred-site.xml

라. core-site.xml

마. hadoop-env.sh, yarn-env.sh: JAVA_HOME값 및 log경로 저장 


바. hadoop-env.sh(아래 환견경수 추가)

(export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native

export HADOOP_OPTS="${HADOOP_OPTS} -Djava.library.path=$HADOOP_PREFIX/lib"

#export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/hadoop/hadoop/share/hadoop/mapreduce:/hadoop/hadoop/share/hadoop/mapreduce/lib:$HIVE_HOME/lib:$HIVE_HOME/conf

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/svc/apps/sda/bin/hadoop/hadoop/share/hadoop/mapreduce:/svc/apps/sda/bin/hadoop/hadoop/share/hadoop/mapreduce/lib:$HIVE_HOME/lib:$HIVE_HOME/conf

#export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/hadoop/hadoop-2.5.2/share/hadoop/common/postgresql-9.3-1103.jdbc4.jar

)


* hadoop-env.sh에서 HADOOP_LOG_DIR값을 log파일이 저장될 경로로 지정한다.

#export HADOOP_LOG_DIR=${HADOOP_LOG_DIR}/$USER

export HADOOP_LOG_DIR=/logs/hadoop


* yarn-env.sh에서 YARN_LOG_DIR값을 지정하여 log파일이 저장될 경로로 지정한다.

export YARN_LOG_DIR=/logs/hadoop


사. slaves

아. masters


10. 각 서버에 복사(root로 실행)

root@sda1:~:> scp -r -P 22 hadoop-2.7.2 root@sda2:/svc/apps/sda/bin/hadoop


11. namenode포맷

root@sda1:~:> hdfs namenode -format


12. zookeeper설치/기동

https://www.gooper.com/ss/index.php?mid=bigdata&category=2779&document_srl=3016


13. zkfc포맷

root@sda1:~:> hdfs zkfc -formatZK 

14. hadoop cluster 기동

https://www.gooper.com/ss/index.php?mid=bigdata&category=2789&document_srl=3021

번호 제목 글쓴이 날짜 조회 수
740 [CDP7.1.7] oozie sqoop action으로 import혹은 export수행시 발생한 오류에 대한 자세한 로그 확인 하는 방법 gooper 2024.04.19 0
739 [Impala] alter table구문수행시 "WARNINGS: Impala does not have READ_WRITE access to path 'hdfs://nameservice1/DATA/Temp/DB/source/table01_ccd'" 발생시 조치 gooper 2024.04.26 0
738 [CDP7.1.7, Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 HDFS Replication시 User hdfs가 아닌 hadoop으로 수행하는 방법 gooper 2024.01.15 1
737 [CDP7.1.7]Hive Replication수행중 Specified catalog.database.table does not exist : hive.db명.table명 오류 발생시 조치방법 gooper 2024.04.05 1
736 [CDP7.1.7][Replication]Table does not match version in getMetastore(). Table view original text mismatch gooper 2024.01.02 2
735 ./gradlew :composeDown 및 ./gradlew :composeUp 를 성공했을때의 메세지 gooper 2023.02.20 6
734 호출 url현황 gooper 2023.02.21 6
733 [vue storefrontui]외부 API통합하기 참고 문서 총관리자 2022.02.09 7
732 [Cloudera Agent] Metadata-Plugin throttling_logger INFO (713 skipped) Unable to send data to nav server. Will try again. gooper 2022.05.16 7
731 [CDP7.1.7, Hive Replication]Hive Replication진행중 "The following columns have types incompatible with the existing columns in their respective positions " 오류 gooper 2023.12.27 7
730 [CDP7.1.7]Oozie job에서 ERROR: Kudu error(s) reported, first error: Timed out: Failed to write batch of 774 ops to tablet 8003f9a064bf4be5890a178439b2ba91가 발생하면서 쿼리가 실패하는 경우 gooper 2024.01.05 7
729 eclipse editor 설정방법 총관리자 2022.02.01 9
728 주문히스토리 조회 총관리자 2022.04.30 10
727 [bitbucket] 2022년 3월 2일 부터 git 작업시 기존에 사용하던 비빌번호를 사용할 수 없도록 변경되었다. 총관리자 2022.04.30 10
726 oozie의 sqoop action수행시 ooize:launcher의 applicationId를 이용하여 oozie:action의 applicationId및 관련 로그를 찾는 방법 gooper 2023.07.26 10
725 주문 생성 데이터 예시 총관리자 2022.04.30 11
724 [EncryptionZone]User:testuser not allowed to do "DECRYPT_EEK" on 'testkey' gooper 2023.06.29 11
723 [CDP7.1.7]Encryption Zone내부/외부 간 데이터 이동(mv,cp)및 CTAS, INSERT SQL시 오류(can't be moved into an encryption zone, can't be moved from an encryption zone) gooper 2023.11.14 11
722 [CDP7.1.7]impala-shell수행시 간헐적으로 "-k requires a valid kerberos ticket but no valid kerberos ticket found." 오류 gooper 2023.11.16 11
721 [Encryption Zone]Encryption Zone에 생성된 table을 select할때 HDFS /tmp/zone1에 대한 권한이 없는 경우 gooper 2023.06.29 12

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로