场景:做为一名合格的码农,我们除了在公司搬砖,我们还要把公司笔记本背回家继续搬砖。这两个场景的网络环境是不一样的,如果有需要设置固定IP等硬编码行为时会让我们很为难。这里介绍双网卡方案,在笔记本上部署doris的开发环境,支持在多个网络环境切换时,不需要修改doris的配置,场景丝滑过度。这样在公司和在家或者外出时,不需要频繁修改配置。
概要
1、网络架构
2、配置虚拟机网卡
3、安装部署FE
4、安装部署BE
5、在FE中添加BE
6、开始使用doris
7、参考
一、网络架构
笔记本是MacBook Pro,使用虚拟机virtualBox(如果使用vmware/hyperV类似),虚拟机中安装CentOS7。
以下是整体示意图:
其中需要在FE中配置连接到三个BE(红线所示)。
这里有两个考虑点:
1、虚拟机需要能够访问外部网络;
2、因为需要在多个环境切换,所以红线网络需要配置静态地址;
最终方案设置成双网卡也是基于这两点,vmware和hyperV可能配置有所出入,但是根据这两点需求进行配置就行。
在virtualBox中:
1、需要访问外部网络,而且需要在多个网络环境切换后,不需要重新配置网卡信息,所以网卡1配置成NAT(没有使用桥接模式,桥接模式需要绑定到具体网卡,如果有切换网卡的场景则不大适合,这里NAT足够使用,NAT和桥接的区别可自行搜索一下);
2、需要静态地址,所以配置网卡2为HostOnly网络;
最终拓扑结构:
- 192.168.56.0/24为hostOnly网络,供FE、BE、笔记本这三者进行通信。
- 公司网络、家庭网络为外部网络环境,FE/BE通过NAT连接到此环境从而可以访问公网服务。
接下来进行手把手部署教程。
二、配置虚拟机网卡
创建四个虚拟机(1FE+3BE),进行同样的网卡配置。
2.1 添加HostOnly网络
通过菜单:主机 - 主机网络管理器,或者通过界面:全局工具 - 主机网络管理器,打开网络管理界面:
配置网关地址和网络掩码如图,也可以配置自己喜欢的地址。
这样我们就添加了一个HostOnly网络 vboxnet0。
2.2 配置双网卡
添加并启用两个网卡,一个设置成NAT,一个设置成HostOnly。
NAT网卡:
HostOnly网卡:
2.3 配置HostOnly静态IP
进入虚拟机进行网卡设置。
2.3.1 配置NAT:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
2.3.2 配置HostOnly网卡:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
2.3.3 BE的网卡配置:
双网卡的这个配置,在FE和BE中都是一样的,在设置HostOnly网卡IP时,设置成对应的IP:
BE1: IPADDR=192.168.56.103
BE2: IPADDR=192.168.56.104
BE3: IPADDR=192.168.56.105
至此,四个虚拟机的硬件配置已经完成,接下来就是部署doris。
三、安装部署FE
3.1 配置系统环境
# 1、设置系统最大打开文件句柄数
> vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
# 2、关闭交换分区
# Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区
> vi /etc/fstab
#/dev/mapper/centos-swap swap swap default 0 0
> vi /etc/sysctl.conf
vm.swappiness=0
> swapoff -a
> swapon -v
# 3、关闭selinux
> vi /etc/selinux/config
SELINUX=disabled
# 4、关闭防火墙(开发环境可配,生产环境看情况)
> systemctl stop firewalld
> systemctl disable firewalld
# 5、替换yum源到国内,加速yum安装应用速度
> mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
> wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
> yum clean all
> yum makecache
# 6、安装网络工具,查看ip等信息
> yum install net-tools
> ip a
# 7、查看内存等资源
> free -m
> free -h
3.2 部署FE
3.2.1 配置java环境
# 1、安装JDK
fe> yum install java-1.8.0-openjdk-x86_64 java-1.8.0-openjdk-devel.x86_64
# 2、配置JAVA环境变量
fe> vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 3、使JAVA环境变量生效
fe> source /etc/profile
3.2.2 下载解压FE
fe> wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-1.2.4.1-bin-x86_64.tar.gz
fe> tar xvf apache-doris-fe-1.2.4.1-bin-x86_64.tar.gz
fe> mkdir /apps
fe> mkdir /apps/doris
fe> mv apache-doris-fe-1.2.4.1-bin-x86_64 /apps/doris/fe
3.2.3 配置FE
fe> vi /apps/doris/fe/conf/fe.conf
priority_networks = 192.168.56.0/24
3.2.4 运行FE
fe> sh /apps/doris/fe/bin/start_fe.sh --daemon
3.3 浏览FE管理界面
在mac里浏览 http://192.168.56.101:8030/login,输入账号admin,默认密码为空,点击登录:
四、安装部署BE
4.1 配置系统环境,跟FE一样
# 1、设置系统最大打开文件句柄数
> vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
# 2、关闭交换分区
# Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区
> vi /etc/fstab
#/dev/mapper/centos-swap swap swap default 0 0
> vi /etc/sysctl.conf
vm.swappiness=0
> swapoff -a
> swapon -v
# 3、关闭selinux
> vi /etc/selinux/config
SELINUX=disabled
# 4、关闭防火墙(开发环境可配,生产环境看情况)
> systemctl stop firewalld
> systemctl disable firewalld
# 5、替换yum源到国内,加速yum安装应用速度
> mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
> wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
> yum clean all
> yum makecache
# 6、安装网络工具,查看ip等信息
> yum install net-tools
> ip a
# 7、查看内存等资源
> free -m
> free -h
4.2 部署BE
4.2.1 配置java环境
# 1、安装JDK
> yum install java-1.8.0-openjdk-x86_64 java-1.8.0-openjdk-devel.x86_64
# 2、配置JAVA环境变量
> vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 3、使JAVA环境变量生效
> source /etc/profile
4.2.2 下载解压BE
be> wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-be-1.2.4.1-bin-x86_64.tar.xz
be> wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-dependencies-1.2.4.1-bin-x86_64.tar.xz
be> tar xvf apache-doris-be-1.2.4.1-bin-x86_64.tar.xz
be> tar xvf apache-doris-dependencies-1.2.4.1-bin-x86_64.tar.xz
be> mkdir /apps
be> mkdir /apps/doris
be> mv apache-doris-be-1.2.4.1-bin-x86_64 /apps/doris/be
be> cp apache-doris-dependencies-1.2.4.1-bin-x86_64/java-udf-jar-with-dependencies.jar /apps/doris/be/lib/
# 连接mysql数据源需要
be> cp mysql-connector-java-8.0.30.jar /apps/doris/be/jdbc_drives/
4.2.3 配置BE
be> vi /apps/doris/be/conf/be.conf
priority_networks = 192.168.56.0/24
4.2.4 BE特殊的系统配置
- max_map_count,限制一个进程可以拥有的VMA(虚拟内存区域)的数量
# 临时修改:
be> sysctl -w vm.max_map_count=2000000
# 永久修改:
be> vi /etc/sysctl.conf
vm.max_map_count=2000000
4.2.5 运行BE
be> sh /apps/doris/be/bin/start_be.sh --daemon
五、在FE中添加BE
在FE环境中安装mysql客户端:
fe> yum install mysql
然后进入通过mysql客户端进入doris配置backends:
fe> mysql -h 127.0.0.1 -P9030 -uroot
# 9050为be的心跳端口heartbeat_service_port
mysql> ALTER SYSTEM ADD BACKEND "192.168.56.103:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.56.104:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.56.105:9050";
# 查询节点状态 Alive属性true即为正常
mysql> show PROC '/backends';
添加后可以通过FE网站查看:
六、开始使用doris
fe> mysql -h 127.0.0.1 -P9030 -uroot
mysql> create database db_test;
mysql> use db_test;
mysql> create table tbl_user_sync
(
_id varchar(32) default '',
user_name varchar(32) default ''
)
duplicate key(_id)
distributed by hash(_id) buckets 10
properties("replication_num"="1");
mysql> insert into tbl_user_sync values('1','bob');
mysql> select * from tbl_user_sync;
+------+-------------+
| _id | user_name |
+------+-------------+
| 1 | bob |
+------+-------------+
注意: 这里的属性 properties("replication_num"="1") 表示数据只存储一份,默认doris保存三份,如果基于开发或者兴趣使用,创建了少于3个的BE,则需要在这里显示设置保存份数,且要小于等于BE的个数。
七、参考