geode(一)
来源:互联网 发布:大数据 云计算比较 编辑:程序博客网 时间:2024/06/01 10:16
简述
公司准备使用geode,所以研究一下。
geode由gemfire开源而来的分布式缓存管理平台。
安装
先决条件
- jdk 1.8以上
- 统一系统时间戳,分布式环境下的日志、统计和监控
- 正确配置主机名和host文件,影响gfsh和Pulse功能
- 关闭SYN cookies 保护,分布式系统会触发这个保护条件
编辑/etc/sysctl.conf文件 net.ipv4.tcp_syncookies = 0 在命令行中执行sysctl -p命令,重载sysctl.conf文件
安装
确认jdk安装好后,我使用的是源代码安装
下载1.3版本http://geode.apache.org/releases/
下载好源代码后解压到目录
进入目录后执行:
$ ./gradlew build -Dskip.tests=true
执行时间比较漫长。
执行完后,加入环境变量:
export PATH=$PATH:~/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/bin/
source .bash_profile
gfsh version
输出结果:
$ gfsh version1.3.0
运行
进入gfsh命令模式
进入gfsh命令前,先选好工作目录,比如在home下建立一个geode_worker的目录,然后cd到这个目录里面执行gfsh,进入gfsh命令行。这样可以让你的geode文件存储在geode_worker工作目录里。当然也可以不这样做!
gfsh
so easy!
运行locator
name参数可以不传,如果不传,则使用随机名
gfsh>start locator --name=locator1Starting a Geode Locator in /Users/sunzuoquan/locator1.......Locator in /Users/sunzuoquan/locator1 on 10.106.3.200[10334] as locator1 is currently online.Process ID: 38535Uptime: 3 secondsGeode Version: 1.3.0Java Version: 1.8.0_121Log File: /Users/sunzuoquan/locator1/locator1.logJVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806Class-Path: /Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jarSuccessfully connected to: JMX Manager [host=10.106.3.200, port=1099]Cluster configuration service is up and running.gfsh>
注意 10.106.3.200[10334]
一个cluster应该有一个locator
connect –locator=localhost[10334]
这个命令可以连接到cluster,确定操作的命令是针对一个cluster的
开启 pulse
是个监控工具。
gfsh>start pulseLaunched Geode Pulse
开始我以为这个命令会开启一个服务,没想到直接给我打开了一个浏览器,直接访问了下面地址:
http://localhost:7070/pulse/login.html
默认用户密码:admin/admin
开启server
name参数可以不传,如果不传则随机。当有多个server时,启动会与其他server同步数据。如果其他server没有启动,则等待。
–J=-DDistributionManager.DISCONNECT_WAIT=
这个参数设置给每个阶段的等待时间
还有一个参数很重要:
–groups=group1
表示server所在的组
启动时如果不加端口参数,则默认使用40404
gfsh>start server --name=server1 --server-port=40411Starting a Geode Server in /Users/sunzuoquan/server1.......Server in /Users/xxx/server1 on 10.106.3.200[40411] as server1 is currently online.Process ID: 38769Uptime: 3 secondsGeode Version: 1.3.0Java Version: 1.8.0_121Log File: /Users/xxx/server1/server1.logJVM Arguments: -Dgemfire.default.locators=10.106.3.200[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806Class-Path: /Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
现在可以看看pulse监控,有什么变化了吗?
会看到有一个节点,这个节点里面有一个locater和一个server,以及他们的名字
可以开启http配置管理
gfsh>start server --name=server1 --J=-Dgemfire.jmx-manager=true \--J=-Dgemfire.jmx-manager-start=true --http-service-port=8080 \--http-service-bind-address=myremotecluster.example.com
远程配置
gfsh>connect --use-http=true --url="http://myremotecluster.example.com:8080/geode/v1"Successfully connected to: Geode Manager's HTTP service @ http://myremotecluster.example.com:8080/geode/v1
开启server,指定cache配置
start server --name=server1 --mcast-port=10338 \--cache-xml-file=../ServerConfigs/cache.xml --server-port=40404
开启server,使用配置文件
gfsh>start server --name=server1 \--properties-file=D:\gfeserver\gemfire.properties
开启server的相关参数
start server --name=value [--assign-buckets(=value)] [--bind-address=value] [--cache-xml-file=value] [--classpath=value] [--disable-default-server(=value)] [--disable-exit-when-out-of-memory(=value)] [--enable-time-statistics(=value)] [--force(=value)] [--include-system-classpath(=value)] [--properties-file=value] [--security-properties-file=value] [--group=value] [--locators=value] [--locator-wait-time=value] [--log-level=value] [--mcast-address=value] [--mcast-port=value] [--memcached-port=value] [--memcached-protocol=value] [--rebalance(=value)] [--server-bind-address=value] [--server-port=value] [--spring-xml-location=value] [--statistic-archive-file=value] [--dir=value] [--initial-heap=value] [--max-heap=value] [--use-cluster-configuration(=value)] [--J=value(,value)*] [--critical-heap-percentage=value] [--critical-off-heap-percentage=value] [--eviction-heap-percentage=value] [--eviction-off-heap-percentage=value] [--hostname-for-clients=value] [--max-connections=value] [--message-time-to-live=value] [--max-message-count=value] [--max-threads=value] [--socket-buffer-size=value] [--lock-memory=value] [--off-heap-memory-size=value]
locator 参数格式:locators=host1[9001],host2[9003]
查看状态
gfsh>status server --name=server1gfsh>status locator --name=locator1gfsh>start server --name=server_name --mcast-port=10338 --properties-file=serverConfig/gemfire.properties --security-properties-file=gfsecurity.properties
管理数据
创建一个复制持久化的region
创建
这里的region和关系数据库的表一样理解就好了
创建:注意类型REPLICATE_PERSISTENT,很明显复制+持久化。
也就是说region会复制到其他server,且会被持久化
可以指定组参数,如果没有指定则是所有成员有效
–groups=group1 如果指定了则只对特定的组有效
gfsh>create region --name=regionA --type=REPLICATE_PERSISTENTMember | Status------- | --------------------------------------server1 | Region "/regionA" created on "server1"
查看服务的region
gfsh>list regionsList of regions---------------regionA
查看cluster的成员
gfsh>list members Name | Id-------- | -------------------------------------------------locator1 | 10.106.3.200(locator1:38535:locator)<ec><v0>:1024server1 | 10.106.3.200(server1:38769)<v1>:1025
查看具体信息
注意查询region用describe region ,查询locator或server用describe member
gfsh>describe region --name=regionA..........................................................Name : regionAData Policy : persistent replicateHosting Members : server1Non-Default Attributes Shared By Hosting Members Type | Name | Value------ | ----------- | --------------------Region | data-policy | PERSISTENT_REPLICATE | size | 0 | scope | distributed-ackgfsh>describe member --name=locator1Name : locator1Id : 10.106.3.200(locator1:38535:locator)<ec><v0>:1024Host : 10.106.3.200Regions :PID : 38535Groups :Used Heap : 286MMax Heap : 3641MWorking Dir : /Users/xx/locator1Log file : /Users/xx/locator1/locator1.logLocators : 10.106.3.200[10334]gfsh>describe member --name=server1Name : server1Id : 10.106.3.200(server1:38769)<v1>:1025Host : 10.106.3.200Regions : regionAPID : 38769Groups :Used Heap : 52MMax Heap : 3641MWorking Dir : /Users/xx/server1Log file : /Users/xx/server1/server1.logLocators : 10.106.3.200[10334]Cache Server InformationServer Bind : nullServer Port : 40411Running : trueClient Connections : 0
使用gfsh管理region中的数据
增加数据
gfsh>put --region=regionA --key="1" --value="one"Result : trueKey Class : java.lang.StringKey : 1Value Class : java.lang.StringOld Value : <NULL>
查询数据
gfsh>query --query="select * from /regionA"Result : trueLimit : 100Rows : 2Result------twoone
停止
停止server
再启动查看数据,看看数据是否还存在?
gfsh>stop server --name=server1Stopping Cache Server running in /Users/sunzuoquan/server1 on 10.106.3.200[40411] as server1...Process ID: 38769Log File: /Users/sunzuoquan/server1/server1.log...gfsh>
gfsh>stop server –dir=server2 这个命令也可以停止服务
stop命令也可以停止locator,参数基本和停止server一致
停止集群
gfsh>shutdown –include-locators=true
–include-locators 参数可以停止localtor,如果没有这个参数,则只停止数据节点
–time-out=60 停止的超时时间,避免长时间等待
- geode(一)
- Geode
- GemFire/Geode中的国际化(一)
- geode入门
- Geode 发布应用JARS到Geode members
- 1.Apache Geode
- Geode 快速入门
- Geode Region 压缩介绍
- Geode集群配置服务
- Geode 分布式缓存配置
- Java调用Geode
- Geode Region 管理
- Java连接Geode示例
- geode(二)配置
- geode(三) region
- OSG::Drawable, Geode的用法
- Apache Geode Region 压缩介绍
- geode集群配置服务概述
- make的使用
- JAVA字符串格式化-String.format()的使用
- CSS鼠标悬浮某元素上变色
- Mybatis的分页插件pagehelper的使用介绍
- Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/
- geode(一)
- 大数据1-hadoop架构体系中的【Hadoop】HDFS的运行原理
- python 中 print 函数用法总结 (一)
- 百度地图jsapi在手机站里实现中心标注不随地图移动的效果
- BeanShell获取VIEWSTATE和EVENTVALIDATION
- 进程通信-有名管道FIFO
- C#语法的一般特性
- stressapptest DDR 测试工具
- LSTM学习总结(Based tensorflow)