OceanBase从离线手动部署到应用开发

2024年 5月 7日 36.7k 0

作者简介:沙仟罚,成都某游戏公司大数据平台负责人,拥有10年研发经验、7年大数据经验。

1 OceanBase离 线部署

1.1 环境检查

1.1.1 硬件与操作系统准备

OceanBase从离线手动部署到应用开发-1

检查操作系统版本:

OceanBase从离线手动部署到应用开发-2

输出:

CentOS Linux release 7.9.2009 (Core)

OceanBase从离线手动部署到应用开发-3

文件系统        容量  已用  可用 已用% 挂载点

devtmpfs         32G     0   32G    0% /dev

tmpfs            32G   44K   32G    1% /dev/shm

tmpfs            32G   14M   32G    1% /run

tmpfs            32G     0   32G    0% /sys/fs/cgroup

/dev/sda2        40G   26G   12G   70% /

/dev/sda4       502G   31G  446G    7% /data

/dev/sda1       477M  144M  304M   33% /boot

cm_processes     32G  237M   32G    1% /run/cloudera-scm-agent/process

OceanBase从离线手动部署到应用开发-4

OceanBase从离线手动部署到应用开发-5

 total        used        free      shared  buff/cache   available

Mem:             62           5          22           0          34          56

Swap:             7           0           7 

OceanBase从离线手动部署到应用开发-1

检查CPU:

OceanBase从离线手动部署到应用开发-7

...24-Core Processor

1.2 安装部署

1.2.1 服务器配置

hosts配置命令:

OceanBase从离线手动部署到应用开发-1

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1  localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.21.194 cmagent021194.youxiapi.com cmagent021194

192.168.21.193 cmagent021193.youxiapi.com cmagent021193

192.168.21.192 cmagent021192.youxiapi.com cmagent021192

192.168.21.17 cmagent021017.youxiapi.com cmagent021017

192.168.25.47 cmagent025047.youxiapi.com cmagent025047

配置主机名称命令:

OceanBase从离线手动部署到应用开发-9

1.2.2 服务器优化

配置limits文件命令:

OceanBase从离线手动部署到应用开发-10

内容

soft  nofile 1048576

*  hard  nofile 1048576

*  soft  nproc  1048576

*  hard  nproc  1048576

*  soft  memlock unlimited

*  hard  memlock unlimited 

配置nproc文件:

OceanBase从离线手动部署到应用开发-11

内容

*  soft  nproc  1048576

*  hard  nproc  1048576 

配置sysctl文件命令:

OceanBase从离线手动部署到应用开发-12

内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

#net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_mem = 3077271 4103031 6154542

net.ipv4.tcp_rmem = 4096 87380 16777216

net.ipv4.tcp_wmem = 4096 16384 16777216

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

vm.swappiness = 1

vm.min_free_kbytes = 204800

vm.max_map_count = 2048000

kernel.pid_max = 819200

vm.zone_reclaim_mode = 0 

配置防火墙(如内网使用,且对防火墙不熟的,最好关闭防火墙)

OceanBase从离线手动部署到应用开发-13

内容

*nat

:PREROUTING ACCEPT [101:7584]

:INPUT ACCEPT [22:924]

:OUTPUT ACCEPT [366:22236]

:POSTROUTING ACCEPT [366:22236]

COMMIT

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [12999:36600587]

-A INPUT -s 192.168.0.0/16 -p tcp -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000:10000 -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 53278 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A INPUT -j REJECT --reject-with icmp-port-unreachable

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A INPUT -s 172.21.254.105/32 -j ACCEPT

COMMIT

重启防火墙

OceanBase从离线手动部署到应用开发-14

输出:

Chain INPUT (policy ACCEPT)

target  prot opt source  destination

ACCEPT  tcp -- 192.168.0.0/16  0.0.0.0/0

ACCEPT  all -- 0.0.0.0/0  0.0.0.0/0  state RELATED,ESTABLISHED

DROP  tcp -- 0.0.0.0/0  0.0.0.0/0  tcp dpt:2881

DROP  tcp -- 0.0.0.0/0  0.0.0.0/0  tcp dpt:2882

ACCEPT  tcp -- 0.0.0.0/0  0.0.0.0/0  state NEW tcp dpts:8000:10000

ACCEPT  icmp -- 0.0.0.0/0  0.0.0.0/0

ACCEPT  all -- 0.0.0.0/0  0.0.0.0/0

ACCEPT  tcp -- 0.0.0.0/0  0.0.0.0/0  state NEW tcp dpt:53278

REJECT  all -- 0.0.0.0/0  0.0.0.0/0  reject-with icmp-host-prohibited

REJECT  all -- 0.0.0.0/0  0.0.0.0/0  reject-with icmp-port-unreachable

ACCEPT  all -- 172.21.254.105  0.0.0.0/0

Chain FORWARD (policy ACCEPT)

target  prot opt source  destination

REJECT  all -- 0.0.0.0/0  0.0.0.0/0  reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

target  prot opt source  destination 

重启服务器

OceanBase从离线手动部署到应用开发-15

1.2.3           创建用户

创建admin用户并设置密码:

OceanBase从离线手动部署到应用开发-16

上传安装包至cmagent025047等3台主机 /opt/apps目录

OceanBase从离线手动部署到应用开发-17

1.2.4 数据库部署

创建相关目录:

OceanBase从离线手动部署到应用开发-18

安装OceanBase

OceanBase从离线手动部署到应用开发-19

内容:

/home/admin/oceanbase/store/

`-- obdemo

|-- clog -> /redo/obdemo/clog

|-- etc2 -> /redo/obdemo/etc2

|-- etc3 -> /data/obdemo/etc3

|-- ilog -> /redo/obdemo/ilog

|-- slog -> /redo/obdemo/slog

`-- sstable -> /data/obdemo/sstable

/data/obdemo

|-- etc3

`-- sstable

/redo/

`-- obdemo

|-- clog

|-- etc2

|-- ilog

`-- slog

配置环境变量

OceanBase从离线手动部署到应用开发-20

配置环境变量

OceanBase从离线手动部署到应用开发-21

内容:

/usr/local/mysql/lib/mysql:/usr/local/lib:/usr/lib:/home/admin/oceanbase/lib

OceanBase从离线手动部署到应用开发-22

1.2.5 启动OceanBase

启动Observer,只有-z zone1参数有差别,注意网卡名称em2 与实际网卡名称相符

OceanBase从离线手动部署到应用开发-23

OceanBase从离线手动部署到应用开发-24

输出内容:

 devname: em2

mysql port: 2881

rpc port: 2882

zone: zone3

data_dir: /home/admin/oceanbase/store/obdemo

rs list: 192.168.25.47:2882:2881;192.168.21.192:2882:2881;192.168.21.17:2882:2881

cluster id: 20210912

appname: obdemo

optstr: memory_limit=28G,cache_wash_threshold=2G,__min_full_resource_pool_memory=268435456,system_memory=4G,memory_chunk_cache_size=128M,cpu_count=18,net_thread_count=4,datafile_size=200G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2

data_dir: /home/admin/oceanbase/store/obdemo

OceanBase从离线手动部署到应用开发-25

查看端口监听情况

OceanBase从离线手动部署到应用开发-26

内容:

tcp  0  0 0.0.0.0:2881  0.0.0.0:*

tcp  0  0 0.0.0.0:2882  0.0.0.0:* 

OceanBase从离线手动部署到应用开发-27

1.2.6 初始化OceanBase

初始化

OceanBase从离线手动部署到应用开发-28

内容:

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (1 min 7.95 sec)

+-----------------------------+

| Database  |

+------------------------------+

| oceanbase  |

| information_schema |

| mysql  |

| SYS  |

| LBACSYS  |

| ORAAUDITOR  |

| test  |

+------------------------------+

OceanBase从离线手动部署到应用开发-29

修改密码

OceanBase从离线手动部署到应用开发-30

1.2.7 启动OBProxy

启动OBProxy

OceanBase从离线手动部署到应用开发-31

内容:

tcp  0  0 0.0.0.0:2883  0.0.0.0:*

tcp  0  0 0.0.0.0:2884  0.0.0.0:*

连接配置OceanBase

OceanBase从离线手动部署到应用开发-32

OceanBase从离线手动部署到应用开发-33

1.3 租户管理

1.3.1 资源管理

系统root资源管理

OceanBase从离线手动部署到应用开发-34

OceanBase从离线手动部署到应用开发-35

1.3.2 管理用户

租户root登录youxi_db数据库并创建数据库和普通用户

OceanBase从离线手动部署到应用开发-36

内容:

+-----------------------------------+

| Database  |

+-----------------------------------+

| information_schema  |

| dw  |

+-----------------------------------+

至此普通用户bigdata创建成功,可用于业务开发了。

2 应用开发

2.1 使用jdbc进行应用开发

使用普通用户通过jdbc连接数据库做业务开发,jdbc参数配置代码如下:

OceanBase从离线手动部署到应用开发-37

2.2  使用FlinkCDC连接OB进行大数据实时数仓开发

以Kafka做数据源:

OceanBase从离线手动部署到应用开发-38

以Oceanbase做数据源做数仓第二层加工:

OceanBase从离线手动部署到应用开发-39

以OceanBase为数据写入的目的地:

OceanBase从离线手动部署到应用开发-40

数据加工并实时写入OceanBase数据库:

OceanBase从离线手动部署到应用开发-41

抽取代码后,Flink实时ETL代码如下:

OceanBase从离线手动部署到应用开发-42

代码配置化、脚本化后,支持从Kafka、MySQL、Oracle、OceanBase、MongoDB、Postgres、SQLserver、等数据源实时同步数据并加工后写入OceanBase中,OceanBase作为数据中台核心/实时数仓的雏形初步完成。

欢迎持续关注 OceanBase 技术社区,我们将不断输出技术干货内容,与千万技术人共同成长!!!

搜索🔍钉钉群(33254054),或扫描下方二维码,还可进入 OceanBase 技术答疑群,有任何技术问题在里面都能找到答案哦~

OceanBase从离线手动部署到应用开发-43

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论