暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

SQL学习者 2023-08-11
74

1 OceanBase离线部署

1.1 环境检查

1.1.1 硬件与操作系统准备





检查操作系统版本:





输出:


CentOS Linux release 7.9.2009 (Core)






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

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









 total        used        free      shared  buff/cache   available

Mem:             62           5          22           0          34          56

Swap:             7           0           7 




检查CPU:





...24-Core Processor





1.2 安装部署

1.2.1 服务器配置


hosts配置命令:





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


配置主机名称命令:





1.2.2 服务器优化


配置limits文件命令:






内容


soft  nofile 1048576

*  hard  nofile 1048576

*  soft  nproc  1048576

*  hard  nproc  1048576

*  soft  memlock unlimited

*  hard  memlock unlimited 


配置nproc文件:





内容


*  soft  nproc  1048576

*  hard  nproc  1048576 


配置sysctl文件命令:





内容


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 


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





内容


*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


重启防火墙




输出:


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 


重启服务器





1.2.3 创建用户


创建admin用户并设置密码:






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






1.2.4 数据库部署


创建相关目录:





安装OceanBase





内容:


/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


配置环境变量





配置环境变量





内容:

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





1.2.5 启动OceanBase


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








输出内容:


 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





查看端口监听情况





内容:


tcp  0  0 0.0.0.0:2881  0.0.0.0:*

tcp  0  0 0.0.0.0:2882  0.0.0.0:* 





1.2.6 初始化OceanBase


初始化





内容:


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  |

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





修改密码






1.2.7 启动OBProxy


启动OBProxy




内容:


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









1.3 租户管理

1.3.1 资源管理


系统root资源管理








1.3.2 管理用户


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





内容:


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

| Database  |

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

| information_schema  |

| dw  |

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


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



2 应用开发

2.1 使用jdbc进行应用开发

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





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

以Kafka做数据源:







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





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





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





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



1 OceanBase离线部署

1.1 环境检查

1.1.1 硬件与操作系统准备





检查操作系统版本:





输出:


CentOS Linux release 7.9.2009 (Core)






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

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









 total        used        free      shared  buff/cache   available

Mem:             62           5          22           0          34          56

Swap:             7           0           7 




检查CPU:





...24-Core Processor





1.2 安装部署

1.2.1 服务器配置


hosts配置命令:





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


配置主机名称命令:





1.2.2 服务器优化


配置limits文件命令:






内容


soft  nofile 1048576

*  hard  nofile 1048576

*  soft  nproc  1048576

*  hard  nproc  1048576

*  soft  memlock unlimited

*  hard  memlock unlimited 


配置nproc文件:





内容


*  soft  nproc  1048576

*  hard  nproc  1048576 


配置sysctl文件命令:





内容


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 


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





内容


*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


重启防火墙




输出:


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 


重启服务器





1.2.3 创建用户


创建admin用户并设置密码:






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






1.2.4 数据库部署


创建相关目录:





安装OceanBase





内容:


/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


配置环境变量





配置环境变量





内容:

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





1.2.5 启动OceanBase


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








输出内容:


 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





查看端口监听情况





内容:


tcp  0  0 0.0.0.0:2881  0.0.0.0:*

tcp  0  0 0.0.0.0:2882  0.0.0.0:* 





1.2.6 初始化OceanBase


初始化





内容:


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  |

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





修改密码






1.2.7 启动OBProxy


启动OBProxy




内容:


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









1.3 租户管理

1.3.1 资源管理


系统root资源管理








1.3.2 管理用户


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





内容:


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

| Database  |

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

| information_schema  |

| dw  |

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


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



2 应用开发

2.1 使用jdbc进行应用开发

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





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

以Kafka做数据源:







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





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





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





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



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论