Hadoop (18) 썸네일형 리스트형 Apache Hive 설치 2 ( HIVE 설치 및 설정 ) 1. Postgresql db에 메타 스토어로 사용할 디비 생성 - hive 설치 전 먼저 Postgresql db에 메타 스토어로 사용할 디비를 생성해야 합니다. Postgres 계정으로 접속 후 메타스토어를 생성해 주세요. su - Postgres create database metastore owner postgres; create schema authorization postgres; \list 명령어를 통해 데이터베이스 목록에 metastore가 생성되었는지 확인합니다. 2. HIVE 설치 및 적용 - HIVE 3.1.2 버전을 설치합니다. root 계정으로 진행합니다. wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bi.. mapred-site 설정 값 상세내용 mapred-site.xml에 들어가는 설정 중 메모리와 관련 된 값에 대해 자세히 알아보도록 하겠습니다. ** mapreduce.map.memory.mb - map 작업 ( 컨테이너 생성시 )에 사용하는 memory 용량 맵리듀스 애플리케이션이 실행되려면 애플리케이션 마스터, 맵리듀스 태스크가 실행되어야 하므로 최소 3개의 컨테이너가 필요합니다. 1.mapreduce.map.memory.mb 2.mapreduce.reduce.memory.mb 3.yarn.app.mapreduce.am.resource.mb 의 합계가 yarn.nodemanager.resource.memory-mb보다 작게 설정되어야합니다. 또한 각 속성값들은 반드시 yarn.scheduler.maximum-allocation-mb 값 .. yarn-site.xml 설정 값 상세내용 yarn-site.xml에 들어가는 설정 중 메모리 및 cpu와 관련 된 값에 대해 자세히 알아보도록 하겠습니다. ** yarn.nodemanager.resource.memory-mb - 클러스터의 각 노드에서 컨테이너 운영에 설정할 수 있는 메모리의 총량 - 노드의 OS를 운영할 메모리를 제외하고 설정 - 기본값은 장비에 설정된 메모리의 80% 정도를 설정 ex) 노드의 메모리가 32G인경우 운영체제를 위한 4G를 제외하고 28G를 설정 ( 각 노드의 메모리 ) ** yarn.nodemanager.resource.cpu-vcores - 클러스터의 각 노드에서 컨테이너 운영에 설정할 수 있는 CPU의 개수 - 기본값은 장비에 설치된 CPU의 80% 정도를 설정 - 노드에 설치된 CPU가 40개일 경우 3.. Apache Hadoop ssh port 설정 ssh port의 기본 값은 22입니다. 하지만 환경에 따라 서버의 ssh port 값이 다를 수 있습니다. Apache Hadoop에서는 ssh port를 통해 다른 서버와 통신을 하기 때문에 기본 값이 22가 아니라면 설정을 통해 변경하여야 합니다. $HADOOP_HOME/etc/hadoop/hadoop-env.sh의 파일의 맨 밑에 내용을 추가합니다. export HADOOP_SSH_OPTS="-p " 예를 들어, hadoop 과 관련 된 서버들이 ssh port를 1002를 쓴다고 하면, 위 사진과 같이 내용을 추가합니다. export HADOOP_SSH_OPTS="-p 1002" Apache Hadoop 설치 4 ( Hadoop ) 마지막으로 hadoop 계정을 이용하여 hadoop을 설정하고 실행시켜보도록 하겠습니다. 1. Hadoop 계정 SSH key 생성 및 배포 Hadoop 계정 또한 서버 간의 통신이 되어야하기 때문에 key를 설정합니다. ssh-keygen ssh-copy-id -i .ssh/id_rsa.pub hadoop@hadoop1 ssh-copy-id -i .ssh/id_rsa.pub hadoop@hadoop2 ssh-copy-id -i .ssh/id_rsa.pub hadoop@hadoop3 ssh server01 exit ssh server02 exit ssh server03 exit 계정 키 배포 방식은 위의 키 배포 방식과 동일합니다. 2. Hadoop 3.1.0 설치파일 압축 해제 ** Hadoop 3.1.. Apache Maven 설치 및 빌드방법 ( + mac으로 Hadoop 3.2.1 빌드, mac os ) ** 이번 설치 및 실습은 mac 에서 진행하였습니다. Apache Maven 은 자바 프로젝트의 빌드, 관리, 종속성 관리를 위한 도구입니다. Maven은 프로젝트의 빌드 과정을 자동화하여 개발자가 프로젝트에 필요한 의존성을 쉽게 관리하고, 일관된 빌드 프로세스를 유지할 수 있도록 도와줍니다. Maven은 Java로 개발한 웹 코드나 Java기반의 다양한 도구 및 프레임워크를 실행 가능하도록 지원합니다. 웹 프레임워크(Spring,JavaEE 등)를 종속성으로 추가하고, 웹 애플리케이션 서버(Tomcat,Jetty 등)를 실행 환경으로 설정할 수 있습니다. 또한, Hadoop Hive와 Tez 와 같은 Java로 개발된 툴들도 Maven을 사용하여 빌드 및 종속성 관리를 할 수 있습니다. 라이브러리와 .. JUPYTER NOTEBOOK + PYSPARK 연동 ( + master,worker노드 설정 ) spark 설치 후 jupyter notebook에서 pyspark를 사용하기 위해 연동하는 방법에 대해 알아보겠습니다. hadoop, anaconda, spark가 설정되어 있는 계정으로 접속합니다. 먼저 jupyter notebook의 설정을 바꿔야 합니다. c.NotebookApp.ip = '*' 로 설정을 하여 외부에서도 jupyter notebook에 접속이 가능하도록 설정합니다. 접속 후 홈경로에서 환경변수를 설정합니다. vi .bashrc 3개의 환경변수를 설정합니다. 1. PYSPARK_PYTHON 2. PYSPARK_DRIVER_PYTHON 3. PYSPARK_DRIVER_PYTHON_OPTS 먼저 첫 번째 PYSPARK_PYTHON은 pyspark가 실행 될 python 경로를 지정합니.. Apache Hadoop (+ datanode 3대 추가) 기존 3개 서버로 구성되어 있는 hadoop에 datanode 3대를 추가해보겠습니다. 1. dn01 ( 추가할 데이터노드 서버 1 ) 2. dn02 ( 추가할 데이터노드 서버 2 ) 3. dn03 ( 추가할 데이터노드 서버 3 ) 먼저, 새로 구축된 데이터 노드와 하둡 서버 간의 SSH KEY 교환을 진행하도록 하겠습니다. 기존 하둡 서버 3대와 새로 추가된 데이터노드 서버 3대에서 host 정보를 수정합니다. vi /etc/hosts 모든 서버 동일하게 적용합니다. 키 교환을 하기에 앞서 추가 된 데이터 노드 서버 3대에서는 key를 생성해야합니다. dn01,dn02,dn03 서버의 각각 계정으로 진행해주세요. ssh-keygen 기존에 하둡 서버 3대에서 사용한 계정은 각각 hadoop 이라는 계정.. Apache Hive 설치 4 ( HIVE 실행 및 연동 ) Hive server 는 하이브 쿼리를 실행할 수 있는 API를 제공합니다. 원격 또는 여러 툴에서 Hive에 접속하기 위해서는 hiveserver가 필요합니다. Apache Thrift 는 언어 간 서비스 개발을 위해 확장 가능한 프레임워크로 Hive 는 테이블과 파티션과 관련된 메타정보를 모두 메타스토어에 저장합니다. 기존 RDBMS와 다르게 insert 후 스키마를 입력합니다. 스키마 정보는 메타스토어에서 참조하여 가져옵니다. 실행 후 연동과정에서 쿼리문을 사용하거나 테이블을 생성하는 등 여러 작업이 필요하기 때문에 Hive server 와 동시에 hivemetastore 까지 실행시켜야 합니다. hiveserver2 실행 hive --service hiveserver2 백그라운드에서 실행 -> h.. Apache Hive 설치 3 ( HIVE 테스트 ) HIVE 설치가 완료되었으므로 정상적으로 작동하는지 간단 실습을 진행해보도록 하겠습니다. 1. HIVE로 가져올 데이터 파일 확인 HIVE가 설치된 경로에서 테스트파일을 가져옵니다. ls /(hive 경로)/examples/files 조회하게 되면 위 사진처럼 파일 리스트가 출력될 것 입니다. 2. HIVE 접속 및 table 생성 hive 명령어를 통해 hive로 접속합니다. hive는 sql과 비슷한 hql 언어를 사용하여 테이블을 만듭니다. 먼저, events라는 table을 만들고 이 테이블에 우리가 필요한 파일을 넣을 것입니다. create table events(key int, value string); pokes라는 table을 만듭니다. create table pokes(foo int,ba.. 이전 1 2 다음 목록 더보기