하둡의 데이터 노드를 생성하고 하둡을 실행하기 위해서는 사전 작업 및 환경 설정이 필요합니다. 관련 내용은 아래 포스팅을 참고하시면 됩니다.

> 하둡(Hadoop) 설치하기[#1] - 설치 준비

> 하둡(Hadoop) 설치하기[#2] - 하둡 환경 설정하기


  당연한 얘기이지만, 하둡 테스트를 위해 가상머신에 하둡을 설치하는 이유는 클러스터를 구성 할 수 있는 서버를 확보 할 수 없기 때문입니다. Single 환경이 아닌 클러스터 환경을 구축하기 위해서는 최소한으로 1개의 관리노드와 3개의 데이터 노드가 필요한데, 일반 가정집에서 이런 환경을 구축한다는 것은 사실상 불가능합니다. 구축이 가능하더라도 시끄러운 서버의 소음과 하루종일 함께 할 인내심은 절대로 가지고 싶지 않겠죠.

  아무튼, 서버 구축은 현실적으로 불가능하므로 우리는 데스크탑에서 가상환경을 구축하여 하둡을 설치하고 테스트 할 수 있습니다. 필자 또한 VirtualBox를 이용해 하둡 설치 작업을 진행하고 있습니다. VirtualBox를 이용하여 하둡을 설치를 하게되면 데이터 노드로 사용할 서버 구성을 쉽게 할 수 있다는 장점도 있습니다.

  이런 장점을 살려, 지금까지 설치한 하둡 마스터 서버를 기반으로 데이터 노드 서버를 구성해보겠습니다.
  참고로, 설치 테스트에 사용된 VirtualBox는 6.0.14 버전입니다.

 

1. 데이터 노드 서버 생성

  VirtualBox의 왼쪽에는 설치된 가상머신의 목록을 보여줍니다. 지금까지 하둡 설치 및 구성이 완료된 가상머신을 종료한 후에, 가상머신 목록에서 오른쪽 버튼을 눌러 팝업 메뉴를 띄워보겠습니다.

  메뉴 중에서 '복제'를 선택하면 아래와 같이 새로 생성 할 가상머신의 이름과 경로를 선택하는 창이 나타납니다. 적절한 '이름'과 '경로'를 입력해주면 됩니다. 'MAC 주소 정책'은 새로운 MAC 주소를 할당받기 위해서 '모든 네트워크 어댑터의 새 MAC 주소 생성'을 선택합니다. 설정이 완료되었으면 '다음' 버튼을 클릭합니다.

  복제 방식에서는 '완전한 복제'를 선택한 후 '복제' 버튼을 클릭합니다.

  복제 작업이 진행되는 동안 progress bar를 통해 복제 작업이 진행되는 상태를 확인할 수 있습니다.

  복제가 완료되면 VirtualBox 왼쪽 목록에 복제한 가상머신 Hadoop_Data1을 볼 수 있을 것입니다.

 

2. 데이터 노드 IP주소 및 hostname 설정

  먼저, Hadoop_Data1 가상머신을 구동해보겠습니다. (IP 주소를 변경하기 전이므로 Hadoop_MST와 동시에 구동하면 IP 주소 충돌이 발생할 수 있습니다.)

  앞서 정의했던 서버 정보에 따라 IP주소를 변경해주면 됩니다.

서버 호스트명 IP 비고
관리 노드 hmng 192.168.0.100 NameNode 및  ResourceManager 등
데이터 노드 1 hdata1 192.168.0.101 DataNode 및 NodeManager등
데이터 노드 2 hdata2 192.168.0.102
데이터 노드 3 hdata3 192.168.0.103

  필자는 IP 주소를 쉽게 변경하고자 윈도우X 환경에서 IP주소를 변경하였습니다.

  이어서, hostname도 변경해보겠습니다. hostname은 /etc/hostname 파일 내용을 변경해주면 됩니다. 물론 CentOS 8 환경인 경우에 해당되는 내용입니다. 각 서버 환경에 따라 변경 작업을 진행해주면 됩니다. 

sudo vi /etc/hostname

  위 파일 내용을 변경하였으면, 적용하기 위해 가상머신을 재부팅해줘야 합니다.

 

3. SSH 설정

  하둡에서는 원격 서버의 데몬을 관리하기 위해 SSH를 사용합니다. 따라서, 클러스터 내 서버간에 비밀번호 입력이 없어도 SSH 접속이 가능하도록 설정이 필요합니다.

  RSA 암호화 방식으로 비밀번호 입력 없이도 원격 서버에 로그인 가능하도록 설정해보겠습니다. 우선 마스터 서버에서 RSA 공개키/개인키를 생성합니다.

> ssh-keygen

  ssh-keygen 명령을 실행하고나면 위와 같이 지정된 경로에 개인키/공개키가 생성된 것을 확인할 수 있습니다.

  이렇게 생성된 공개키를 모든 서버에 복사를 합니다.

> ssh-copy-id hmng
> ssh-copy-id hdata1
> ssh-copy-id hdata2
> ssh-copy-id hdata3

  ssh-copy-id 명령어를 실행한 후 데이터노드 서버를 확인해보면 공개키가 생성된 것을 확인해 볼 수 있을 것입니다.

  마스터서버에서 데이터노드 서버로 ssh 접속을 해보겠습니다. 비밀번호 입력없이 바로 접속이 가능하다면 정상적으로 설정된 것입니다.

  여기서 주의할 점은 위 작업을 모든 서버에서 설정해줘야 한다는 점입니다.
  하둡 클러스터 내 모든 서버간 SSH 통신이 필요하므로, 단방향이 아닌 양방향간에도 비밀번호 없이 접속 가능하도록 모든 서버에서 공개키/개인키를 생성한 후, 공개키를 모든 서버에 복사해줘야 합니다.

  SSH 설정이 마무리 되었다면 .ssh/authorized_keys 내 파일 내용은 아래와 같은 형태일 것입니다.

 

 

4. 데이터 노드 추가

  이제 데이터 노드에 대한 설정이 완료되었습니다.
  Hadoop_Data1 가상머신을 종료한 후, 1. 데이터 노드 서버 생성을 참고하여 Hadoop_Data2와 Hadoop_Data3를 생성해줍니다.

  복제가 완료되면 VirtualBox의 왼쪽 가상머신 목록은 아래와 같은 형상이 될 것입니다.

  이어서, 2. 데이터 노드 IP주소 및 hostname 설정을 참고하여 Hadoop_Data2와 Hadoop_Data3 서버의 IP주소 및 hostname을 변경해줍니다.

 

5. HDFS 포맷

  데스크탑이나 노트북에서 새 디스크를 사용하기 위해서는 먼저 포맷 작업을 수행해야 합니다. 하둡의 파일시스템인 HDFS도 역시 포맷 작업을 한 후에 사용이 가능합니다.

  HADOOP_HOME 디렉토리로 이동한 뒤 아래 명령을 입력하여 HDFS를 포맷합니다.

> bin/hdfs namenode -format

  에러 메세지 없이 마지막에 아래와 같은 로그가 표시되면 정상적으로 포맷이 완료된 것입니다.

 

 

6. 하둡 시작

  이제 하둡 클러스터를 구동하기 위해서는 먼저 HDFS 프로세스를 구동한 후 YARN 프로세스를 구동해줘야 합니다.

  우선 아래 명령을 입력하여 HDFS 프로세스를 실행해봅니다.

> sbin/start-dfs.sh

  HDFS가 정상적으로 시작되었다면 마스터 서버에서는 NameNode와 SecondaryNameNode 자바 프로세스를 데이터 노드에서는 DataNode 자바 프로세스를 확인 할 수 있을 것입니다.

 

  웹브라우저에서 아래 URL로 접속해보자. IP주소는 사용자가 설정한 마스터서버의 IP주소를 입력해주면 됩니다.

http://마스터서버IP:50070

  위와 같이 NameNode 정보 웹페이지가 표시되고 HDFS 정보가 정확하다면 정상적으로 HDFS가 구동된 것입니다.

 

이어서 아래 명령어를 입력하여 YARN 프로세스를 구동해보자.

> sbin/start-yarn.sh

YARN이 정상적으로 실행되었다면 마스터서버에서는 ResourceManager 자바 프로세스가 데이터노드 서버에서는 NodeManager 자바 프로세스를 확인할 수 있을 것이다.

 

다시 웹브라우저에서 아래 URL로 접속해보자. 여기서도 IP주소는 사용자가 설정한 마스터서버의 IP주소를 입력해주면 된다.

http://마스터서버IP:8088

위와 같이 ResourceManager 페이지가 표시된다면 정상적으로 YARN이 구동된 것이다.

 

  참고로, 아래 명령어를 사용하면 한번에 HDFS와 YARN가 순차적으로 구동됩니다.

> sbin/start-all.sh

 

  하둡 클러스터를 종료 시에는 구동 순서와 반대로 YARN 프로세스를 종료 한 후 HDFS 프로세스를 종료해줘야 합니다.

> sbin/stop-yarn.sh

> sbin/stop-dfs.sh

  물론, stop-all.sh 스크립트를 실행하여 한번에 하둡 클러스터를 종료할 수 있습니다.

> sbin/stop-all.sh

 


  이상으로 하둡 설치에 관한 포스팅을 마무리하고자 합니다.
  여기에서 언급하지는 않았지만 hdfs-site.xml 파일 내 오타와 방화벽 문제(어차피 가상환경에서의 테스트라 그냥 방화벽 해제하여 해결)로 프로세스가 제대로 구동되지 않아 삽질을 좀 했었습니다. 이 포스트를 참고하여 하둡 설치를 진행하시는 분들도 필자와 같은 문제들을 직면할 수도 있습니다. 하지만, IT 업무를 수행하면서 항상 느끼는 바는 시도하지 않는 것보다는 삽질을 통해서라도 조금 더 배워 나가는 것이 본인의 캐리어를 쌓을 수 있는 더 나은 방법이라고 생각합니다. 설치 작업 중간에 여러 문제가 발생하더라도 거기서 포기하지 마십시오. 우리에게는 인터넷 검색을 할 수 있는 능력이 있으며, 도움을 요청하면 누군가는 해결의 실마리를 제공해줄 누군가가 반드시 있을 것입니다.

 

 

'BigData > Hadoop' 카테고리의 다른 글

맵리듀스(Map-Reduce) 데이터 흐름  (0) 2020.05.23
Hadoop YARN  (0) 2020.05.11
HDFS 아키텍처  (0) 2020.05.11
하둡(Hadoop) 설치하기[#2] - 하둡 환경 설정  (0) 2020.03.01
하둡(Hadoop) 설치하기[#1] - 설치 준비  (0) 2020.03.01

  하둡 환경 설정을 설정하기 앞서 사전 작업이 필요합니다. 사전 작업은 이전 포스트를 참고하시면 됩니다.

> 하둡(Hadoop) 설치하기[#1] - 설치 준비


1. 하둡 설정 파일

  하둡 데몬을 실행시키기 위해서 기본적으로 설정해야 하는 파일은 아래와 같습니다.

파일명 설명
etc/hadoop/core-site.xml 클러스터 내 네임노드에서 실행되는 하둡 데몬에 관한 설정
etc/hadoop/hdfs-site.xml 하둡 파일시스템에 관한 설정 
etc/hadoop/yarn-site.xml Resource Manager에 관한 설정
etc/hadoop/mapred-site.xml 맵리듀스에 관한 설정

 

2. core-site.xml 설정

  core-site.xml에서는 기본 파일 시스템 이름을 설정해줍니다.
  아래와 같이 fs.defaultFS의 값을 URI 형식으로 입력하면됩니다.

<configuration>
    <property>
        <name>fs.defaultFS</name>
         <value>hdfs://호스트명:9000</value>
    </property>
</configuration>

 

3. hdfs-site.xml 설정

  hdfs-site.xml에서는 namespace와 트랙잭션 로그를 저장 할 네임노드와 데이터 노드의 저장 경로를 지정하고, 데이터 복제 개수를 설정해줍니다.

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
         <value>file:///data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
         <value>file:///data/datanode</value>
    </property>
    <property>
         <name>dfs.namenode.checkpoint.dir</name>
         <value>file:///data/namesecondary</value>
    </property>
    <property>
        <name>dfs.replication</name>
         <value>3</value>
    </property>
</configuration>

 

4. yarn-site.xml 설정

  yarn-site.xml에서는 리소스매니저 Web-ui 주소, 노드매니저에서 중간단계 파일 및 로그를 저장할 경로를 정의해줍니다.

<configuration>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
         <value>file:///data/yarn/local</value>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
         <value>file:///data/yarn/logs</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
         <value>hmng</value>
    </property>
</configuration>

 

5. mapred-site.xml 설정

  mapred-site.xml에서는 기본 맵리듀스 프레임워크로 yarn을 설정해줍니다.

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

 

 

6. hosts 및 IP 설정

  하둡 클러스터에서 사용할 서버 구성 정보는 아래와 같이 정의하였습니다. 물론, 필자가 임의로 설정한 호스트명과 IP이므로 각 설정 내용은 사용자 환경에 맞게 변경하여 사용하면 됩니다.

서버 호스트명 IP 비고
관리 노드 hmng 192.168.0.100 NameNode 및  ResourceManager 등
데이터 노드 1 hdata1 192.168.0.101 DataNode 및 NodeManager등
데이터 노드 2 hdata2 192.168.0.102
데이터 노드 3 hdata3 192.168.0.103

  hosts 파일을 열어 각 서버의 IP와 호스트명을 입력해줍니다.

> sudo vi /etc/hosts

  필자가 입력한 hosts 파일 내용은 아래와 같습니다.

192.168.0.100   hmng 
192.168.0.101   hdata1 
192.168.0.102   hdata2 
192.168.0.103   hdata3 

 

7. Slave 설정

  DataNode와 NodeManager가 실행된 서버가 Slave 노드가 됩니다. (참고로, NameNode와 ResourceManager가 실행되는 서버는 Master 노드입니다.) 클러스터내 Slave 서버 목록은 $HADOOP_HOME/etc/hadoop/slaves 파일에서 관리되며, IP 주소나 hostname 목록을 입력하면 됩니다.

  slave 파일을 열어 아래와 같이 입력합니다. 필자는 IP주소 대신에 데이터노드의 호스트명을 입력하였습니다.

hdata1
hdata2
hdata3

 

 

  이것으로 하둡의 기본 환경 설정을 마무리하였습니다.

  이어서, 지금까지 설정된 마스터 노드를 활용하여 데이터 노드를 생성하는 작업을 진행하도록 하겠습니다.

> 하둡(Hadoop) 설치하기[#3] - 데이터 노드 생성 및 하둡 실행

 

 

 

 

  데스크탑이 너무 느려져서 포맷을 했더니, VirtualBox에서 하둡 관리노드가 있던 가상 OS만 복구가 안되는 상황을 맞이하게 되었습니다.;;
  이번 기회에 다시 한번 하둡을 설치하면서 여기에 그 과정을 정리해보고자 합니다.
  설치 할 하둡 관련 정보는 아래와 같습니다.

- Hadoop : 2.10.0
- OS : CentOS 8 (VirtualBox 6에 설치 완료)
- Java : JDK 7 (설치 완료)

 

1. 사전 작업 - 자바 설치

  하둡을 설치하기 위해서는 우선 자바가 설치되어있어야 합니다. 각 하둡 버전에 적합한 자바 버전은 하둡 위키를 참고하면 됩니다.

▶ URL : https://cwiki.apache.org/confluence/display/HADOOP2/HadoopJavaVersions

 

  JDK 7 설치 방법은 아래 블로그 내용을 참고하면 됩니다.

▶ URL : https://sparkdia.tistory.com/6

 

2. OS 그룹/사용자 추가

  하둡관련 디렉토리의 권한 관리를 위해 리눅스 그룹과 사용자를 추가하고 sudo 권한을 부여해보겠습니다.

  먼저, 그룹 hadoop 을 생성합니다.

> sudo groupadd -g 10000 hadoop

  그룹의 생성 결과는 /etc/group 파일 내용을 확인해보면 됩니다.

 

  방금 생성한 hadoop 그룹에 속하는 사용자 hduser를 만들어보겠습니다.

>sudo useradd -g hadoop -u 10000 hduser

  사용자 생성 결과는 /etc/passwd 파일 내용을 확인해보면 됩니다.

  hduser 계정의 비밀번호를 변경하고

> sudo passwd hduser

  Sudo 권한을 부여해주겠습니다. Sudo 권한 부여는 /etc/sudoers 파일에 사용자 계정과 권한 설정 내용을 추가해주면 되는데, 해당 파일은 읽기 권한만 설정되어 있기 때문에 쓰기 권한 부여 후 파일 내용을 수정해줘야 합니다.

  /etc/sudoers 파일 하단에 아래 내용을 추가합니다. 

hduser  ALL=(ALL)       NOPASSWD: ALL

  /etc/sudoers 설정 내용은 탭으로 항목을 구분하며 '사용자 \t 호스트 \t 명령어' 설정 정보를 입력해주면 되는데, 전체 대상으로 모든 권한이 필요하므로 위와 같이 입력하도록 합니다.

 

 

3. 설치파일 다운로드

  하둡 설치 파일을 다운로드 하기 위해 우선 하둡 홈페이지의 다운로드 사이트로 이동합니다.

▶URL : https://hadoop.apache.org/releases.html

Hadoop download 페이지

  하둡 설치 파일을 다운로드 할 때, 하둡 버전 외에도 두 가지 설치 방법에 따라 다운로드 해야 할 대상 파일이 달라집니다.

  1. Source(Java) 파일을 다운로드 받아 컴파일하기.
  2. Binary 파일을 받아 설치하기.

  하둡 개발을 목적으로 설치를 한다면 다운로드 페이지의 'Source download' 항목에서 원하는 버전의 'source'를 클릭하면 됩니다. 필자는 Map-Reduce 테스트를 위한 하둡 환경이 필요하므로, 2.10.0 버전의 Binary download를 클릭하였습니다.

  그러면 위와 같이 설치 파일을 다운로드 받을 수 있는 Mirror site가 list-up된 페이지를 볼 수 있습니다. 이 중에서 원하는 사이트를 선택하여 설치 파일을 다운로드 받으면 됩니다. 만약, 원격 서버나 가상 서버 내에 파일을 저장해야 한다면 해당 URL을 복사한 뒤 설치 대상 서버에서 wget을 이용해 파일을 다운로드 합니다.

> sudo wget http://mirror.apache-kr.org/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz

 

4. 설치 파일 압축풀기

  다운로드 된 파일을 확인해보겠습니다.

  위와 같이 다운로드한 파일은 압축된 상태이며, 설치를 위해서 압축을 풀어줘야 합니다. /usr/local 디렉토리에 파일을 압축해제하겠습니다.

>  sudo tar -zxvf ./hadoop-2.10.0.tar.gz -C /usr/local/

  압축 해제된 파일들의 사용자와 그룹은 hduser와 hadoop으로 변경해줍니다.

> sudo chown -R hduser:hadoop /usr/local/hadoop-2.10.0/

 

5. bashrc 설정

~/.bashrc 파일을 열어서 HADOOP_HOME 변수를 추가하고, PATH에 하둡 실행 파일을 위한 경로도 추가해줍니다.

export HADOOP_HOME=/usr/local/hadoop-2.10.0/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin/:$HADOOP_HOME/sbin

 

  이것으로 하둡 설치를 위한 사전 작업이 완료되었습니다.
  이어서, 하둡 실행을 위한 설정 변경 작업을 진행해보도록 하겠습니다.

> 하둡(Hadoop) 설치하기[#2] - 하둡 환경 설정하기

 

Hadoop 2 버전을 설치하기 위해서는 JDK 7 설치가 선행되어야 합니다.
하지만, CentOS 8 환경에서 yum을 이용한 JDK 7 설치는 지원되지 않고 있습니다.

설치 파일을 직접 다운로드 해서 설치하는 수 밖에 없습니다.

 

1. 설치파일 다운로드

▶URL : https://jdk.java.net/java-se-ri/7

자바 다운로드 사이트에서 설치파일 URL을 복사한 후, wget 명령어를 이용하여 로컬에 다운로드 받습니다.

> sudo wget https://download.java.net/openjdk/jdk7u75/ri/jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

 

2. 설치파일 압축해제

다운로드 받은 압축 파일을 tar 명령어로 압축 해제합니다.

> sudo tar zxvf ./jdk_ri-7u75-b13-linux-x64-18_dec_2014.tar.gz

JDK 7는 별도의 설치 작업없이 위와 같은 압축해제만으로 설치가 완료된 것이며, 압축해제 이후에 추가적인 설정 작업이 필요합니다.

 

3. Java symbolic link 설정 (alternatives 명령어 사용)

여러 버전의 자바가 설치되어 있다면 버전관리가 필요합니다. 관리하는 방법 중에 하나가 symbolic link 설정인데 CentOS에서는 alternatives 명령어를 사용하여 symbolic link 설정 및 관리가 가능합니다.

alternatives 명령어 사용방법은 아래와 같습니다.

 

--install 옵션으로 link를 추가하도록 하겠습니자. 인자값은 아래와 같이 설정합니다.

- link : 링크 대상 파일.
- name : 링크이름.
- path : 링크 원본 파일. 자바 실행 파일 경로.
- priority : 우선순위.
> sudo alternatives --install /usr/bin/java java /usr/local/java/java-se-7u75-ri/bin/java 1

 

링크 설정 상태는 --display 옵션을 사용하여 확인할 수 있습니다.

> sudo alternatives --display java

 

실제 생성된 링크를 확인해보겠습니다. 생성한 링크(/usr/bin/java)는 링크의 원본파일이 아닌 /etc/alternatives/java를 가리키고 있습니다.

위 링크가 가리키고 있는 대상(/etc/alternatives/java)을 확인해보면, 또 하나의 링크 파일임을 확인할 수 있으며 해당 링크파일이 우리가 지정했던 원본파일(/usr/local/java/java-se-7u75-ri/bin/java)을 가리키고 있음을 확인할 수 있습니다.

중간에 또 다른 링크파일을 이용하여 우리가 직접적으로 사용 할 링크는 유지한채 설정에 따라 링크가 가리키는 대상을 변경 할 수 있는 것입니다. 만약, 링크의 대상을 변경하기 위해서는 --config 옵션을 사용하면 됩니다. (--install 옵션을 사용하여 변경 할 대상파일을 미리 입력해줘야 합니다.)

> sudo alternatives --config java

 

4. 자바 환경변수 설정

profile을 열어 환경설정에 필요한 내용을 입력합니다.

> sudo vi /etc/profile

profile 파일 하단에 아래 내용을 추가합니다.

export JAVA_HOME=/usr/local/java/java-se-7u75-ri 
export PATH=$PATH:$JAVA_HOME/bin 
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

profile을 변경하였으면 변경 내용을 적용되도록 아래 명령어를 실행합니다.

> sudo source /etc/profile

 

5. 자바 실행

이제 자바 설치와 환경 설정이 완료되었습니다.

아래 명령을 사용하여 자바가 제대로 실행되는지 확인해보겠습니다.

> java -version

 

위와 같이 설치된 자바 버전을 확인할 수 있다면 자바가 정상적으로 설치된 것입니다

 

'Develop > Java' 카테고리의 다른 글

Java SE 11 설치 on Windows 10  (1) 2020.06.27

cqlsh 기본 사용



1. bin/cqlsh 

    - Cassandra를 위한 상호 command line interface이다.

    - 사용자가 CQL(Cassandra Query Language) 문장을 수행하여 Cassandra를 이용할 수 있다.


2. cqlsh 실행하기

    - $CASSANDRA_HOME/bin/cqlsh 를 실행한다.

    - 아래와 같은 메세지가 출력되고 prompt가 보이면 정상적으로 수행한 것이다.

[usr@svc /usr/local/cassandra/bin]$ cqlsh

Connected to Test Cluster at 127.0.0.1:9042.

[cqlsh 5.0.1 | Cassandra 3.3 | CQL spec 3.4.0 | Native protocol v4]

Use HELP for help.

cqlsh> 


3. keyspace 생성 및 사용

cqlsh> CREATE KEYSPACE mykeyspace
          WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };

cqlsh> USE mykeyspace

cqlsh:mykeyspace>


4. 테이블 생성

cqlsh:mykeyspace>CREATE TABLE users (
                           user_id int PRIMARY KEY,
                           fname text,
                           lname text
                         );


5. 데이터 삽입

cqlsh:mykeyspace> INSERT INTO users (user_id, fname, lname) VALUES (1745, 'john', 'smith');

cqlsh:mykeyspace> INSERT INTO users (user_id, fname, lname) VALUES (1744, 'john', 'doe');

cqlsh:mykeyspace> INSERT INTO users (user_id, fname, lname) VALUES (1746, 'john', 'smith');


6. 데이터 확인

cqlsh:mykeyspace> SELECT * FROM users;

 user_id | fname | lname
---------+-------+-------
    1745 |  john | smith
    1744 |  john |   doe
    1746 |  john | smith


7. 인덱스 생성 및 조건 검색

cqlsh:mykeyspace> CREATE INDEX ON users (lname);

cqlsh:mykeyspace> SELECT * FROM users where lname = 'smith';

 user_id | fname | lname
---------+-------+-------
    1745 |  john | smith
    1746 |  john | smith


8. 기타 참고 사항

   - Cassandra 3.3 버전에서 cqlsh를 실행하기 위해서는 Python 2.7 버전이 반드시 설치되어 있어야 한다.

   - 참고 : Cassandra 설치 1 - 사전 작업 (JDK, Python)



참고 URL : http://wiki.apache.org/cassandra/GettingStarted

'Database' 카테고리의 다른 글

RDBMS 성능 최적화 전략  (0) 2020.04.09
테이블 조인 종류(Table Join Type)  (0) 2020.03.29
SQL tuning 작업은 이제 불필요하다?  (0) 2020.03.16
Cassandra 설치 2  (0) 2016.02.11
Cassandra 설치 1 - 사전 작업 (JDK, Python)  (0) 2016.02.11

Cassandra 설치하기 2


1. Cassandra 다운로드

  - 설치 파일은 Cassandra 홈페이지에서 확인하자. ( http://cassandra.apache.org )

  - wget을 사용하여 최신 버전인 3.3 Linux 버전용 tarball을 다운로드한다.

user@svr /download > wget http://www.apache.org/dyn/closer.lua/cassandra/3.3/apache-cassandra-3.3-bin.tar.gz

user@svr /download > ls

apache-cassandra-3.3-bin.tar.gz


2. 압축 해제

  - 다운로드 받은 파일을 압축 해제 하면 apache-cassandra-3.3 디렉토리가 생성된 것을 확인할 수 있다.

user@svr /download > tar zxvf apache-cassandra-3.3-bin.tar.gz

user@svr /download > ls

apache-cassandra-3.3-bin.tar.gz

apache-cassandra-3.3


3. 디렉토리 이동 및 링크 생성 (옵션 사항)

  - /etc/profile에 아래 내용을 추가한다.

user@svr /download > mv /download/apache-cassandra-3.3 /usr/local/

user@svr /download > cd /usr/local

user@svr /download > ln -s apache-cassandra-3.3 cassandra

user@svr /download > ls -al

drwxr-xr-x. 12 casan casan 4096 2016-02-11 17:31 apache-cassandra-3.3

lrwxrwxrwx.  1 casan casan   23 2016-02-11 17:23 cassandra -> ./apache-cassandra-3.3/


4. profile 설정 (옵션 사항)

  - Cassandra 디렉토리를 /usr/local로 이동하고 링크를 생성한다.

export CASSANDRA_HOME=/usr/local/cassandra

export PATH=$PATH:$JAVA_HOME/bin:$CASSANDRA_HOME/bin


5. Cassandra 환경 설정 (옵션 사항)

  - $CASSANDRA_HOME/conf/cassandra.yaml 파일을 vi로 열어 아래 부분의 주석을 제거하고 경로를 수정한다.

  - 설정에 정의된 디렉토리가 없다면 미리 생성해줘야 한다.

  - 아래 설정을 생략하면 Cassandra 에서 설정한 기본 경로에 파일을 저장하는데, 기본 경로가 존재하지 않는 경우에는 Cassandra가 시작되지 못하고 에러가 발생하면서 종료된다.

data_file_directories: /var/lib/cassandra/data

commitlog_directory: /var/lib/cassandra/commitlog

saved_caches_directory: /var/lib/cassandra/saved_caches


6. Cassandra 시작

  - 아래 명령을 사용하여 Cassandra를 시작한다.

  - 명령어 실행 후 Java stack trace, "error"나 "fatal" 메세지가 출력되지 않으면 정상적으로 작동한 것이다.

  - -f : Cassandra를 foreground로 시작한다.
         이 옵션을 제외하고 Cassandra를 실행하면 background로 시작되며 'pkill -f CassandraDaemon'을 이용해서 프로세스를 종료시킨다.

   - foreground로 실행된 Cassandra는 실행한 콘솔에서 "Ctrl-C" 를 눌러 종료시킬 수 있다.

user@svr /usr/local/cassandra/bin > cassandra -f


6. Cassandra 시작

  - 아래 명령을 사용하여 Cassandra를 시작한다.

  - 명령어 실행 후 Java stack trace, "error"나 "fatal" 메세지가 출력되지 않으면 정상적으로 작동한 것이다.

  - -f : Cassandra를 foreground로 시작한다. 
         이 옵션을 제외하고 Cassandra를 실행하면 background로 시작된다.

user@svr /usr/local/cassandra/bin > cassandra -f


6. Cassandra 종료

  -  background로 실행된 경우 : 'pkill -f CassandraDaemon'을 이용해서 프로세스를 종료시킨다.

   - foreground로 실행된 경우 : Cassandra를 실행한 콘솔에서 "Ctrl-C" 를 눌러 종료시킨다.








Cassandra  설치하기 1 - 사전 작업


Cassandra를 설치하기 전에 JDK가 설치되어 있어야 하는데, Cassandra 버전별로 필요한 JDK가 상이하므로 홈페이지에서 확인 후 JDK를 설치하면 된다.

현재 시점의 최상위 버전인 Cassandra 3.3을 실행하기 위해서는 JDK 7또는 8이 설치되어 있어야 하며,

CLI 환경을 위해서 Python 3.7 버전도 설치되어 있어야 한다.


1. JDK 설치

  1) 다운로드 

     - Java 홈페이지에서 OS 환경에 맞는 JDK를 다운로드 한다.

     - URL : http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

     - 다운로드 파일명 :jdk-8u73-linux-i586.tar.gz ( Linux 32Bit tarball)


2) 압축 해제 및 JDK 디렉토리 확인

     압축 해제가 완료되면 jdk1.8.0_73 디렉토리가 생성된 것을 확인 할 수 있다.


3) 디렉토리 위치 변경

     생성된 디렉토리를 /usr/local/jdk 디렉토리로 이동을 한다.


4) Java 환경 설정

     /etc/profile 파일을 열어서 아래 내용을 추가해준다.

   export JAVA_HOME=/usr/local/jdk

   export CLASSPATH=$JAVA_HOME/lib/tools.jar

   export PATH=$PATH:$JAVA_HOME/bin


5) Java 버전 확인

    java 버전을 확인하여 제대로 설치되었는지 점검한다.  아래와 같이 java 버전이 출력된다면 정상적으로 설치가 완료된 것이다.

user@svr / > java -version

java version "1.8.0_73"

Java(TM) SE Runtime Environment (build 1.8.0_73-b02)

Java HotSpot(TM) Client VM (build 25.73-b02, mixed mode)



2. Python 설치

  1) 사전 설치 패키지

     Cassandra CLI를 실행하기 위해서는 Python 실행 시 zlib과 openssl  패키지가 설치되어 있어야 한다.

user@svr / > yum install zlib

user@svr / > yum install openssl_devel


  2) Python 다운로드 

     - URL : https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz

     - Cassandra 3.3의 CLI 환경을 사용하기 위해서는 반드시 Python 2.7 버전이 설치되어야 한다.

     - 아래와 같이 wget을 이용해서 파일을 다운로드 한다.


3) 압축 해제 및 Python 디렉토리 확인

     압축 해제가 완료되면 Python-2.7.11 디렉토리가 생성된 것을 확인 할 수 있다.


4) configure && make && make install

  - configure : 프로그램 install을 위해 장비의 정보를 확인하는 스크립트.  검사 결과 정보를 Makefile에 기록한다.

  - make : make 유틸리티는 Makefile을 이용하여 프로그램 코드를 컴파일해서 실행가능한 파일을 생성한다.
                  Makefile은 설치하는 프로그램의 다양한 컴포넌트와 sub 프로그램을  build하는 순서를 나타낸다. 

  - make install : Makefile에서 install 세션만 읽어서 처리한다.
                                 make 실행으로 생성된 실행 가능한 파일들을 최종 디렉토리로 복사한다.

  - 참고 URL : http://www.codecoffee.com/tipsforlinux/articles/27.html


5) Python  버전 확인 및 테스트

user@svr /download > python -V

Python 2.7.11

user@svr /download > python

    Python 2.7.11 (default, Feb 11 2016, 17:55:09) 

    [GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2 

    Type "help", "copyright", "credits" or "license" for more information.

     >>> print("Hello Python!!!")

     Hello Python!!!



'Database' 카테고리의 다른 글

RDBMS 성능 최적화 전략  (0) 2020.04.09
테이블 조인 종류(Table Join Type)  (0) 2020.03.29
SQL tuning 작업은 이제 불필요하다?  (0) 2020.03.16
Cassandra cqlsh 기본 사용법  (0) 2016.02.11
Cassandra 설치 2  (0) 2016.02.11

+ Recent posts