실습 시간이 많았던 관계로 필기가 적어 한 번에 모아 올림
- 데이터베이스의 성능을 올리는 가장 좋은 방법은 하드웨어의 스펙을 올려주는 'Scale Up'
--> 그러나, 현실적으로는 비용의 문제로 어려움. 따라서 우리는 'Scale Out'을 사용하는데 이는 병렬 형태의 컴퓨팅을 통한 성능 향상법
- wget 시, http://archive.apache.org/dist/hadoop/common 사이트 사용
cf. Hadoop 2.x 에서는 Protocol Buffer를 사용하는데, 안정화된 2.5.0 버전을 사용하는 것이 일반적
- Hadoop's core components
: HDFS(Hadoop Distributed File System)으로 대용량 데이터들의 저장
MapReduce를 통해 Batch Processing
- Hadoop은 비관계형 데이터를 저장. 우리가 직접 API를 다 구상해서 사용해야 함
- HDFS는 대용량의 데이터를 Block화 하여 Node들에 나누어 저장하며, Hadoop 2.x 버전에서는 데이터 블록의 기본 용량을 128MB로 가져감
- Hadoop은 Block들 replicate하여 하나의 data block이 오염되거나, 삭제되더라도 다른 복제 set의 사용
- 하나의 네임 노드가 데이터 노드들에게 데이터의 처리와 저장을 분산시키는 것.
--> 네임 노드가 죽으면 그 기능들이 수행되지 않는 문제가 있었으나, 2.x 버전으로 넘어오며 ZooKeeper를 통해 standby 노드가 본래의 네임 노드를 대체할 수 있는 기능을 수행(HA: High Ability)
- 네임 노드는 meta date과 logging file들만 지니고 있음. 데이터 노드들이 실제 Data block 보유
- masters에 등록하는 것은 Secondary Node
- Hadoop 2.x의 구성
: Name node(Resource Manager) + Data node(Node Manager) / YARN
--> Resource Manager는 Application managing과 scheduler의 역할을 수행하며, Node Manager는 container 생성되어서 task를 수행
- HDFS는 문제 해결을 위해 editslog와 fsimage 파일로 메타데이터 및 기타 장애 처리
- Mapper<Object, Text, Text, IntWritable>
: Object와 Text는 input이며, Text와 IntWritable은 output. 이들은 하둡에서 사용되는 Wrapper Class로 어떠한 자료형이 어떤 Wrapper Class로 사용되는지 알아야 함
- Reducer<Text, IntWritable, Text, IntWritable>
: Mapper는 key, value로 구성된 Java map data들을 만들어주며, Reducer가 반환된 key와 value를 더하는 방식으로 word counting !
* Java
- maven은 일종의 yum과 같은 개념으로 넷상에 존재하는 repository를 사용하는 것
- 인터페이스는 규약적 개념으로 사용하며, 인터페이스를 사용하는 모든 클래스들이 동일한 메소드를 사용하게 하여, 표준화 기능을 수행하도록 함
- static 형태로 method를 만들게 되면 instance를 만들지 않고도 해당 method의 사용이 가능
- class 파일을 jar로 export하는 것이 java의 배포 개념이며, build path -> configure build path -> Import external jar로 다른 패키지의 클래스를 사용 가능
- Type Cast
: public void TestMethod(Object o) vs. public void TestMethod(String o)
-> 전자는 하나의 메소드로 Type Conversion 통해 모든 자료형을 인수로 받을 수 있으나, 후자의 경우 String 자료형만 인수로 받을 수 있기 때문에 자료형에 따른 method를 여러 개 만들어야 하는 단점이 존재
-> 다형성을 이용하여 상위 클래스로 자식 클래스를 받은 후, method들을 interface 통해 모두 통일하는 기법을 많이 사용하는데, 이는 코드의 양을 획기적으로 줄일 수 있음
- 캡슐화 / 상속성 / 다형성 / generic 을 정확하게 아는 것이 매우 중요
'Non-school Course' 카테고리의 다른 글
경기 빅데이터 전문가 과정 2018.07.18 - 07.27 Hadoop review (0) | 2018.07.27 |
---|---|
경기 빅데이터 전문가 과정 2017.07.11 - 07.17 Hadoop eco-system (0) | 2018.07.17 |
경기 빅데이터 전문가 과정 2017.07.04 Linux (0) | 2018.07.05 |
경기 빅데이터 전문가 과정 2017.07.03 Linux (0) | 2018.07.04 |
경기 빅데이터 전문가 과정 2018.07.02 Linux (0) | 2018.07.03 |