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_하늘..

댓글을 달아 주세요

내 작업환경은


openstack 에 centos6.5 를 설치하였고


pem 파일을 이용하여 putty 에서 접속하였다



32비트 환경인지 64비트인지 환경인지 알아본다


나는 64비트여서 아래와 같이 나온다



이제 rpm 파일을 다운받는다


리눅스에서 웹으로 다운받아도 되고


웹으로 로컬에 다운받은 다음 ftp 같은걸로 쏴도 되는데


나는 명령어 치는게 좋으니까 명령어로 다운받았다


64비트 환경에서는



32비트 환경에서는



다 다운 받았으면 설치한다



Posted by FeliZ_하늘..

댓글을 달아 주세요

https://wiki.postgresql.org/wiki/YUM_Installation

Posted by FeliZ_하늘..

댓글을 달아 주세요

http://influxdb.com/docs/v0.6/introduction/installation.html


64-bit systems 에서는


# wget http://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm

# rpm -ivh influxdb-latest-1.x86_64.rpm

# /etc/init.d/influxdb start

Posted by FeliZ_하늘..

댓글을 달아 주세요

http://syslint.com/syslint/how-to-install-glances-monitoring-tool-in-centos-rhel-servers/

https://github.com/nicolargo/glances/wiki/Install:-On-CentOS-with-EPEL-repository


# yum clean all

# yum update

# rpm -ivh http://fr2.rpmfind.net/linux/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum install python-pip python-devel

# pip-python install glances

# glances -t 5

5초마다 화면이 바뀐다


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_하늘..

댓글을 달아 주세요