5V
velocity(속도)
volume(규모)
variety(다양성)
value(가치)
veracity(정확성)
다양한 데이터 는
정형, 비정형, 반정형
정형 : 틀이정해져 있어서 필요한것만 가져옴
비정형 : 틀이 안정해져있음 영상, 음성, 그림,
반정형 : 양식이 있긴하지만 덜 정해져 있음 자유로운 추가 가능
빅데이터
수집 --> 저장 --> 처리 --> 분석 --> 시각화
컴퓨터 설정(해야할것들 순서)
openJDK라는 자바 개발도구 필요(하둡이 자바로 만들어진거라 필요)
서비스 계정 생성
ssh 설정
환경변수 설정
하둡 설치
하둡은 마스터 노드 워커노드로 나뉨
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
1) 모든 컴퓨터 동일
apt update
apt install -y openjdk-8-jdk java(java있을때 설치 안되면 jdk까지만 설치)
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
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
패스워드 입력 없이 접속이 되어야 함
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
설정 파일들은 모두 여기 있음
/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>
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로 찾는게 조금더 보기 편함