Doris 编译安装(完整版)

Posted 羲凡丞相

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doris 编译安装(完整版)相关的知识,希望对你有一定的参考价值。

@羲凡——只为了更好的活着

Doris 编译安装(完整版)

前期准备

安装java8、mysql、docker

安装java8、mysql 这个基本操作,晚上也有很多例子,我就不赘述了。
安装docker,这有两个博客拿走不谢(Centos7Ubuntu)

集群规划

可能有小白会问,为啥只有 FE-Follower ,却没有FE-Leader?因为Leader是从Follower中选举出来的,如果自由一个Follower ,那么它就呗选举为Leader
hostnameFE-FollowerFE-ObserverBEmysql
10.218.223.96
10.218.223.97
10.218.223.98

一、编译

在 10.218.223.96 上操作,我用的是root用户,你们没有可以用有sudo权限的用户名

1.拉取镜像
docker pull apachedoris/doris-dev:build-env-1.2
2.运行镜像,建议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库
# docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/incubator-doris-DORIS-x.x.x-release/:/root/incubator-doris-DORIS-x.x.x-release/ apachedoris/doris-dev:build-env
  docker run -it -v /opt/modules/complie-doris/.m2:/root/.m2 -v /opt/modules/complie-doris/incubator-doris-DORIS-0.13.0-release/:/root/incubator-doris-DORIS-0.13.0-release/ apachedoris/doris-dev:build-env-1.2
3.下载源码,执行完上面的命令你就已经在容器里了
cd incubator-doris-DORIS-0.13.0-release
git clone https://github.com/apache/incubator-doris.git
4.编译——fe和be
cd /root/incubator-doris-DORIS-0.13.0-release/incubator-doris
sh build.sh
编译完成后如下图,产出文件在 output/ 目录中

5.编译——broker
cd /root/incubator-doris-DORIS-0.13.0-release/incubator-doris/fs_brokers/apache_hdfs_broker/
sh build.sh
编译完成后如下图,产出文件在 output/ 目录中

二、安装FE-Follower

将源码编译生成的 output 下的 fe 文件夹拷贝到 10.218.223.96 指定部署路径 /opt/doris 下

1.配置文件(priority_networks 的ip要加上网关,不知道自己的网关,用 ip a 查看 )
cd /opt/doris/fe
mkdir /opt/doris/fe/doris-meta ####路径必须、必须、必须提前创建好
vim conf/fe.conf
###############添加下面两列信息###############
####################开始####################
meta_dir = /opt/doris/fe/doris-meta
priority_networks = 10.218.223.96/22
####################结束####################
2.启动,日志默认存放在 fe/log/ 目录下,成功后有守护进程 PaloFe
cd /opt/doris/fe
sh bin/start_fe.sh --daemon  

三、安装BE

将源码编译生成的 output 下的 be 文件夹拷贝到 三台机器 指定部署路径 /opt/doris 下

scp -r output/be/ 10.218.223.96:/opt/doris/
scp -r output/be/ 10.218.223.97:/opt/doris/
scp -r output/be/ 10.218.223.98:/opt/doris/
1.配置文件(每台机器priority_networks写自己的地址,ip要加上网关,不知道自己的网关,用 ip a 查看 )
cd /opt/doris/be
mkdir -p /opt/doris/be/storage ####路径必须、必须、必须提前创建好
vim conf/be.conf
###############添加下面两列信息###############
####################开始####################
storage_root_path = /opt/doris/be/storage 
priority_networks = 10.218.223.96/22 
####################结束####################
2. FE 中添加所有 BE 节点
host 为 FE 所在节点 ip;port 为 fe/conf/fe.conf 中的 query_port;默认使用 root 账户,无密码登录。进入fe,如果端口没改,默认是9030
# mysql -h host -P port -uroot
mysql -h 10.218.223.96 -P 9030 -uroot 
host 为 BE 所在节点 ip;port 为 be/conf/be.conf 中的 heartbeat_service_port
# ALTER SYSTEM ADD BACKEND "host:port";
ALTER SYSTEM ADD BACKEND "10.218.223.96:9050" ;
ALTER SYSTEM ADD BACKEND "10.218.223.97:9050" ;
ALTER SYSTEM ADD BACKEND "10.218.223.98:9050" ;
3.启动(三台都操作),日志默认存放在 be/log/ 目录下
cd /opt/doris/be
sh bin/start_be.sh --daemon 
4. 查看be状态(isAlive 列应为 true)
mysql -h 10.218.223.96 -P 9030 -uroot 
SHOW PROC '/backends';

四、安装FS_Broker(三台都装)

将源码编译生成的 output 下的 apache_hdfs_broker文件夹拷贝到 三台机器 指定部署路径 /opt/doris 下

scp -r output/apache_hdfs_broker/ 10.218.223.96:/opt/doris/
scp -r output/apache_hdfs_broker/ 10.218.223.97:/opt/doris/
scp -r output/apache_hdfs_broker/ 10.218.223.98:/opt/doris/
1. 删除原来的 hdfs-site.xml 将自己hadoop的core-site.xml和hdfs-site.xml 放到 /opt/doris/apache_hdfs_broker/conf 目录下
rm -rf conf/hdfs-site.xml
cp /etc/hadoop/conf.cloudera.hdfs/hdfs-site.xml conf/
2.启动
sh bin/start_broker.sh --daemon
3.添加Broker
host 为 FE 所在节点 ip;port 为 fe/conf/fe.conf 中的 query_port;默认使用 root 账户,无密码登录。进入fe,如果端口没改,默认是9030
# mysql -h host -P port -uroot
mysql -h 10.218.223.96 -P 9030 -uroot 
host 为 Broker 所在节点 ip;port 为 Broker 配置文件中的 broker_ipc_port
# ALTER SYSTEM ADD BROKER broker_name "host1:port1","host2:port2",...;
ALTER SYSTEM ADD BROKER broker_name "10.218.223.96:8000","10.218.223.97:8000","10.218.223.98:8000";
4. 查看Broker状态(isAlive 列应为 true)
SHOW PROC '/brokers';

五、安装FE-Observer

将源码编译生成的 output 下的 fe 文件夹拷贝到 10.218.223.97 指定部署路径 /opt/doris 下

1.配置文件(priority_networks 的ip要加上网关,不知道自己的网关,用 ip a 查看 )
cd /opt/doris/fe
mkdir /opt/doris/fe/doris-meta ####路径必须、必须、必须提前创建好
vim conf/fe.conf
###############添加下面两列信息###############
####################开始####################
meta_dir = /opt/doris/fe/doris-meta
priority_networks = 10.218.223.97/22
####################结束####################
2.启动
host 为 Leader 所在节点 ip, port 为 Leader 的配置文件 fe.conf 中的 edit_log_port。–helper 参数仅在 follower 和 observer 第一次启动时才需要
cd /opt/doris/fe
# sh bin/start_fe.sh --helper host:port --daemon
sh bin/start_fe.sh --helper 10.218.223.96:9010--daemon 
3.添加Observer
host 为 FE 所在节点 ip;port 为 fe/conf/fe.conf 中的 query_port;默认使用 root 账户,无密码登录。进入fe,如果端口没改,默认是9030
# mysql -h host -P port -uroot
mysql -h 10.218.223.96 -P 9030 -uroot 
host 为 Follower 或 Observer 所在节点 ip,port 为其配置文件 fe.conf 中的 edit_log_port
# ALTER SYSTEM ADD OBSERVER "host:port";
ALTER SYSTEM ADD OBSERVER "10.218.223.97:9010";


六、使用测试

# 测试数据
1,1,jim,2
2,1,grace,2
3,2,tom,2
4,3,bush,3
5,3,helen,3
mysql -h 10.218.223.96 -P 9030 -uroot
# 改密码
SET PASSWORD FOR 'root' = PASSWORD('123456');
# 创建数据库
CREATE DATABASE example_db;
USE example_db;
# 建表
CREATE TABLE table1
(
    siteid INT DEFAULT '10',
    citycode SMALLINT,
    username VARCHAR(32) DEFAULT '',
    pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(siteid, citycode, username)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "3");
加载数据-流式导入

# 如果数据在fe的节点上用下面的方式,注意看主要是端口的差异
curl --location-trusted -u root:123456 -H "label:table1_20201216" -H "column_separator:," -T table1_data http://10.218.223.96:8030/api/example_db/table1/_stream_load
# 如果数据在be的节点上用下面的方式,注意看主要是端口的差异
curl --location-trusted -u root:123456 -H "label:table1_20201217" -H "column_separator:," -T table1_data http://10.218.223.98:8040/api/example_db/table1/_stream_load;
加载数据-Broker导入(先登录Doris)
下面的 broker_name 要先找到先用 SHOW PROC '/brokers'查看自己的是啥,不过默认是 broker_name
## HELP BROKER LOAD;
LOAD LABEL table1_20201212
(
    DATA INFILE("hdfs://ns/tmp/table1_data")
    INTO TABLE table1
	COLUMNS TERMINATED BY ","
)
WITH BROKER broker_name 
(
    "hadoop.security.authentication"="simple",
    "username"="hdfs",
    "password"="hdfs",
    "dfs.nameservices" = "ns",
    "dfs.ha.namenodes.ns" = "namenode30, namenode55",
    "dfs.namenode.rpc-address.ns.namenode30" = "yc-nsg-h2:8020",
    "dfs.namenode.rpc-address.ns.namenode55" = "yc-nsg-h3:8020",
    "dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
)
PROPERTIES
(
    "timeout"="3600",
    "max_filter_ratio"="0.1",
	"timezone"="Asia/Shanghai"
);
查询结果

装完也测试完了,你到任何一个fe的8030界面上查看你的参数和机器情况

|
|
|

恭喜您学会了Doris的安装,离成功又进了一步,哈哈
恭喜您学会了Doris的安装,离成功又进了一步,哈哈
恭喜您学会了Doris的安装,离成功又进了一步,哈哈

====================================================================

@羲凡——只为了更好的活着

若对博客中有任何问题,欢迎留言交流

以上是关于Doris 编译安装(完整版)的主要内容,如果未能解决你的问题,请参考以下文章

搭建以太坊私链完整版

centos7 编译安装nginx1.16.0( 完整版 )

Greenplum源码编译安装(单机及集群模式)完整版

Doris实践——Doris编译安装及环境准备

MySQL源码编译MySQL8.x+升级gcc+升级cmake(亲测完整版)

MySQL源码编译MySQL8.x+升级gcc+升级cmake(亲测完整版)