Doris的单机部署与安装
Posted 那年我才十八岁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doris的单机部署与安装相关的知识,希望对你有一定的参考价值。
1.认识Doris
Doris最初是由百度大数据研发部研发,之前在百度使用时叫做Palo,在贡献给Apache社区后更名为Doris。
Doris是一个现代化的MPP(大规模并行处理)架构的分析型数据库。拥有亚秒级的查询响应,能够有效的支持实时数据分析。且易于运维,能够支撑10PB以上的超大的数据集。(MPP架构的数据库是将任务并行的分散到多个的节点上,进行协同计算,在每个节点将各自的计算任务处理完成之后,再将计算的结果进行汇总,输出最终的结果)
Doris整体架构如下所示,Doris 架构非常简单,只有两类进程
-
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
-
Backend(BE),主要负责数据存储、查询计划的执行。
2.安装部署
2.1 前期准备 环境包括mysql、jdk以及安装包
安装包直接去官网下载 下载 - Apache Doris 这3个都要下载
2.2 解压配置
下载之后上传指定目录
开始解压 这两个命令效果是一样的,区别在于 -xvf 解压的时候会输出压缩包里面的文件名
tar -xf ~/app/software/apache-doris-be-1.2.3-bin-x86_64.tar.xz
tar -xvf ~/app/software/apache-doris-fe-1.2.3-bin-x86_64.tar.xz
tar -xvf ~/app/software/apache-doris-dependencies-1.2.3-bin-x86_64.tar.xz
mv apache-doris-be-1.2.3-bin-x86_64/ doris-be
mv apache-doris-fe-1.2.3-bin-x86_64/ doris-fe
配置环境变量
#DORIS_HOME
export DORIS_HOME=/home/zr/app/module/doris
export PATH=$PATH:$DORIS_HOME/doris-be/bin:$DORIS_HOME/doris-fe/bin
使之生效
source /etc/profile
2.3 修改limits文件
打开文件limits.conf
sudo vim /etc/security/limits.conf
在文件的末尾处添加或者修改
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
打开文件sysctl.conf
sudo vim /etc/sysctl.conf
# 添加
fs.file-max = 6553560
vm.max_map_count=2000000
重启生效
reboot -h now
2.4 配置fe
vim apache-doris-fe/conf/fe.conf
meta_dir = /home/zr/app/module/apache-doris-fe/doris-meta 元数据保存位置
priority_networks = 192.168.16.101/24 # 本机ip
enable_http_server_v2 = true #启动web服务
LOG_DIR = /home/zr/app/module/apache-doris-fe/log #日志保存位置
2.5 配置be
vim doris-be/conf/be.conf
priority_networks = 192.168.16.101/24
storage_root_path = /home/zr/app/module/doris/doris-be/data_dir
2.6 配置jar包
在解压后的dependencies目录中找到java-udf-jar-with-dependencies.jar 把他拷贝到 doris-be/lib下
3.启动验证
启动fe 和 be
start_fe.sh --daemon
start_be.sh --daemon
注:切记一定要等待几秒 一定要等 我就是没等 每次查询都没有状态显示 然后就重装好几次
测试一下 如果有palofe 就是启动成功
web连接连接测试
http:// fe_ip:8030 (账号 root 密码默认为空)
mysql 连接
mysql -uroot -P9030 -h 192.168.16.101
执行 一下
show frontends\\G;
如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常
通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中
ALTER SYSTEM ADD BACKEND "192.168.16.101:9050";
查看一下
SHOW BACKENDS\\G
4.基本操作
创建数据库
create database gmall;
创建表
use gmall;
CREATE TABLE IF NOT EXISTS gmall.example_tbl
(
`user_id` LARGEINT NOT NULL COMMENT "用户id",
`date` DATE NOT NULL COMMENT "数据灌入日期时间",
`city` VARCHAR(20) COMMENT "用户所在城市",
`age` SMALLINT COMMENT "用户年龄",
`sex` TINYINT COMMENT "用户性别",
`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
`cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
`max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
导入数据 (确保数据源存在)
数据源
10000,2017-10-01,北京,20,0,2017-10-01 06:00:00,20,10,10
10000,2017-10-01,北京,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,北京,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,上海,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,广州,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,深圳,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,深圳,35,0,2017-10-03 10:20:22,11,6,6
导入命令
curl --location-trusted -u root: -T /home/zr/app/module/doris/test.csv -H "column_separator:," http://192.168.16.101:8030/api/demo/example_tbl/_stream_load
查看
更多教程 请查看官网
也支持外部连接
本文参考
https://blog.csdn.net/King_uuu/article/details/128791616
Spark笔记整理:spark单机安装部署分布式集群与HA安装部署+spark源码编译
[TOC]spark单机安装部署
1.安装scala
解压:tar -zxvf soft/scala-2.10.5.tgz -C app/
重命名:mv scala-2.10.5/ scala
配置到环境变量:
export SCALA_HOME=/home/uplooking/app/scala
export PATH=$PATH:$SCALA_HOME/bin
# 虽然spark本身自带scala,但还是建议安装
2.安装单机版spark
解压:tar -zxvf soft/spark-1.6.2-bin-hadoop2.6.tgz -C app/
重命名:mv spark-1.6.2-bin-hadoop2.6/ spark
配置到环境变量:
export SPARK_HOME=/home/uplooking/app/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
测试:
运行一个简单的spark程序
spark-shell
sc.textFile("./hello").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect.foreach(println)
完全分布式安装
修改spark-env.sh
1、cd /home/uplooking/app/spark/conf
2、cp spark-env.sh.template spark-env.sh
3、vi spark-env.sh
export JAVA_HOME=/opt/jdk
export SCALA_HOME=/home/uplooking/app/scala
export SPARK_MASTER_IP=uplooking01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/home/uplooking/app/hadoop/etc/hadoop
修改slaves配置文件
添加两行记录
uplooking02
uplooking03
部署到uplooking02和uplooking03这两台机器上(这两台机器需要提前安装scala)
scp -r /home/uplooking/app/scala [email protected]:/home/uplooking/app
scp -r /home/uplooking/app/scala [email protected]:/home/uplooking/app
----
scp -r /home/uplooking/app/spark [email protected]:/home/uplooking/app
scp -r /home/uplooking/app/spark [email protected]:/home/uplooking/app
---在uplooking02和uplooking03上加载好环境变量,需要source生效
scp /home/uplooking/.bash_profile [email protected]:/home/uplooking
scp /home/uplooking/.bash_profile [email protected]:/home/uplooking
启动
修改事宜
为了避免和hadoop中的start/stop-all.sh脚本发生冲突,将spark/sbin/start/stop-all.sh重命名
mv start-all.sh start-spark-all.sh
mv stop-all.sh stop-spark-all.sh
启动
sbin/start-spark-all.sh
会在我们配置的主节点uplooking01上启动一个进程Master
会在我们配置的从节点uplooking02上启动一个进程Worker
会在我们配置的从节点uplooking03上启动一个进程Worker
简单的验证
启动spark-shell
bin/spark-shell
scala> sc.textFile("hdfs://ns1/data/hello").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect.foreach(println)
我们发现spark非常快速的执行了这个程序,计算出我们想要的结果
一个端口:8080/4040
8080-->spark集群的访问端口,类似于hadoop中的50070和8088的综合
4040-->sparkUI的访问地址
7077-->hadoop中的9000端口
基于zookeeper的HA配置
最好在集群停止的时候来做
第一件事
注释掉spark-env.sh中两行内容
#export SPARK_MASTER_IP=uplooking01
#export SPARK_MASTER_PORT=7077
第二件事
在spark-env.sh中加一行内容
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=uplooking01:2181,uplooking02:2181,uplooking03:2181 -Dspark.deploy.zookeeper.dir=/spark"
解释
spark.deploy.recoveryMode设置成 ZOOKEEPER
spark.deploy.zookeeper.urlZooKeeper URL
spark.deploy.zookeeper.dir ZooKeeper 保存恢复状态的目录,缺省为 /spark
重启集群
在任何一台spark节点上启动start-spark-all.sh
手动在集群中其他从节点上再启动master进程:sbin/start-master.sh -->在uplooking02
通过浏览器方法 uplooking01:8080 /uplooking02:8080-->Status: STANDBY Status: ALIVE
验证HA,只需要手动停掉master上spark进程Master,等一会slave01上的进程Master状态会从STANDBY编程ALIVE
# 注意,如果在uplooking02上启动,此时uplooking02也会是master,而uplooking01则都不是,
# 因为配置文件中并没有指定master,只指定了slave
# spark-start-all.sh也包括了start-master.sh的操作,所以才会在该台机器上也启动master.
Spark源码编译
安装好maven后,并且配置好本地的spark仓库(不然编译时依赖从网上下载会很慢),
然后就可以在spark源码目录执行下面的命令:
mvn -Pyarn -Dhadoop.version=2.6.4 -Dyarn.version=2.6.4 -DskipTests clean package
编译成功后输出如下:
......
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Spark Project Parent POM ........................... SUCCESS [ 3.617 s]
[INFO] Spark Project Test Tags ............................ SUCCESS [ 17.419 s]
[INFO] Spark Project Launcher ............................. SUCCESS [ 12.102 s]
[INFO] Spark Project Networking ........................... SUCCESS [ 11.878 s]
[INFO] Spark Project Shuffle Streaming Service ............ SUCCESS [ 7.324 s]
[INFO] Spark Project Unsafe ............................... SUCCESS [ 16.326 s]
[INFO] Spark Project Core ................................. SUCCESS [04:31 min]
[INFO] Spark Project Bagel ................................ SUCCESS [ 11.671 s]
[INFO] Spark Project GraphX ............................... SUCCESS [ 55.420 s]
[INFO] Spark Project Streaming ............................ SUCCESS [02:03 min]
[INFO] Spark Project Catalyst ............................. SUCCESS [02:40 min]
[INFO] Spark Project SQL .................................. SUCCESS [03:38 min]
[INFO] Spark Project ML Library ........................... SUCCESS [03:56 min]
[INFO] Spark Project Tools ................................ SUCCESS [ 15.726 s]
[INFO] Spark Project Hive ................................. SUCCESS [02:30 min]
[INFO] Spark Project Docker Integration Tests ............. SUCCESS [ 11.961 s]
[INFO] Spark Project REPL ................................. SUCCESS [ 42.913 s]
[INFO] Spark Project YARN Shuffle Service ................. SUCCESS [ 8.391 s]
[INFO] Spark Project YARN ................................. SUCCESS [ 42.013 s]
[INFO] Spark Project Assembly ............................. SUCCESS [02:06 min]
[INFO] Spark Project External Twitter ..................... SUCCESS [ 19.155 s]
[INFO] Spark Project External Flume Sink .................. SUCCESS [ 22.164 s]
[INFO] Spark Project External Flume ....................... SUCCESS [ 26.228 s]
[INFO] Spark Project External Flume Assembly .............. SUCCESS [ 3.838 s]
[INFO] Spark Project External MQTT ........................ SUCCESS [ 33.132 s]
[INFO] Spark Project External MQTT Assembly ............... SUCCESS [ 7.937 s]
[INFO] Spark Project External ZeroMQ ...................... SUCCESS [ 17.900 s]
[INFO] Spark Project External Kafka ....................... SUCCESS [ 37.597 s]
[INFO] Spark Project Examples ............................. SUCCESS [02:39 min]
[INFO] Spark Project External Kafka Assembly .............. SUCCESS [ 10.556 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31:22 min
[INFO] Finished at: 2018-04-24T18:33:58+08:00
[INFO] Final Memory: 89M/1440M
[INFO] ------------------------------------------------------------------------
然后就可以在下面的目录中看到编译成功的文件:
[[email protected] scala-2.10]$ pwd
/home/uplooking/compile/spark-1.6.2/assembly/target/scala-2.10
[[email protected] scala-2.10]$ ls -lh
总用量 135M
-rw-rw-r-- 1 uplooking uplooking 135M 4月 24 18:28 spark-assembly-1.6.2-hadoop2.6.4.jar
在已经安装的spark的lib目录下也可以看到该文件:
[[email protected] lib]$ ls -lh
总用量 291M
-rw-r--r-- 1 uplooking uplooking 332K 6月 22 2016 datanucleus-api-jdo-3.2.6.jar
-rw-r--r-- 1 uplooking uplooking 1.9M 6月 22 2016 datanucleus-core-3.2.10.jar
-rw-r--r-- 1 uplooking uplooking 1.8M 6月 22 2016 datanucleus-rdbms-3.2.9.jar
-rw-r--r-- 1 uplooking uplooking 6.6M 6月 22 2016 spark-1.6.2-yarn-shuffle.jar
-rw-r--r-- 1 uplooking uplooking 173M 6月 22 2016 spark-assembly-1.6.2-hadoop2.6.0.jar
-rw-r--r-- 1 uplooking uplooking 108M 6月 22 2016 spark-examples-1.6.2-hadoop2.6.0.jar
以上是关于Doris的单机部署与安装的主要内容,如果未能解决你的问题,请参考以下文章