15分钟内上手Apache Geode

需要Apache Geode的 快速介绍? 参加这个简短的游览,可以尝试基本的功能特性和功能点。

Step 1: 安装Apache Geode

有关说明,请参阅如何安装

Step 2: 使用gfsh启动Locator

在终端窗口中,使用gfsh命令行界面启动一个Locator。 Apache Geode gfsh (发音为“jee-fish”)提供了一个直观的命令行界面,您可以从中启动,管理和监视Apache Geode进程,数据和应用程序。请参阅 gfsh.

locator是一个Geode进程,可以告诉连接成员的新连接成员,并且为Server使用提供负载平衡。 默认情况下,Locator启动一个JMX管理器,用于监视和管理Geode集群。 集群配置服务(Cluster Configuration Service)使用Locator将集群配置持久化并分发给集群成员。 请参阅 Running Geode Locator ProcessesOverview of the Cluster Configuration Service.

  1. 创建一个临时工作目录(例如,my_geode), 并进入这个目录。 gfsh在这个位置保存Locator和Server的工作目录和日志文件。
  2. 通过在命令行中键入gfsh来启动gfsh(或者如果你使用的是Windows,则启动gfsh.bat)。

        _________________________     __
       / _____/ ______/ ______/ /____/ /
      / /  __/ /___  /_____  / _____  /
     / /__/ / ____/  _____/ / /    / /
    /______/_/      /______/_/    /_/    1.0.0
    
    Monitor and Manage Geode
    gfsh>
    
  3. gfsh提示符下,键入start locator命令并指定Locator的名称:

    gfsh>start locator --name=locator1
    Starting a Geode Locator in /home/username/my_geode/locator1...
    .................................
    Locator in /home/username/my_geode/locator1 on ubuntu.local[10334] as locator1 is currently online.
    Process ID: 3529
    Uptime: 18 seconds
    Geode Version: 1.0.0
    Java Version: 1.8.0_101
    Log File: /home/username/my_geode/locator1/locator1.log
    JVM 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=9223372036854775806
    Class-Path: /home/username/Apache_Geode_Linux/lib/geode-core-1.0.0.jar:
    /home/username/Apache_Geode_Linux/lib/geode-dependencies.jar
    
    Successfully connected to: JMX Manager [host=10.118.33.169, port=1099]
    
    Cluster configuration service is up and running.
    

如果从gfsh运行`start locator'而不指定成员名,gfsh会自动选择一个随机的成员名。 这对于自动化是有帮助的。

Step 3: 启动Pulse

启动基于浏览器的Pulse监控工具。 Pulse是一个Web应用程序,它提供了一个图形化仪表板,用于监控Geode集群,成员和Region的重要,实时健康和性能。请参阅 Geode Pulse.

gfsh>start pulse

此命令启动Pulse并自动将您连接到在Locator中运行的JMX Manager。 在Pulse登录页面上,键入默认用户名“admin”和密码“admin”。

Pulse应用程序现在显示您刚刚启动的定位器(locator1):

Step 4: 启动一个Server

Geode Server是作为集群(也称为分布式系统)的长期存活且可配置成员运行的进程。 Geode Server主要用于保存长期存在的数据 Region,并用于运行标准Geode进程,如客户端/服务器(C/S)拓扑架构中的 Server。请参阅 Running Geode Server Processes.

启动cache server:

gfsh>start server --name=server1 --server-port=40411

此命令在指定的40411端口上启动名为“server1”的cache Server。

如果从gfsh运行start server而不指定成员名,gfsh会自动选择一个随机的成员名。 这对于自动化是有帮助的。

观察Pulse中的变化(新成员和服务器)。 可以尝试点开分布式系统图标,以图形方式查看 Locator和Cache Server。

Step 5: 创建一个replicated persistent region

In this step you create a region with the gfsh command line utility. Regions are the core building blocks of the Geode cluster and provide the means for organizing your data. The region you create for this exercise employs replication to replicate data across members of the cluster and utilizes persistence to save the data to disk. 在此步骤中,您可以使用gfsh命令行工具创建一个Region。 Region是Geode集群的核心构建模块,并提供组织数据的方法。 您为此练习创建的 Region,使用复制(replicated)将数据复制到集群的所有成员,并利用持久性将数据保存到磁盘。请参阅 Data Regions.

  1. 创建一个replicated persistent region:

    gfsh>create region --name=regionA --type=REPLICATE_PERSISTENT
    Member  | Status
    ------- | --------------------------------------
    server1 | Region "/regionA" created on "server1"
    

    请注意,该region保存在server1上。

  2. 使用gfsh命令行来查看集群中Region的列表。

    gfsh>list regions
    List of regions
    ---------------
    regionA
    
  3. 列出集群的成员。 您启动的Locator和Cache Server显示在列表中:

     gfsh>list members
       Name   | Id
     -------- | ---------------------------------------
     locator1 | ubuntu(locator1:3529:locator)<v0>:59926
     server1  | ubuntu(server1:3883)<v1>:65390
    
  4. 要查看指定Region的详细信息,请键入以下内容:

    gfsh>describe region --name=regionA
    ..........................................................
    Name            : regionA
    Data Policy     : persistent replicate
    Hosting Members : server1
    
    Non-Default Attributes Shared By Hosting Members
    
     Type  | Name | Value
    ------ | ---- | -----
    Region | size | 0
    
  5. 在Pulse中,单击绿色集群图标可查看刚刚添加到集群的所有新成员和新Region。

注意:保持此gfsh提示符打开下一步。

Step 6: 处理该Region的数据并展示持久性

Apache Geode manages data as key/value pairs. In most applications, a Java program adds, deletes and modifies stored data. You can also use gfsh commands to add and retrieve data. Apache Geode使用 Key/Value方式管理数据。 在大多数应用程序中,Java程序添加,删除和修改存储的数据。 您还可以使用gfsh命令来添加和检索数据。请参阅 Data Commands.

  1. 运行以下put命令,将一些数据添加到该region:

    ``` pre gfsh>put --region=regionA --key="1" --value="one" Result : true Key Class : java.lang.String Key : 1 Value Class : java.lang.String Old Value :

gfsh>put --region=regionA --key="2" --value="two"
Result      : true
Key Class   : java.lang.String
Key         : 2
Value Class : java.lang.String
Old Value   : <NULL>
```
  1. 运行以下命令从该region中检索数据:

    gfsh>query --query="select * from /regionA"
    
    Result     : true
    startCount : 0
    endCount   : 20
    Rows       : 2
    
    Result
    ------
    two
    one
    

    请注意,结果显示使用put命令创建的两个数据条目(data entry)的值。请参阅 Data Entries.

  2. 使用以下命令停止cache server:

    gfsh>stop server --name=server1
    Stopping Cache Server running in /home/username/my_geode/server1 on ubuntu.local[40411] as server1...
    Process ID: 3883
    Log File: /home/username/my_geode/server1/server1.log
    ....
    
  3. 使用以下命令重新启动cache server:

    gfsh>start server --name=server1 --server-port=40411
    
  4. 运行以下命令再次从该region中检索数据 - 注意数据仍然可用:

    gfsh>query --query="select * from /regionA"
    
    Result     : true
    startCount : 0
    endCount   : 20
    Rows       : 2
    
    Result
    ------
    two
    one
    

    因为regionA设置了持久性,它将数据的副本写入磁盘。 当 Server 保存的regionA启动时,数据将被填充到缓存中。 请注意,结果显示您在停止服务器之前,使用put命令创建的两个数据条目的值, 。

请参阅 [Data Entries](../basic_config/data_entries_custom_classes/chapter_overview.html).

请参阅 [Data Regions](../basic_config/data_regions/chapter_overview.html#data_regions).

Step 7: 检查复制的效果

在此步骤中,您启动第二个cache server。 因为regionA是复制的,所以在托管该 region的任何服务器上数据都是可用的。

请参阅 Data Regions.

  1. 启动第二个cache server:

    gfsh>start server --name=server2 --server-port=40412
    
  2. 运行describe region命令查看有关regionA的信息:

    gfsh>describe region --name=regionA
    ..........................................................
    Name            : regionA
    Data Policy     : persistent replicate
    Hosting Members : server1
                      server2
    
    Non-Default Attributes Shared By Hosting Members
    
     Type  | Name | Value
    ------ | ---- | -----
    Region | size | 2
    

    请注意,您不需要再次为server2创建regionA。 该命令的输出显示regionA托管在server1和server2上。 当gfsh启动服务器时,它会从集群配置服务请求配置,然后将共享配置分发到加入集群的任何新服务器。

  3. 添加第三个数据条目(data entry):

    gfsh>put --region=regionA --key="3" --value="three"
    Result      : true
    Key Class   : java.lang.String
    Key         : 3
    Value Class : java.lang.String
    Old Value   : <NULL>
    
  4. 打开Pulse应用(在Web浏览器中)并观察集群拓扑。 您应该看到一个带有两个连接Server的Locator。 点击Data</ span>选项卡,可以查看有关regionA的信息。

  5. 使用以下命令停止第一个cache server:

    gfsh>stop server --name=server1
    Stopping Cache Server running in /home/username/my_geode/server1 on ubuntu.local[40411] as server1...
    Process ID: 4064
    Log File: /home/username/my_geode/server1/server1.log
    ....
    
  6. 从剩余的cache server检索数据.

    gfsh>query --query="select * from /regionA"
    
    Result     : true
    startCount : 0
    endCount   : 20
    Rows       : 3
    
    Result
    ------
    two
    one
    three
    

    请注意,数据包含3个条目(entries),包括刚刚添加的条目(entry)。

  7. 添加第四个数据条目(data entry):

    gfsh>put --region=regionA --key="4" --value="four"
    Result      : true
    Key Class   : java.lang.String
    Key         : 3
    Value Class : java.lang.String
    Old Value   : <NULL>
    

    .请注意,只有server 2正在运行。 因为数据被复制和持久化,所有数据仍然可用。 但是新的数据条目(data entry)目前仅在server 2上可用。

    gfsh>describe region --name=regionA
    ..........................................................
    Name            : regionA
    Data Policy     : persistent replicate
    Hosting Members : server2
    
    Non-Default Attributes Shared By Hosting Members
    
     Type  | Name | Value
    ------ | ---- | -----
    Region | size | 4
    
  8. 停止剩余的cache server:

    gfsh>stop server --name=server2
    Stopping Cache Server running in /home/username/my_geode/server2 on ubuntu.local[40412] as server2...
    Process ID: 4185
    Log File: /home/username/my_geode/server2/server2.log
    .....
    

Step 8: 并行重新启动cache server

在此步骤中,并行重新启动cache server。 由于数据持久化,server重新启动时数据可用。 因为复制数据,您必须并行启动server,以便它们可以在启动之前同步其数据。

  1. 启动server1。 因为regionA被复制和持久化,它需要来自其他server的数据启动并等待server启动:

    gfsh>start server --name=server1 --server-port=40411
    Starting a Geode Server in /home/username/my_geode/server1...
    ............................................................................
    ............................................................................
    

    请注意,如果您查看重新启动的server的 server1.log 文件,您将看到类似于以下内容的日志消息:

    [info 2015/01/14 09:08:13.610 PST server1 <main> tid=0x1] Region /regionA has pot
    entially stale data. It is waiting for another member to recover the latest data.
      My persistent id:
    
        DiskStore ID: 8e2d99a9-4725-47e6-800d-28a26e1d59b1
        Name: server1
        Location: /192.0.2.0:/home/username/my_geode/server1/.
    
      Members with potentially new data:
      [
        DiskStore ID: 2e91b003-8954-43f9-8ba9-3c5b0cdd4dfa
        Name: server2
        Location: /192.0.2.0:/home/username/my_geode/server2/.
      ]
      Use the "gfsh show missing-disk-stores" command to see all disk stores that
    are being waited on by other members.
    
  2. 在第二个终端窗口中,将目录更改为scratch工作目录(例如my_geode),然后启动gfsh:

    [username@localhost ~/my_geode]$ gfsh
        _________________________     __
       / _____/ ______/ ______/ /____/ /
      / /  __/ /___  /_____  / _____  /
     / /__/ / ____/  _____/ / /    / /
    /______/_/      /______/_/    /_/    1.0.0
    
    Monitor and Manage Geode
    
  3. 运行以下命令连接到集群:

    gfsh>connect --locator=localhost[10334]
    Connecting to Locator at [host=localhost, port=10334] ..
    Connecting to Manager at [host=ubuntu.local, port=1099] ..
    Successfully connected to: [host=ubuntu.local, port=1099]
    
  4. 启动 server2:

    gfsh>start server --name=server2 --server-port=40412
    

    当server2启动时,请注意观察在第一个gfsh窗口中,会显示server1 completes its start up:

    Server in /home/username/my_geode/server1 on ubuntu.local[40411] as server1 is currently online.
    Process ID: 3402
    Uptime: 1 minute 46 seconds
    Geode Version: 1.0.0
    Java Version: 1.8.0_60
    Log File: /home/username/my_geode/server1/server1.log
    JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10334] -Dgemfire.use-cluster-configuration=true
    -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true
    -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
    Class-Path: /home/username/Apache_Geode_Linux/lib/gemfire.jar:
    /home/username/Apache_Geode_Linux/lib/server-dependencies.jar
    
  5. 验证Locator和两台server是否正在运行:

    gfsh>list members
      Name   | Id
    -------- | ---------------------------------------
    server2  | ubuntu(server2:3992)<v8>:21507
    server1  | ubuntu(server1:3402)<v7>:36532
    locator1 | ubuntu(locator1:2813:locator)<v0>:46644
    
  6. 运行查询以验证您在重启之前使用put命令输入的所有数据是否可用:

    gfsh>query --query="select * from /regionA"
    
    Result     : true
    startCount : 0
    endCount   : 20
    Rows       : 5
    
    Result
    ------
    one
    two
    four
    Three
    
    NEXT_STEP_NAME : END
    
  7. 使用以下命令停止server2:

    gfsh>stop server --dir=server2
    Stopping Cache Server running in /home/username/my_geode/server2 on 192.0.2.0[40412] as server2...
    Process ID: 3992
    Log File: /home/username/my_geode/server2/server2.log
    ....
    
  8. 运行查询以验证您之前使用put命令输入的所有数据是否可用:

    gfsh>query --query="select * from /regionA"
    
    Result     : true
    startCount : 0
    endCount   : 20
    Rows       : 5
    
    Result
    ------
    one
    two
    four
    Three
    
    NEXT_STEP_NAME : END
    

Step 9: 关闭系统,包括Locator

要关闭集群,请执行以下操作:

  1. 在当前的gfsh会话中,停止集群:

    gfsh>shutdown --include-locators=true
    

    请参阅 shutdown.

  2. 出现提示时,键入“Y”确认集群的关闭.

    As a lot of data in memory will be lost, including possibly events in queues,
    do you really want to shutdown the entire distributed system? (Y/n): Y
    Shutdown is triggered
    
    gfsh>
    No longer connected to ubuntu.local[1099].
    gfsh>
    
  3. 键入exit退出gfsh shell。

Step 10: 接下来做什么...

以下是有关接下来要探讨Apache Geode的一些建议:

results matching ""

    No results matching ""