hdp 의 hdb(hawq) 에서 redis 를 사용해 볼 목적으로 redis 를 설치했다


hdp 는 6개의 노드로 구성했고 namenode HA, resourcemanager HA 가 설정돼있고 datanode 는 3개이다


hawq 도 master, standby master, segment 3개로 구성했다


목표는 6개의 노드 전체에 redis 를 설치한 후 cluster 로 묶는 것이다.


아래 문서들을 참조하였다


https://redis.io/topics/cluster-tutorial

http://the-earth.tistory.com/entry/redis-cluster-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0

https://www.facebook.com/notes/yongbok-kim/redis-cluster-%EA%B0%84%EB%8B%A8-%EC%84%A4%EC%A0%95/704524782949857/

http://www.redisgate.com/redis/cluster/cluster.php


아래 명령어를 실행하여 컴파일 했다



그리고나서 src 아래의 모든 파일을 내가 사용 할 redis directory 에 복사했다


나는 /usr/local/redis/redis-3.2.8 디렉토리를 만들어 여기에 복사한 뒤


/usr/local/redis/default 라는 링크를 만들어 위에서 만든 디렉토리에 링크를 걸어줬다


그리고 내가 수정 한 redis.conf 는 아래 5개이다 (port 는 default 값 6379 를 그대로 사용했다)


그리고 다운받고 압축을 풀었던 디렉토리에 존재하는 redis.conf 를 /usr/local/redis/default 아래에 복사했다

bind 0.0.0.0
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000

그리고나서 아래 명령어를 실행하여 cluster 를 생성한다. (꼭 IP 로 적어야 정상실행 된다)

./redis-trib.rb create \
172.16.196.150:6379 \
172.16.196.151:6379 \
172.16.196.152:6379 \
172.16.196.153:6379 \
172.16.196.154:6379 \
172.16.196.155:6379

redis-trib.rb 를 실행할 때 각종 오류가 났다


1. rubygems 가 설치 돼있지 않음

-> yum install rubygems 를 실행했다


2. ruby 에서 redis 를 설치하지 않음

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)

from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

from ./redis-trib.rb:25

-> gem install redis 를 실행했다


3. redis-server 를 실행하지 않음

-> /usr/local/redis/default/redis-server /usr/local/redis/default/redis.conf 를 실행함


4. redis cluster cannot connect to node 오류가 발생함

-> redis.conf 에서 bind 값을 127.0.0.1 에서 0.0.0.0 으로 수정


5. redis cluster is already busy (Redis::CommandError) 오류가 발생함

-> cluster 로 묶으려는 전 노드에서 아래 명령어를 실행했다

flushall
cluster reset soft

그리고나서 redis-trib.rb 를 재실행한다


[root@admin default]# ./redis-trib.rb create 172.16.196.150:6379 172.16.196.151:6379 172.16.196.152:6379 172.16.196.153:6379 172.16.196.154:6379 172.16.196.155:6379

>>> Creating cluster

>>> Performing hash slots allocation on 6 nodes...

Using 6 masters:

172.16.196.155:6379

172.16.196.154:6379

172.16.196.153:6379

172.16.196.152:6379

172.16.196.151:6379

172.16.196.150:6379

M: b267c9964edae16d5b3c40e49f83c72585cac439 172.16.196.150:6379

   slots:13653-16383 (2731 slots) master

M: 000ac0c60361218076084d513306f15ea0460ab1 172.16.196.151:6379

   slots:10923-13652 (2730 slots) master

M: 16a628108b8ca9ecdcb353c1472a3e36d3269699 172.16.196.152:6379

   slots:8192-10922 (2731 slots) master

M: 99bd9cdd76efaa9a438844339114e654c3e92e6b 172.16.196.153:6379

   slots:5461-8191 (2731 slots) master

M: 4757a336d40f0203032acef88b3b440ea9f94152 172.16.196.154:6379

   slots:2731-5460 (2730 slots) master

M: 7d879254412e8636d106ea64161e95b8b8f09f13 172.16.196.155:6379

   slots:0-2730 (2731 slots) master

Can I set the above configuration? (type 'yes' to accept): yes

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join...

>>> Performing Cluster Check (using node 172.16.196.150:6379)

M: b267c9964edae16d5b3c40e49f83c72585cac439 172.16.196.150:6379

   slots:13653-16383 (2731 slots) master

   0 additional replica(s)

M: 000ac0c60361218076084d513306f15ea0460ab1 172.16.196.151:6379

   slots:10923-13652 (2730 slots) master

   0 additional replica(s)

M: 16a628108b8ca9ecdcb353c1472a3e36d3269699 172.16.196.152:6379

   slots:8192-10922 (2731 slots) master

   0 additional replica(s)

M: 4757a336d40f0203032acef88b3b440ea9f94152 172.16.196.154:6379

   slots:2731-5460 (2730 slots) master

   0 additional replica(s)

M: 99bd9cdd76efaa9a438844339114e654c3e92e6b 172.16.196.153:6379

   slots:5461-8191 (2731 slots) master

   0 additional replica(s)

M: 7d879254412e8636d106ea64161e95b8b8f09f13 172.16.196.155:6379

   slots:0-2730 (2731 slots) master

   0 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

[root@admin default]# ./redis-cli cluster nodes

b267c9964edae16d5b3c40e49f83c72585cac439 172.16.196.150:6379 myself,master - 0 0 1 connected 13653-16383

000ac0c60361218076084d513306f15ea0460ab1 172.16.196.151:6379 master - 0 1491643229950 6 connected 10923-13652

16a628108b8ca9ecdcb353c1472a3e36d3269699 172.16.196.152:6379 master - 0 1491643228945 2 connected 8192-10922

4757a336d40f0203032acef88b3b440ea9f94152 172.16.196.154:6379 master - 0 1491643228443 4 connected 2731-5460

99bd9cdd76efaa9a438844339114e654c3e92e6b 172.16.196.153:6379 master - 0 1491643229950 3 connected 5461-8191

7d879254412e8636d106ea64161e95b8b8f09f13 172.16.196.155:6379 master - 0 1491643228945 5 connected 0-2730

[root@admin default]# 

'[DB] > [Redis]' 카테고리의 다른 글

CentOS 6.7 에서 Redis cluster 구축  (0) 2017.04.08
Posted by FeliZ_하늘..

댓글을 달아 주세요

HelloJNI.java 작성


아래 명령어 실행


HelloJNI.c 작성



아래 명령어 실행



결과



'[Java] > [native]' 카테고리의 다른 글

64bit linux 에서 jni 간단 test  (0) 2016.07.03
Posted by FeliZ_하늘..
TAG 64, bit, JNI, Linux, Simple, test

댓글을 달아 주세요

rsync 사용해보기

[Linux] 2015.09.25 18:14

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/Rsync

'[Linux]' 카테고리의 다른 글

rsync 사용해보기  (0) 2015.09.25
vi 명령어  (0) 2015.08.04
부팅시 mysql 자동시작  (0) 2015.07.31
.profile .bash_profile .bashrc 차이  (0) 2015.07.08
리눅스 dns 설정  (0) 2015.07.03
쉘 프롬프트 변경  (1) 2015.06.02
Posted by FeliZ_하늘..

댓글을 달아 주세요

vi 명령어

[Linux] 2015.08.04 10:20

http://egloos.zum.com/howmuch/v/9661949

'[Linux]' 카테고리의 다른 글

rsync 사용해보기  (0) 2015.09.25
vi 명령어  (0) 2015.08.04
부팅시 mysql 자동시작  (0) 2015.07.31
.profile .bash_profile .bashrc 차이  (0) 2015.07.08
리눅스 dns 설정  (0) 2015.07.03
쉘 프롬프트 변경  (1) 2015.06.02
Posted by FeliZ_하늘..

댓글을 달아 주세요

http://daemonjin.tistory.com/entry/CentOS-%EB%A6%AC%EB%88%85%EC%8A%A4-mysql-%EB%8D%B0%EB%AA%AC-%EC%9E%90%EB%8F%99-%EC%8B%A4%ED%96%89-%EB%AA%85%EB%A0%B9%EC%96%B4

'[Linux]' 카테고리의 다른 글

rsync 사용해보기  (0) 2015.09.25
vi 명령어  (0) 2015.08.04
부팅시 mysql 자동시작  (0) 2015.07.31
.profile .bash_profile .bashrc 차이  (0) 2015.07.08
리눅스 dns 설정  (0) 2015.07.03
쉘 프롬프트 변경  (1) 2015.06.02
Posted by FeliZ_하늘..

댓글을 달아 주세요

http://serverfault.com/questions/160581/how-to-setup-passwordless-sudo-on-linux

Posted by FeliZ_하늘..

댓글을 달아 주세요

리눅스 dns 설정

[Linux] 2015.07.03 15:40

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 또는 다른 파일


가장 하단에


DNS1=210.220.163.82

DNS2=219.250.36.130


추가하면 된다


참고


KT olleh (올레; 구 QOOK(쿡))

  • 기본 DNS 서버 주소 - 168.126.63.1
  • 보조 DNS 서버 주소 - 168.126.63.2


SK Broadband (브로드밴드)

  • 기본 DNS 서버 주소 - 210.220.163.82
  • 보조 DNS 서버 주소 - 219.250.36.130


LG U+(유플러스; 구 XPEED 파워콤)

  • 기본 DNS 서버 주소 - 164.124.107.9
  • 보조 DNS 서버 주소 - 203.248.242.2


Google Public (구글 퍼블릭)

  • 기본 DNS 서버 주소 - 8.8.8.8
  • 보조 DNS 서버 주소 - 8.8.4.4


'[Linux]' 카테고리의 다른 글

vi 명령어  (0) 2015.08.04
부팅시 mysql 자동시작  (0) 2015.07.31
.profile .bash_profile .bashrc 차이  (0) 2015.07.08
리눅스 dns 설정  (0) 2015.07.03
쉘 프롬프트 변경  (1) 2015.06.02
glances 에서 influxdb 로 export 위해 library 설치  (0) 2015.02.12
Posted by FeliZ_하늘..

댓글을 달아 주세요

파일의 위치

Linux

/etc/hosts


Windows

C:\Windows\System32\drivers\etc\hosts


둘 다 관리자 권한이어야 수정 가능함


'[프로그래밍]' 카테고리의 다른 글

GIS shp 파일 변환  (0) 2015.07.28
protocol buffer 2.5.0 설치  (0) 2015.06.29
/etc/hosts 파일 설정  (0) 2015.03.16
putty 에서 pem 파일 이용하여 접속하기  (0) 2015.02.26
버전관리 Git  (0) 2015.02.07
spring security, 비밀번호 암호화, sha  (0) 2015.01.13
Posted by FeliZ_하늘..

댓글을 달아 주세요

사용환경

Tomcat 7.0.57 (minor version 은 40 보다 큰 버전을 사용할 것을 권장, 40 까지는 보안문제가 있었다 함)

memcached 1.8.3

jdk1.7.0_45


우선 memcached 가 설치돼 있어야 한다


centos 에서 memcached 설치하기

https://www.lullabot.com/articles/installing-memcached-on-redhat-or-centos


memcached 는 아래에서 다운 받아 설치한다


http://memcached.org/downloads


윈도우 64비트용은 구글에 memcached 윈도우 또는 각종 단어로 검색하여 다운받는다


http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip


되도록 윈도우가 아닌 환경에 설치할 것을 권장한다.


session id 는 다른데 session 공유는 된다던지


session 공유는 되는데 session id 가 다르다던지 하는 등 원하는대로 작동하지 않을 수 있다.


윈도우 8.1 64비트 에서는 session id 는 다른데 session 공유는 됐다.


설정은 아래 링크에 자세히 나와 있으니 참고하여 설정한다


https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration


아니면 아래 링크들에서 jar 파일을 받아서


{TOMCAT_HOME}/lib 아래에 넣어준다


http://repo1.maven.org/maven2/de/javakaffee/msm/msm-kryo-serializer/1.8.3/

http://repo1.maven.org/maven2/de/javakaffee/kryo-serializers/0.11/

http://repo1.maven.org/maven2/com/googlecode/kryo/1.04/

http://repo1.maven.org/maven2/com/googlecode/minlog/1.2/

http://repo1.maven.org/maven2/com/googlecode/reflectasm/1.01/

http://repo1.maven.org/maven2/asm/asm/3.2/

http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/1.8.3/

http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc7/1.8.3/


그리고 {TOMCAT_HOME}/conf/context.xml 을 다음과 같이 수정한다



이런식으로 설정하고나면 session 의 값들이 memcached 가 설치된 곳만 바라보게 된다


그래서 같은 브라우저라면 같은 session id 가 나오고 session 에 같은 값들이 저장되게 된다


하나의 톰캣에 여러 context 도 같은 session 을 공유하게 되고


여러 톰캣의 설정을 같게 하여 톰캣을 여러개 띄워도 같은 session 을 공유하게 된다


memcached-tool 명령어로 memcached 에 저장된 데이터나 상태를 볼 수 있다

(원하는대로 들어있지 않다 ㅠㅠ)


memcached-tool localhost:11211 [display]

memcached-tool localhost:11211 stats

memcached-tool localhost:11211 dump

'[Web]' 카테고리의 다른 글

tomcat gzip 압축 설정  (0) 2015.01.16
telnet을 이용한 memcached 관리  (1) 2015.01.16
jsonpath  (0) 2015.01.13
XSLT Tutorial  (0) 2015.01.13
HTTP 상태 코드 Status Code  (0) 2015.01.09
session clustering 을 위한 memcached 사용하기  (0) 2015.01.03
Posted by FeliZ_하늘..

댓글을 달아 주세요