Data

[1028 from 실무로 배우는 빅데이터 기술 By 김강원 04] 빅데이터 클러스터 구성

빅데이터 클러스터 데이터를 클러스터링한다는 것은 연속적으로 액세스하는 데이터를 밀접하게 함께 저장하여 입출력 작업을 적게 하는 것을 의미한다
하나의 데이터를 여러개의 부분집합으로 분할하는것. 

SQL서버 내용중..
데이터 가상화 : 빅데이터 클러스터 SQL서버에서 데이터를 이동복사 하지 않고  외부데이터 원본 쿼리 가능. 
데이터 레이크 : 가공되지 않은 상태로 저장되어 접근이 가능한 엄청난 양의 데이터 
빅데이터를 빅데이터 클러스터의 HDFS 저장후 데이터를 분석 및 쿼리하고 관계형 데이터 베이스와 결합가능. 
스케일 아웃 데이터 마트 : 규모 확장계산 , 저장소 제공, 데이터 분석기능 향상. 
추가 분석을 위해 다양한 원본 데이터 수집 데이터 풀 노드간에 캐시로 분산. 
인공지능 및 머신러닝 : 스토리지, 데이터 풀에 저장된 데이터에서 통합 인공지능 및 머신러닝작업을 사용하도록 설정한다. 뿐만 아니라 자바 R 사용 SQL서버 기본제공 AI 도구 , 스파크 사용가능. 
관리 모니터링 

http://wiki.hash.kr/index.php/%EB%8D%B0%EC%9D%B4%ED%84%B0_%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0
https://docs.microsoft.com/ko-kr/sql/big-data-cluster/big-data-cluster-overview?view=sql-server-ver15 >>> 무슨소리인지..
Cloudera Manager http://server01.hadoop.com:7180/ 접속
welcome
> cluster  Basics > Specify Hosts > Select Repository > Install Parcels > Inspect Cluster
Select Repository
- CDH
- Parcel
- ACCUMULO
- SQOOP

-ETL
-CLI
CDH 6.3.2.1. 설치 추가Pacel 전부 설치안함. 

CDH  : Cloudera's Distribution, including Apache Hadoop : 클라우데라의 하둡 배포판. 
추가 Parcel :클라우데라 메니저의 패키지. .. 
ACCUMULO: 아파치 아큐물로 :  분산 키-값 저장소
KAFKA: 아파치 카프카 : 분산 스트리밍 플래폼. 대량처리 분산 메시징 시스템 . 
SQOOP: 아파치 스쿱
: 관계형DB 하둡간 데이터 전송 CLI애플리케이션,
DBMS데이터를 HDFS로 입출력. 
하둡용 ETL 도구. 
하둡 기반 시스템 연동가능, Hive, HBase로 테이블 이전가능. 

대용량 병렬처리 데이터베이스
: EMC GreenPlum
HP Vertica
IBM Netezza
테라데이터의 KickFire.

- ETL : Extract, Transform load  , 추출 변환 로드. 
- CLI : Common Language Infrastructure : 공통언어기반. . 언어종속적이지 않은 플랫폼. 
Inspect Cluster I understand the risks, let me continue with cluster setup. 체크. 컨티뉴. 
add Cluster-configuration select Services, Assign Roles, Setup Database, Review Changes, Command Details Summary
select Services

-HDFS
-YARN
-MR2
-ZooKeeper
서비스(소프트웨어) 선택 :
사용자 지정서비스 선택> HDFS, 얀, 주키퍼, . 

HDFS : 아파치 하둡 분산 파일 시스템, 하둡의 가장우선되는 저장시스템
Apache Hadoop Distributed File System (HDFS) is the primary storage system used by Hadoop applications. HDFS creates multiple replicas of data blocks and distributes them on compute hosts throughout a cluster to enable reliable, extremely rapid computations.

YARN (MR2 Included)
: 아파치 하둡 맵리듀스, 얀 은 데이터 계산 프레임워크
(얀 리소스메니저 서버 자원관리 리소스 메니지먼트. CPU 메모리자원관리) 
Apache Hadoop MapReduce 2.0 (MRv2), or YARN, is a data computation framework that supports MapReduce applications (requires HDFS).

ZooKeeper: 중앙집중식 서비스, 환경 데이터를 유지, 동기화
Apache ZooKeeper is a centralized service for maintaining and synchronizing configuration data.
Assign Roles 어떤서버에 설치할지. 설정. 
HDFS : 
NN : NameNode : Server01 선택
SNN : SecondaryNameNode: Server01선택
B : Balancer : Server01 선택
HttpFS : 미설치
NFS Gateway : 미설치
DataNode: Server02

AP
ES
HM
SM

YARN
RM : ResourceManger : Server01
JHS : JobHistory: Server01
NodeManager : DataNode로 저장. 선택.   Same As DataNode

ZooKeeper
Server : Server02
설치완료후.  Cluster1 
색 임계치값  빨강 : 정지... 그외는 크게 문제 없음... ex)디스크 여유공간 10% 이하. 

자원이 부족할때 클라우데라메니저 중지. 해도 됨. 서비스기능에는 영향없음. 모니터링안됨. 
ssh 연결.  192.168.56.101 22 Server-1
192.168.56.102 22 Server-2
DataNode 추가 데이터노드는 파일시스템의 실질적인 일꾼이다. 데이터노드는 클라이언트나 네임노드의 요청이 있을 때 블록을 저장하고 탐색하며, 저장하고 있는 블록의 목록을 주기적으로 네임노드에 보고한다.

네임노드(namenode): 파일시스템의 네임스페이스를 관리한다. 네임노드는 파일시스템 트리와 그 트리에 포함된 모든 파일과 디렉터리에 대한 메타데이터를 유지한다. 이 정보는 네임스페이스 이미지(namespace image)와 에디트 로그(edit log)라는 두 종류의 파일로 로컬 디스크에 영속적으로 저장된다. 네임노드는 또한 파일에 속한 모든 블록이 어느 데이터노드에 있는지 파악하고 있다. 하지만 블록의 위치 정보는 시스템이 시작할 때 모든 데이터노드로부터 받아서 재구성하기 때문에 디스크에 영속적으로 저장하지는 않는다. 

출처: https://brocess.tistory.com/190 [행복한디벨로퍼]


CM 홈 HDFS 메뉴 우측 콤보박스 클릭 역할인스턴스 추가. 
DataNode 서버 추가. 확인 , 선택하고 시작 .
>> 4개서버 DataNode  데이터를 저장하면 01,02,03,04.. 저장. . 
실습을 위한 환경변수 설정
HDFS 복제 계수 설정
리플리카셋. 
 메인 > HDFS > Configuration> Replication Factor dfs.replication   3-> 1 저장

하둡 기본 : 쓰리리플리카  디폴트 복제계수 3
복제이유
1) 서버 1개 장애되도 백업사용 문제없음. 
2) 각각에 서버가 나눠읽고 합치면..(병렬처리)성능향상. 

HDFS > 구성 > 복제계수.      서버 3개면 2, 2개면 1

사용자 200M 저장 ==> .. S1 128M저장... S2 or S3  72M. 저장됨.
                             ==> 하둡.  S1-> S2,S3 복제 , S2-> S1,S3 복제

** 복제 계수 증가로 분석 성능 향상
앞서 복제 계수를 줄이는 것과 반대로 하둡에 이미 저장돼 있는 특정파일에 대해 복제 계수를 강제로 증가시킬수 있다.  그러면 여러 데이터 노드에 복제 파일이 분산 저장되어 분석 작업 시 로컬리티와 병렬성을 높여 성능을 극대화 할수 있다. 
/user/hadoop
hadoop fs -setrep 10 -R /user/hadoop/
HDFS 접근 권한 해제 HDFS 권한 검사 : 해제
Check HDFS Permissions  _ dfs.permissions
HDFS 블록 크기 변경 HDFS 블록크기 변경 128 => 64
HDFS Block Size _ dfs.blocksize
YARN 스케줄러와 
리소스매니저의 메모리설정
YARN 스케줄러 메모리 변경 1-> 1.5
Container Memory Maximum  _ yarn.scheduler.maximum-allocation-mb

리소스매니저 메모리 변경 1-> 5
Container Memory _ yarn.nodemanager.resource.memory-mb

YARN 스케줄러 변경 Scheduler Class _ yarn.resourcemanager.scheduler.class


org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
   :: 동시다발적으로 일을시키다... 경합...오버헤드 행걸리는현상..때문에...
->org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler
동시처리는 못함. 순차처리.. 됌. 
환경설정후.
배포구성아이콘 활성
변경설정시 활성화 . 아이콘 클릭후 변경. 
참고.  호스트 > 모든호스트 >  역할 부분클릭시 할당 확인가능. 
 
로그 시뮬레이터 설치  
   
   
하둡 명령어 사용. 


파일시스템 상태검사. _ 전체크기, 디렉터리수, 파일수, 노트수 _파일시스템 전체상태
$hdfs fsck /


하둡 파일시스템 기본 정보 통계
$hdfs dfsadmin -report




강제로 안전모드 해제
$hdfs dfsadmin -safemode leave

손상된파일 강제 삭제       깨진블록 자동으로 복구... 만약 전부.. 문제있으면 강제 삭제. 
$hdfs fsck / -delete

손상된 파일을 /lost +found 디렉터리로 옮긴다. ... 불안할때.. 옮기는중일수있어서. 
$hdfs fsck / -move

주키퍼 명령어.  zookeeper -client 실행
$zookeeper-client

$create /pilot-pjt bigdata
$ls /
$get /pilot-pjt
$delete \pilot-pjt

시뮬레이터  mkdir -p /home/pilot-pjt/working/car-batch-log
mkdir -p /home/pilot-pjt/working/driver-realtime-log
java -version
cd /usr/bin
# ls -l java
lrwxrwxrwx. 1 root root 22 Jun 30  2018 java -> /etc/alternatives/java
# pwd
/usr/bin
# rm java
rm: remove symbolic link `java'? y
# rm javac
rm: cannot remove `javac': No such file or directory
# ln -s /usr/java/jdk1.8.0_181-cloudera/bin/javac /usr/bin/javac
# ls -l javac
lrwxrwxrwx 1 root root 41 May 23 00:12 javac -> /usr/java/jdk1.8.0_181-cloudera/bin/javac
# ln -s /usr/java/jdk1.8.0_181-cloudera/bin/java java
# ls -l java
lrwxrwxrwx 1 root root 40 May 23 00:13 java -> /usr/java/jdk1.8.0_181-cloudera/bin/java
# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)


/home/pilot-pjt/working
bigdata.smartcar.loggen-1.0.jar 옮김

java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.DriverLogMain 20200901 10

java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.CarLogMain 20200901 10

새창

# cd /home/pilot-pjt/working/driver-realtime-log/
# ls -ltr
total 148
-rw-r--r-- 1 root root 147980 May 23 00:20 SmartCarDriverInfo.log
# tail -f SmartCarDriverInfo.log

ps -ef |grep DriverLogMain
kill -9 PID


시작
01 버추얼 박스 실행, 가상머신 관리자 창 활성화
02 서버 순서대로 시작
03 3개 가상머신 창 활성화 CentOS 구동
04 Putty Server01에 ssh 접속 cm 구동 완료되었는지 확인
 $service cloudera-scm-server status

05 크롬브라우저실행 CM 관리자 화면 접속
http://server01.hadoop.com:7180/cmf/login
06 CM  클러스터1 콤보박스 선택 재시작 클릭
. 주키퍼 > HDFS > YARN    의존관계.   CM 이 알아서 재기동해줌. 



빨갈때.. 디스크 임께치... 혹은... 등등.. 스스로 경고.. 여러번 시도함.. 보통 정상적으로 돌아옴
HDFS 에서 파일 깨지는 경우가 발생할때... 나머지 오작동... 하이브..얀들..
종료 01  클러스터 1 Stop 클릭.  , 클라우데라 관리 서비스 종료. 



02 server01~~ putty 로 접속 시스템 종료 명령
halt

03. 버추얼 박스의 가장 머신 목록에서  Server01~03 모두 전원끄기로 정료. 

04 버추얼박스 관리자 닫음. 
정리 1. 파일럿 프로젝트 도메인의 이해
- 파일럿 프로젝트의 기본 도메인을 이해하고, 이와 관련된 빅데이터 요구사항을 도출 분석
2. 빅데이터 파일럿 아키텍처 이해
- 스마트카의 빅데이터 분석을 위한 소프트웨어/하드웨어 아키택처를 이해한다. 
3. 빅데이터 파일럿 프로젝트용 PC 환경구성
- 파일럿 프로젝트 환경을 구성하기 위해 독자들의 PC에서 사용할 기본 소프트웨어를 설치하고 구성한다. 이과정에서 이클립스, 자바, 오라클 버추얼박스등 설치
4. 빅데이터 파일럿 프로젝트용 PC서버 구성. 
- 3개의 가상 머신을 생성하고 분산 클러스터 환경을 구성하기 위한 3대의 리눅스 서버를 설치 및 구성
5. cm설치
-빅데이터 소프트웨어들을 설치/관리하는 Cloudera Manager를 설치 한다. CM을 이용해 빅데이터 파일럿 프로젝트의 기본 소프트웨어인 하둡 주키퍼 설치
6. 스마트카 로그 시뮬레이터 설치
- 스마트카의 상태 정보와 운행정보를 시뮬레이션해 로그 데이터를 생성하는 자바 프로그램을 설치한다. 
7 파일럿 환경관리
- 파일럿 환경을 안전하게 시작하고 종료하는 방법을 설명한다. 
   

 

Parcel : 파셀. 소포, 구획 / 소포를 싸다. 

Extract : 익스트렉트 / 발췌, 초록, 추출물. 추출하다. 

NETEZZA 인디안언어. 결과

computation : 계산. 

replicas : 복제품. 

embedded  : 내장형. 

테스크 포스 : 사업 계획 달성 위해 별도로 설치하는 임시조직

 

교제 : https://github.com/wikibook/bigdata2nd

 

 

현상 :  

 You are running Cloudera Manager in non-production mode, which uses an embedded PostgreSQL database. Switch to using a supported external database before moving into production

클라우디아 메니져를  non-production  모드로 사용하고 있는데- 내장형 PostgresSQL 사용하는 

프로덕션 이동전에 외부데이터 사용으로 전환해주세요. 

 

해결 : 위와같은 경고 메세지를 비활성화 하는 방법은 아래와 같습니다.

클라우데라 매니져 "홈"  > 상단 "검색" 버튼 클릭 > "postgresql" 입력 > 엔터 > "Enable Embedded Database Check" 해제

출처 : https://www.inflearn.com/questions/218026