7-4 빅데이터 처리 기술 (하둡 설치)

빅데이터

특성

5V
velocity(속도)
volume(규모)
variety(다양성)
value(가치)
veracity(정확성)

다양한 데이터 는
정형, 비정형, 반정형
정형 : 틀이정해져 있어서 필요한것만 가져옴
비정형 : 틀이 안정해져있음 영상, 음성, 그림,
반정형 : 양식이 있긴하지만 덜 정해져 있음 자유로운 추가 가능

빅데이터
수집 --> 저장 --> 처리 --> 분석 --> 시각화

하둡 설치하기

컴퓨터 설정(해야할것들 순서)
openJDK라는 자바 개발도구 필요(하둡이 자바로 만들어진거라 필요)
서비스 계정 생성
ssh 설정
환경변수 설정
하둡 설치

1 컴퓨터 이름 변경

하둡은 마스터 노드 워커노드로 나뉨
1) 마스터 노드
192.168.71.131(ubuntu)
이름 헷갈리니 vi /etc/hostname
에서 hostname을 master로 변경
재부팅

2) 워커노드
192.168.71.133(ubuntu(3))
호스트 : worker1
192.168.71.134(ubuntu4-1)
호스트 : worker2

3) 다른 컴퓨터 이름 설정
(1) 모든 컴퓨터 동일
vi /etc/hosts 맨 마지막에 추가

192.168.100.131 master
192.168.100.133 worker1
192.168.100.134 worker2

2. 자바설치

1) 모든 컴퓨터 동일
apt update
apt install -y openjdk-8-jdk java(java있을때 설치 안되면 jdk까지만 설치)

3. 사용자 계정 설정

1) 마스터
addgroup --gid 2001 hdfs
useradd --create-home --shell/bin/bash --uid 2001 --gid 2001hdfs
passwd hdfs
비번설정

addgroup --gid 2002 yarn 
useradd --create-home --shell /bin/bash --uid 2002 --gid 2002 yarn 
passwd yarn
비번 설정


mkdir -p /data/hdfs/namenode 
mkdir -p /data/hdfs/jornalnode 
chown -R hdfs:hdfs /data/hdfs 
mkdir -p /data/yarn 
chown -R yarn:yarn /data/yarn 

mkdir로 나중에 필요한 데이터 파일을 생성하고
chown으로 파일 소유권을 yarn끼리 hdfs끼리 연결

2) 워커 노드
addgroup --gid 2001 hdfs
useradd --create-home --shell /bin/bash --uid 2001 --gid 2001 hdfs
passwd hdfs
비번 설정

addgroup --gid 2002 yarn 
useradd --create-home --shell /bin/bash --uid 2002 --gid 2002 yarn 
passwd yarn
비번 설정

mkdir -p /data/hdfs/datanode 
chown -R hdfs:hdfs /data/hdfs 
mkdir -p /data/yarn 
chown -R yarn:yarn /data/yarn

4. SSH 설정

1) SSH 설치
(1) 모든 컴퓨터 동일
apt install openssh-client
apt install openssh-server

master에서 worker로 접속이 되는지 모두 확인
ssh hdfs@worker1
exit 치면 다시 원래로 돌아옴

2) SSH 키 설정
(1) 마스터 노드

hdfs로 로그인 후
ssh-keygen
엔터 3번

ssh-copy-id hdfs@master

ssh-copy-id hdfs@worker1
패스워드 입력
ssh-copy-id hdfs@worker2
패스워드 입력

yarn로 로그인 후
ssh-keygen
엔터 3번
ssh-copy-id yarn@master

ssh-copy-id yarn@worker1
패스워드 입력
ssh-copy-id yarn@worker2
패스워드 입력

ssh hdfs@worker1
패스워드 입력 없이 접속이 되어야 함

5. 하둡 다운 및 압축 해제

1) 하둡 다운
(1) 모든 컴퓨터 동일
wget으로 다운

2) 압축 해제
(1) 모든 컴퓨터 동일
tar zxvf hadoop-3.2.2.tar.gz

3) 디렉토리 이동
(1) 모든 컴퓨터 동일
mv hadoop-3.2.2 /opt/hadoop-3.2.2

4) 디렉토리 생성
(1) 모든 컴퓨터 동일
mkdir /opt/hadoop-3.2.2/pids
mkdir /opt/hadoop-3.2.2/logs
chown -R hdfs:hdfs /opt/hadoop-3.2.2
chmod 757 /opt/hadoop-3.2.2/pids
chmod 757 /opt/hadoop-3.2.2/logs

6. 하둡 설정

설정 파일들은 모두 여기 있음
/opt/hadoop-3.2.2/etc/hadoop

1) 설정

(1) 마스터 노드

hadoop-env.sh

	export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
	export HADOOP_HOME=/opt/hadoop-3.2.2 
	export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop 
	export HADOOP_MAPRED_HOME=${HADOOP_HOME} 
	export HADOOP_COMMON_HOME=${HADOOP_HOME} 
	export HADOOP_LOG_DIR=${HADOOP_HOME}/logs 
	export HADOOP_PID_DIR=${HADOOP_HOME}/pids 
	export HDFS_NAMENODE_USER="hdfs" 
    export HDFS_SECONDARYNAMENODE_USER="hdfs"
	export HDFS_DATANODE_USER="hdfs" 
	export YARN_RESOURCEMANAGER_USER="yarn" 
	export YARN_NODEMANAGER_USER="yarn"

core-site.xml 

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
		<description>NameNode URI</description>
	</property>
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value> 
		<description>Buffer size</description>
	</property> <!-- HA Configuration --> 
	<property> 
		<name>ha.zookeeper.quorum</name>
		<value>zookeeper-001:2181,zookeeper-002:2181,zookeeper-003:2181</value>
	</property> 
	<property> 
		<name>dfs.ha.fencing.methods</name>
		<value>sshfence</value>
	</property>
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/home/hdfs/.ssh/id_rsa</value>
	</property>
</configuration>

hdfs-site.xml

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
	<property>
		<name>dfs.namenode.http.address</name>
		<value>master:9870</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/data/hdfs/namenode</value>
	</property>
</configuration>

mapred-site.xml 

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

yarn-site.xml

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>master</value>
	</property>
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>1024</value>
	</property>
	<property>
		<name>yarn.nodemanager.resource.cpu-vcores</name>
		<value>1</value>
	</property>
	<property>
		<name>yarn.nodemanager.env-whitelist</name>        
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
</configuration>

workers 

master
worker1
worker2

(2) 워커 노드

hadoop-env.sh

	export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
	export HADOOP_HOME=/opt/hadoop-3.2.2 
	export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop 
	export HADOOP_MAPRED_HOME=${HADOOP_HOME} 
	export HADOOP_COMMON_HOME=${HADOOP_HOME} 
	export HADOOP_LOG_DIR=${HADOOP_HOME}/logs 
	export HADOOP_PID_DIR=${HADOOP_HOME}/pids 
	export HDFS_NAMENODE_USER="hdfs" 
	export HDFS_DATANODE_USER="hdfs" 
	export YARN_RESOURCEMANAGER_USER="yarn" 
	export YARN_NODEMANAGER_USER="yarn"

core-site.xml 

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
	</property>
</configuration>

hdfs-site.xml

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
	<property>
		<name>dfs.datanode.name.dir</name>
		<value>file:/data/hdfs/datanode</value>
	</property>
</configuration>

mapred-site.xml 

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

yarn-site.xml

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>master</value>
	</property>
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>1024</value>
	</property>
	<property>
		<name>yarn.nodemanager.resource.cpu-vcores</name>
		<value>1</value>
	</property>
	<property>
		<name>yarn.nodemanager.env-whitelist</name>        
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
</configuration>

7. 하둡 실행

1) 실행
(1) 마스터 노드
/opt/hadoop-3.2.2/bin/hdfs namenode -format (네임노드를 포맷)
/opt/hadoop-3.2.2/sbin/start-all.sh(모든것을 실행)
/opt/hadoop-3.2.2/sbin/stop-all.sh(모든것을 종료)
2) 확인
(1) 마스터
jps 명령어 실행시
17363 DataNode
16532 NameNode
17815 NodeManager
14393 ResourceManager
17950 Jps

(2) 워커
8368 Jps
8101 NodeManager
7944 DataNode

(3) 본체 컴퓨터에서 웹브라우저로 확인
http://마스터노드의IP주소:9870/

datanode탭으로 가면 다음과 같이 연결된것을 확인 가능

3) 에러 확인
/opt/hadoop-3.2.2/logs/ 에 로그 파일 생성
ERROR로 찾는게 조금더 보기 편함

좋은 웹페이지 즐겨찾기