文章目录
本项目需求运行在Hadoop10单机环境:
- Spark3.2.0
- Flink1.13.6
- Hadoop3.1.4
- jdk1.8
- Sqoop1.4.6
- MySQL5.7
- Hive3.1.2
- Kafka0.11
- Flume1.9.0
- Zookeeper3.4.6
- Hbase2.4
- Redis6.2.0
- Dlink0.7.3
- Dolphinscheduler2.0.6
Windows11 开发环境:
- Idea 2020
- Moba
- DBeaver7.0.0
- Scala2.12.17
项目中所需的表,工具类,可以在前文需求中找到。
一、环境配置准备工作
1.1 虚拟机内存和CPU核心扩容
首先正常关闭虚拟机,然后调高虚拟机配置参数,我的主机配置是AMD8核,16G,参考虚拟机配置如下:
Dolphinscheduler的启动本身运行组件就很多,需要前置启动的有yarn资源管理,hdfs集群,zkServer。结合我们的项目前三个需求,还需要将Spark、Hive也启动,才能完成所以组件的调度。因此根据配置,调高参数需求。
1.2 Dolphinscheduler2.0.6单机的安装和租户配置
具体安装过程在这里不再赘述,网上参考很多。
需要注意的是,要使用调度,就要完成租户的创建,租户要在管理员中首先创建一个root租户,然后再在root租户中创建一个自己的用户guoyachao。
admin管理员>root租户>guoyachao用户。
这里解决不好会报很多运行的错误,测试shell命令打印控制台也没有资源。最后我们使用的是root租户下的guoyachao用户。
1.3 Dolphinscheduler的启动
全部启动成功的后台进程:
[root@hadoop10 sbin]# jps
2499 SecondaryNameNode
2819 ResourceManager
7875 Jps
6276 WorkerServer
6374 AlertServer
2984 NodeManager
4426 RunJar
7660 Master
7757 Worker
2063 NameNode
2224 DataNode
6322 LoggerServer
6482 PythonGatewayServer
6227 MasterServer
4277 RunJar
3926 QuorumPeerMain
6427 ApiApplicationServer
初次启动完成后,建议跑一个shell调度,打印一个hello word进行测试。
二、调度平台所需资源管理
2.1 Jar包及依赖的打包
这里需要更改为false,yarn模式,然后重新打包,因为我们加入了新的依赖。
将新的jar和依赖jar上传到linux目录。
注意:这一步可以提前准备完成调试,在运行dolphinscheduler时关闭idea等,可以节省内存,包括下一节的shell脚本的编写。
2.2 shell命令脚本的上传
进入dolphinscheduler的资源中心,将我们执行前三个需求时所用到的jar包shell上传。此jar包在上传dolphinscheduler资源中心之前应该先在本地服务器进行submit提交测试,确保可用。
这里的shell脚本编写,在前面需求中已经有过描述。
如果出现权限不够问题,请将该目录下的shell脚本权限给到777就可以了,这个目录就是dolphinscheduler的资源中心目录。
上图是用户的信息,权限是普通用户,租户是root,这样才是正常的。
三、开始器创建调度任务
在项目管理中创建项目,如上图。
在项目中创建工作流,现在就可以加入调度任务了。
第一个调度任务是将日志从本地上传到hdfs,执行put命令即可,在需求一中体现过。
第二个调度任务是Hive导入ods,需要注意资源中心,导入我们上传的shell脚本,选择正确的脚本。在命令脚本中,定义一个变量dt
,因为我们运行时,要写日期变量。
后续调度任务类似,添加资源,注意日期变量。
最后保存。
四、调度器运行测试
4.1 开始运行调度之前
运行之前需要将前面测试时的hive数据库清空。
select * from dim.area_geo
-- 维表要提前放入基础数据,前面需求有描述
-- 23-6-29 调度前,清空表
select * from ods.app_event_log
select * from tmp.event_log_washed
select count(*) from tmp.event_log_washed
select * from tmp.event_log_splited
select count(*) from tmp.event_log_splited
select * from dwd.event_log_detail
select count(*) from dwd.event_log_detail
alter table ods.app_event_log drop partition(dt='2023-06-22')
alter table tmp.event_log_washed drop partition(dt='2023-06-22')
alter table tmp.event_log_splited drop partition(dt='2023-06-22')
alter table dwd.event_log_detail drop partition(dt='2023-06-22')
4.2 上线和运行
上线。
显示绿色对钩,即为任务全部成功。
五、报错
[ERROR] 2023-06-29 19:36:00.190 org.apache.dolphinscheduler.service.log.LogClientService:[101] - roll view log error
org.apache.dolphinscheduler.remote.exceptions.RemotingTimeoutException: wait response on the channel Host{address='192.168.200.10:50051', ip='192.168.200.10', port=50051} timeout 10000
这个错误表明在执行日志滚动视图操作时出现了问题。具体错误原因是远程通信超时,程序等待位于地址 ‘192.168.200.10:50051’ 的主机的响应超过了设定的 10000 毫秒超时时间。
解决方案是把等待时间调长一点。