数仓项目环境搭建

目录

一、安装CentOS

1.1、修改映射关系:

1.2、免密登录:

1.3、关闭防⽕墙:

1.4、修改linux的安全机制:

1.5、修改yum源:

二、安装JDK

2.1、创建文件夹:

2.2、解压安装:

2.3、配置环境变量:

2.4、刷新环境变量:

2.5、验证:

三、安装Hadoop[伪分布式]

3.1、安装hdfs:

3.2、修改配置:

3.3、安装Yarn:

四、安装MySQL8.0

4.1、删除mysql相关的内容

4.2、上传解压

4.3、安装服务

4.4、服务启动

4.5、修改密码

4.6、远程授权:

4.7、自动化安装脚本:

五、安装Hive

5.1、修改为本地模式

5.2、配置环境变量

5.3、修改配置文件

六、安装Flume、DataX和SQOOP

6.1、解压、重命名

6.2、配置环境变量

6.3、修改配置文件

6.4、拷贝mysql8.0的驱动包

七、安装DS[单机版]

7.1、上传,解压

7.2、拷贝mysql8.0的驱动包

7.3、在mysql中创建数据库

八、总结


搭建数仓项目环境是数据工程师工作的重要组成部分,它确保数据从源头到数据仓库的采集、清洗、存储、分析等环节高效稳定。以下是如何搭建一个典型数仓项目环境的详细指南:

安装所需的安装包(飞书):软件安装包

一、安装CentOS

1.1、修改映射关系:

vi /etc/hosts

1.2、免密登录:

ssh-keygen -t rsa
ssh-copy-id shucang

1.3、关闭防⽕墙:

systemctl stop firewalld
systemctl disable firewalld

1.4、修改linux的安全机制:

vi /etc/selinux/config
# 修改文件⾥⾯ SELINUX=disabled

1.5、修改yum源:

#修改阿里云的镜像文件:
1、cd /etc/yum.repos.d/
2、备份⼀下:mv CentOS-Base.repo CentOS-Base.repo.bak
3、下载阿⾥云镜像到本地:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
4、清除yum的缓存 yum clean all yum makecache
5、安装 yum install -y ntpdate yum install -y vim yum install -y net-tools

二、安装JDK

2.1、创建文件夹:

mkdir -p /opt/modules
mkdir -p /opt/installs

2.2、解压安装:

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/installs/ mv jdk1.8.0_171/ jdk

2.3、配置环境变量:

export JAVA_HOME=/opt/installs/jdk
export PATH=$PATH:$JAVA_HOME/bin

2.4、刷新环境变量:

source /etc/profile

2.5、验证:

java -version

三、安装Hadoop[伪分布式]

3.1、安装hdfs:

tar -zxvf hadoop-3.3.1.tar.gz -C /opt/installs/
mv hadoop-3.3.1/ hadoop
#环境变量:
export HADOOP_HOME=/opt/installs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#刷新环境变量 source /etc/profile
#验证: hadoop version

3.2、修改配置:

1、修改core-site.xml

<configuration>
<!-- 设置namenode节点 -->
<!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时 代默认端⼝ 9820 --> <property>
<name>fs.defaultFS</name>
<value>hdfs://shucang:9820</value>
</property>
<!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/installs/hadoop/tmp</value>
</property>
</configuration>

2、修改hdfs-site.xml

<configuration>
<property>
<!--备份数量-->
<name>dfs.replication</name>
<value>1</value>
</property>
<!--secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>shucang:9868</value>
</property>
<!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
<property>
<name>dfs.namenode.http-address</name>
<value>shucang:9870</value>
</property>
</configuration>

3、修改hadoop-env.sh

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export JAVA_HOME=/opt/installs/jdk

4、修改workers 文件

shucang

5、格式化namenode

hdfs namenode -format

3.3、安装Yarn:

1、修改mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
#指定mapreduce运行平台为yarn

2、检查hadoop-env.sh

export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

3、配置yarn-site.xml

为了防止报AppMaster的错误,需要如下配置:

<property>
<name>yarn.application.classpath</name>
<value>/opt/installs/hadoop/etc/hadoop:/opt/installs/hadoop/share/hadoop/common/lib/*:/opt/installs/hadoop/share/hadoop/common/*:/opt/installs/hadoop/share/hadoop/hdfs:/opt/installs/hadoop/share/hadoop/hdfs/lib/*:/opt/installs/hadoop/share/hadoop/hdfs/*:/opt/installs/hadoop/share/hadoop/mapreduce/*:/opt/installs/hadoop/share/hadoop/yarn:/opt/installs/hadoop/share/hadoop/yarn/lib/*:/opt/installs/hadoop/share/hadoop/yarn/*</value>
</property>

获取classpath的值:

hadoop classpath

4、启动和停止yarn平台:

#启动
start-yarn.sh
#停止
stop-yarn.sh

5、web访问一下:

http://shucang:8088

四、安装MySQL8.0

4.1、删除mysql相关的内容

rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

4.2、上传解压

mkdir /opt/modules/mysql_rpm
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C /opt/modules/mysql_rpm

4.3、安装服务

rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
yum install -y net-tools
yum install -y perl
yum install libaio
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm

4.4、服务启动

systemctl start mysqld #这个是启动
mysql systemctl status mysqld #查看mysql的状态 
systemctl stop mysqld #关闭服务

4.5、修改密码

#查看默认密码
grep password /var/log/mysqld.log

进入mysql:

mysql -uroot -p 敲回车 粘贴密码即可

修改密码:

alter user root@localhost identified by 'Y1u2n3h4e5!';

修改密码校验规则:

show variables like '%validate_password%'; # 查看密码策略
set global validate_password.policy=LOW; # 修改密码策略等级为LOW
set global validate_password.length=4; # 密码的最小长度 set global validate_password.mixed_case_count=0; # 设置密码中至少要包含0个大写字母和小写字母
set global validate_password.number_count=0; # 设置密码中至少要包含0个数字
set global validate_password.special_char_count=0; # 设置密码中至少要包含0个特殊字符

再次修改密码:

alter user root@localhost identified by '123456';

4.6、远程授权:

create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

4.7、自动化安装脚本:

#!/bin/bash
####################################
# 1.建立临时文件夹
# 2.tar文件 ,与此脚本放同一目录
# 3.删除centos7自带的MySQL
# 4.按顺序安装MySQL相关的依赖包
# 5.修改MySQL的密码 -- 默认使用密码为123456
# 6.配置MySQL可以被远程访问(实际开发中也是,有些机器需要有访问这个机器MySQL的权限)
# 7.开放3306端口,提供远程访问 # $? => 代表上一个命令执行后的退出状态: 0->成功,1->失败 # example => sh mysql8.0.26.sh 
####################################
# echo -e "\e[1;32m****\e[0m" # 安装vim yum install -y vim
#第一步、创建一个临时的文件夹
mkdir mysql_rpm
#第二步、把新上传的MySQL的安装包移动到mysql_rpm下
mv mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar mysql_rpm
#进入到mysql_rpm目录下,开始执行下面的操作
cd mysql_rpm
#解压MySQL的安装包,在当前目录下
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
#查看集群上现有的MySQL,需要删除掉
mysql_old=`rpm -qa | grep mariadb` echo -e "\e[1;32m当前centos中MySQL版本是: ${mysql_old}\e[0m"
#删除自带的MySQL
rpm -e --nodeps ${mysql_old}
#验证旧版本的MySQL是否被删除掉
mysql_validate=`rpm -qa | grep mariadb` echo -e "\e[1;32m验证旧版的MySQL是否被删除干净: ${mysql_validate}\e[0m"
#开始安装MySQL,注意:这些包安装是有顺序的
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
#判断安装的过程是否成功
if [ $? == 0 ];then
echo -e "\e[1;32m安装------mysql-community-common-8.0.26-1.el7.x86_64.rpm -- 第1个包------- 成功\e[0m"
else
echo -e "\e[1;31m安装------mysql-community-common-8.0.26-1.el7.x86_64.rpm -- 第1个包------- 失败\e[0m"
fi
#第二个包
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
if [ $? == 0 ];then
echo -e "\e[1;32m安装------mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm -- 第2个包------- 成功\e[0m"
else
echo -e "\e[1;31m安装------mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm -- 第2个包------- 失败\e[0m"
fi
#第三个包:安装rpm -ivh numactl* 这是安装以前缀numactl开始的所有安装包
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
if [ $? == 0 ];then
echo -e "\e[1;32m安装------mysql-community-libs-8.0.26-1.el7.x86_64.rpm -- 第3个包------- 成功\e[0m"
else
echo -e "\e[1;31m安装------mysql-community-libs-8.0.26-1.el7.x86_64.rpm -- 第3个包------- 失败\e[0m"
fi
#第四个包:安装mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
if [ $? == 0 ];then
echo -e "\e[1;32m安装------mysql-community-client-8.0.26-1.el7.x86_64.rpm 第4个包------- 成功\e[0m"
else
echo -e "\e[1;31m安装------mysql-community-client-8.0.26-1.el7.x86_64.rpm 第4个包------- 失败\e[0m"
fi
yum install -y net-tools
yum install -y perl
yum install libaio
#第五个包:安装 mysql-community-server-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
if [ $? == 0 ];then
echo -e "\e[1;32m安装------mysql-community-server-8.0.26-1.el7.x86_64.rpm -- 第5个包------- 成功\e[0m"
else
echo -e "\e[1;31m安装------mysql-community-server-8.0.26-1.el7.x86_64.rpm -- 第5个包------- 失败\e[0m"
fi
#启动MySQL
# service mysqld start
systemctl start mysqld
#验证是否启动成功可以查看MySQL的启动状态
service mysqld status >start.log
#查看MySQL的初始密码,把携带密码信息加载到下面这个文件中
grep 'temporary password' /var/log/mysqld.log >result.txt
#读取文件中的密码,用于登录MySQL
password_mysql=`cat result.txt | grep 'localhost' | awk -F ': ' '{print $2}'`
echo -e "\e[1;32m查看MySQL的原始密码是啥 \e[0m --> \e[1;31m ${password_mysql}\e[0m"
#连接MySQL的几个参数
hostname="localhost"
username="root"
port="3306"
#进入MySQL的交互模式,修改相应的参数,设置简单的密码为123456,为了以后自己用方便,实际上生产的密码都比较复杂一些
#mysql -h${hostname} -u${username} -P${port} -p${password_mysql} <<EOF
mysql -u${username} -p${password_mysql} --connect-expired-password <<EOF
set global validate_password.policy=LOW;
set global validate_password.length=4;
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.special_char_count=0;
alter user root@localhost identified by '123456';
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
quit EOF
# 防火墙开启状态下,开放3306端口
# openPort(){ # echo -e "\e[1;32m开放3306端口"
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# echo -e "\e[1;32m重启firewall..."
# firewall-cmd --reload # } # openPort

五、安装Hive

5.1、修改为本地模式

tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/installs/
mv apache-hive-3.1.2-bin/ hive

5.2、配置环境变量

export HIVE_HOME=/opt/installs/hive
export PATH=$PATH:$HIVE_HOME/bin
#刷新环境变量
source /etc/profile

5.3、修改配置文件

mv hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml

hive-env.sh

export HIVE_CONF_DIR=/opt/installs/hive/conf
export JAVA_HOME=/opt/installs/jdk
export HADOOP_HOME=/opt/installs/hadoop
export HIVE_AUX_JARS_PATH=/opt/installs/hive/lib
export HADOOP_HEAPSIZE=4096

hive-site.xml

将以前的设置全部删除

<!--配置MySql的连接字符串-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description>
</property>
<!--配置MySql的连接驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!--配置登录MySql的用户-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<!--配置登录MySql的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<!-- 以下两个不需要修改,只需要了解即可 -->
<!-- 该参数主要指定Hive的数据存储目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- 该参数主要指定Hive的临时文件存储目录 -->
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
<!--Hive工作的本地临时存储空间--> 
<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/installs/hive/iotmp/root</value>
</property>
<!--如果启用了日志功能,则存储操作日志的顶级目录-->
<property>
<name>hive.server2.logging.operation.log.location</name> <value>/opt/installs/hive/iotmp/root/operation_logs</value>
</property>
<!--Hive运行时结构化日志文件的位置-->
<property> <name>hive.querylog.location</name> <value>/opt/installs/hive/iotmp/root</value>
</property>
<!--用于在远程文件系统中添加资源的临时本地目录-->
<property>
<name>hive.downloaded.resources.dir</name> <value>/opt/installs/hive/iotmp/${Hive.session.id}_resources</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>shucang</value>
<description>Bind host on which to run the HiveServer2 Thrift service.</description> </property>
<property>
<name>hive.server2.thrift.port</name> <value>10000</value>
<description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://shucang:9083</value>
</property>

5、创建各种目录和文件夹

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive/
hdfs dfs -chmod 750 /user/hive/warehouse
hdfs dfs -chmod 777 /tmp/hive cd /opt/installs/hive/
mkdir iotmp chmod 777 iotmp

拷贝驱动包到lib

core-site.xml[hadoop]

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 不开启权限检查 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

格式化元数据

schematool --initSchema -dbType mysql

启用元数据 metastore

-- 拷贝一个脚本
hive-service-manager.sh
cd /usr/local/bin chmod 777
hive-server-manager.sh

hive-service-manager.sh

#!/bin/bash
# hive 服务控制脚本,可以控制 Hive 的 metastore 和 hiveserver2 服务的启停
# 使用方式: hive-server-manager.sh [start|stop|status] [metastore|hiveserver2]
# - start : 一键开启metastore和hiveserver2服务,也可以指定服务开启
# - stop : 一键停止metastore和hiveserver2服务,也可以指定服务停止
# - status : 一键查看metastore和hiveserver2服务,也可以指定服务查看
help_info() {
echo "+--------------------------------------------------------------------------------+"
echo "| 本脚本可以一键控制 Hive 的 metastore 和 hiveserver2 服务 |"
echo "| 使用方式: hive-server-manager.sh [start|stop|status] [metastore|hiveserver2] |" echo "+--------------------------------------------------------------------------------+" 
echo "| 第一个参数用来指定操作命令,可以选择 开始(start)、停止(stop)、状态查看(status) |"
echo "| 第二个参数用来指定操作的服务,可以选择 metastore、hiveserver2,默认为全部 |"
echo "+--------------------------------------------------------------------------------+" 
echo "| - start : 一键开启metastore和hiveserver2服务,也可以指定服务开启 |"
echo "| - stop : 一键停止metastore和hiveserver2服务,也可以指定服务停止 |"
echo "| - status : 一键查看metastore和hiveserver2服务,也可以指定服务查看 |"
echo "+--------------------------------------------------------------------------------+" exit -1
}
# 获取操作命令
op=$1
# 获取操作的服务
server=$2
# 检查参数是否正确
if [ ! $op ]; then
help_info
elif [ $op != "start" -a $op != "stop" -a $op != "status" ]; then
help_info
fi
# 检查进程状态
metastore_pid=`ps aux | grep org.apache.hadoop.hive.metastore.HiveMetaStore | grep -v grep | awk '{print $2}'`
hiveserver2_pid=`ps aux | grep proc_hiveserver2 | grep -v grep | awk '{print $2}'`
# 检查日志文件夹的存在情况,如果不存在则创建这个文件夹 log_dir=/var/log/my_hive_log
if [ ! -e $log_dir ]; then
mkdir -p $log_dir
fi
# 开启服务
start_metastore() {
# 检查是否开启,如果未开启,则开启 metastore 服务
if [ $metastore_pid ]; then
echo "metastore 服务已经开启,进程号: $metastore_pid,已跳过"
else
nohup hive --service metastore >> $log_dir/metastore.log 2>&1 & echo "metastore 服务已经开启,日志输出在 $log_dir/metastore.log"
fi
}
start_hiveserver2() {
# 检查是否开启,如果未开启,则开启 hiveserver2 服务
if [ $hiveserver2_pid ]; then
echo "hiveserver2 服务已经开启,进程号: $hiveserver2_pid,已跳过"
else
nohup hive --service hiveserver2 >> $log_dir/hiveserver2.log 2>&1 & echo "hiveserver2 服务已经开启,日志输出在 $log_dir/hiveserver2.log"
fi
}
# 停止服务
stop_metastore() {
if [ $metastore_pid ]; then
kill -9 $metastore_pid fi echo "metastore 服务已停止"
}
stop_hiveserver2() {
if [ $hiveserver2_pid ]; then
kill -9 $hiveserver2_pid
fi
echo "hiveserver2 服务已停止"
}
# 查询服务
status_metastore() {
if [ $metastore_pid ]; then
echo "metastore 服务已开启,进程号: $metastore_pid"
else
echo "metastore 服务未开启"
fi
}
status_hiveserver2() {
if [ $hiveserver2_pid ]; then echo "hiveserver2 服务已开启,进程号: $hiveserver2_pid"
else
echo "hiveserver2 服务未开启"
fi
}
# 控制操作
if [ ! $server ]; then
${op}_metastore ${op}_hiveserver2
elif [ $server == "metastore" ]; then
${op}_metastore
elif [ $server == "hiveserver2" ]; then
${op}_hiveserver2
else 
echo "服务选择错误"
help_info
fi

设置远程连接

hive-server-manager.sh start

六、安装Flume、DataX和SQOOP

6.1、解压、重命名

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/installs/
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop#也可以使用如下命令:--strip-components 1 解压后获取一层里面的内容
mkdir /opt/installs/sqoop && tar -xzvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/installs/sqoop --strip-components 1

6.2、配置环境变量

export SQOOP_HOME=/opt/installs/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
#刷新环境变量
source /etc/profile

6.3、修改配置文件

cp sqoop-env-template.sh sqoop-env.shvi sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/installs/hadoop
export HADOOP_MAPRED_HOME=/opt/installs/hadoop
export HIVE_HOME=/opt/installs/hive

6.4、拷贝mysql8.0的驱动包

cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar /opt/installs/sqoop/lib/

七、安装DS[单机版]

7.1、上传,解压

tar -zxvf  apache-dolphinscheduler-3.1.8-bin.tar.gz  -C /opt/installs/
mv apache-dolphinscheduler-3.1.8-bin dolphinscheduler

7.2、拷贝mysql8.0的驱动包

cd /opt/installs/dolphinschedulercp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./api-server/libs/
cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./alert-server/libs/
cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./master-server/libs/
cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./worker-server/libs/
cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./tools/libs/
cp /opt/installs/hive/lib/mysql-connector-java-8.0.26.jar ./standalone-server/libs/standalone-server/

7.3、在mysql中创建数据库

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

在Linux黑窗口运行:

export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=dolphinscheduler
export SPRING_DATASOURCE_URL="jdbc:mysql://shucang:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=123456

初始化数据库:

bash tools/bin/upgrade-schema.sh

修改配置文件:/opt/installs/dolphinscheduler/standalone-server/conf

修改 DolphinScheduler 的配置
在 DolphinScheduler 的安装目录下找到 conf/application.yaml 文件。
将其中关于数据库连接的部分修改为指向你的 MySQL 实例,包括用户名、密码、数据库名等信息。以下是修改后的示例:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://shucang:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: 123456

如何启动和关闭单机版:

注意: Standalone 仅建议 20 个以下工作流使用,因为其采用内存式的 H2 Database, Zookeeper Testing Server,任务过多可能导致不稳定,并且如果重启或者停止 standalone-server 会导致内存中数据库里的数据清空。 如何启动和关闭单机版:
# 启动 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
# 停止 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server
# 查看 Standalone Server 状态
bash ./bin/dolphinscheduler-daemon.sh status standalone-server

单机模式比较省内存:

访问地址:http://shucang:12345/dolphinscheduler/ui
账号和密码:  admin  dolphinscheduler123

问题:上传资源提示 存储未启用 如何开启HDFS

这个软件下面有很多的服务,将每一个服务下的common.properties中的内容全部修改一遍,最后重启服务

#修改所有组件下的common.propertiesresource.storage.type=HDFS
resource.storage.upload.base.path=/dolphinscheduler
resource.hdfs.fs.defaultFS=hdfs://shucang:9820#修改hdfs的权限:
hdfs dfs -chmod 777 /

八、总结

搭建数仓项目环境涉及多个组件和工具的安装与配置,每个步骤都至关重要。本文介绍了从JDK安装、Hadoop、Hive的搭建,到数据采集工具Flume、数据同步工具DataX以及调度工具DS的完整流程。通过这些工具的协同工作,可以实现高效稳定的数据仓库环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/428375.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOCKER 数据库管理软件自己开发--———未来之窗行业应用跨平台架构

- 数据异地容灾服务--未来之窗智慧数据服务 DATA REMOTE DISASTER RECOVERY SERVICE -CyberWin Future Docker-数据查看 CyberWin DATA Viewer 1.docker 样式 mysqli://root:密码172.17.0.2:端口/数据库 阿雪技术观 拥抱开源与共享&#xff0c;见证科技进步奇迹&#xff0c;…

mat (Eclipse Memory Analyzer Tool)使用以及详解

前言 在Java开发中&#xff0c;内存问题往往不易被发现&#xff0c;但它们可能导致应用性能下降甚至崩溃。Eclipse Memory Analyzer Tool&#xff08;MAT&#xff09;是一个强大的开源工具&#xff0c;专门用于分析Java堆转储&#xff08;heap dumps&#xff09;文件&#xff…

2024华为杯研赛E题保姆级教程思路分析

E题题目&#xff1a;高速公路应急车道紧急启用模型 今年的E题设计到图像/视频处理&#xff0c;实际上&#xff0c;E题的难度相对来说较低&#xff0c;大家不用畏惧视频的处理&#xff0c;被这个吓到。实际上&#xff0c;这个不难&#xff0c;解决了视频的处理问题&#xff0c;…

L3 逻辑回归

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 在周将使用 LogisticRegression 函数对经典的鸢尾花 (Iris) 数据集进行分类。将详细介绍逻辑回归的数学原理。 1. 逻辑回归的数学原理 逻辑回归是一种线性分…

如何短期提高品牌声量?说几个有效策略

在如今竞争激烈的市场环境中&#xff0c;品牌声量成为了衡量一个品牌市场影响力的关键指标。一个强大的品牌声量不仅可以增加品牌的可见度&#xff0c;还能有效提升品牌的市场竞争力。但是&#xff0c;如何有效提升品牌声量&#xff0c;成为很多企业面临的挑战。首先我们要明确…

R语言机器学习算法实战系列(二) SVM算法(Support Vector Machine)

文章目录 介绍原理应用方向下载数据加载R包导入数据数据预处理数据描述数据切割标准化数据设置参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模型总结系统信息介绍 支持向量机(Support Vector Machine,简称SVM)是一种…

Django_Vue3_ElementUI_Release_004_使用nginx部署

1. nginx安装配置 1.1 下载nginx Download nginx 1.2 测试一下 1.3 进入nginx用命令操作 2. 部署 2.1 前端部署 2.1.1 修改nginx监听配置 …conf/nginx.conf http {... # 这里不进行修改server {listen 8010; # 监听 80 端口server_name 192.168.10.24; # 输入服务器 ip…

Matlab simulink建模与仿真 第十八章(Stateflow状态机)

参考视频&#xff1a;Simulink/stateflow的入门培训_哔哩哔哩_bilibili 一、概述 Stateflow是集成于Simulink中的图形化设计与开发工具&#xff0c;主要用于针对控制系统中的复杂控制逻辑进行建模与仿真&#xff0c;或者说&#xff0c;Stateflow适用于针对事件响应系统进行建模…

深度学习:(五)初识神经网络

&#xff08;一&#xff09;神经网络的层数 除去输入层&#xff0c;但包括输出层&#xff0c;每一层都有自己的参数。 输入层称为第零层。 &#xff08;二&#xff09;最简单的神经网络&#xff08;逻辑回归&#xff09; 下图中的小圆圈&#xff0c;代表了一种运算。且一个小…

基于深度学习的花卉智能分类识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 传统的花卉分类方法通常依赖于专家的知识和经验&#xff0c;这种方法不仅耗时耗力&#xff0c;而且容易受到主观因素的影响。本系统利用 TensorFlow、Keras 等深度学习框架构建卷积神经网络&#…

【第十三章:Sentosa_DSML社区版-机器学习聚类】

目录 【第十三章&#xff1a;Sentosa_DSML社区版-机器学习聚类】 13.1 KMeans聚类 13.2 二分KMeans聚类 13.3 高斯混合聚类 13.4 模糊C均值聚类 13.5 Canopy聚类 13.6 Canopy-KMeans聚类 13.7 文档主题生成模型聚类 13.8 谱聚类 【第十三章&#xff1a;Sentosa_DSML社…

环境搭建2(游戏逆向)

#include<iostream> #include<windows.h> #include<tchar.h> #include<stdio.h> #pragma warning(disable:4996) //exe应用程序 VOID PrintUI(CONST CHAR* ExeName, CONST CHAR* UIName, CONST CHAR* color, SHORT X坐标, SHORT y坐标, WORD UIwide, W…

硬件工程师笔试面试——开关

目录 11、开关 11.1 基础 开关原理图 开关实物图 11.1.1 概念 11.1.2 常见的开关类型及其应用 11.2 相关问题 11.2.1 开关的工作原理是什么? 11.2.2 在设计一个电子系统时,如何选择最适合的开关类型? 11.2.3 不同类型的开关在实际应用中有哪些优势和局限性? 11.…

AI+教育|拥抱AI智能科技,让课堂更生动高效

AI在教育领域的应用正逐渐成为现实&#xff0c;提供互动性强的学习体验&#xff0c;正在改变传统教育模式。AI不仅改变了传统的教学模式&#xff0c;还为教育提供了更多的可能性和解决方案。从个性化学习体验到自动化管理任务&#xff0c;AI正在全方位提升教育质量和效率。随着…

使用Renesas R7FA8D1BH (Cortex®-M85)实现多功能UI

目录 概述 1 系统框架介绍 1.1 模块功能介绍 1.2 UI页面功能 2 软件框架结构实现 2.1 软件框架图 2.1.1 应用层API 2.1.2 硬件驱动层 2.1.3 MCU底层驱动 2.2 软件流程图 4 软件功能实现 4.1 状态机功能核心代码 4.2 页面功能函数 4.3 源代码文件 5 功能测试 5.1…

基于多域名,通过云运营商弹性负载,Nginx配置等基于的多租户系统部署

已经开发好久的系统&#xff0c;因为业务上没有需求&#xff0c;没有做上线部署&#xff0c;此系统为多租户系统&#xff0c;原来设计是通过租户码参数来识别的&#xff0c;每个租户访问&#xff0c;需要传自己的码过来&#xff0c;才能确定是哪个租户登录系统&#xff0c; 今…

nacos和eureka的区别详细讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Nacos 和 Eureka 是两种服务注册与发现的组件&#xff0c;它们在微服务架构中扮演重要角色。两者虽然都是为了解决服务发现的问题&#xff0c;但在功能特性、架构、设计理念等方面有很多不同。以下是详细的…

C++——map和set的使用以及map系列

目录 map和set的使用 1. 序列式容器和关联式容器 2. set系列的使⽤ 2.1 set和multiset参考⽂档 2.2 set类的介绍 2.3 set的构造和迭代器 2.4 set的增删查 set的增删查关注以下⼏个接⼝即可&#xff1a; 2.6 find和erase使⽤样例&#xff1a; lower_bound(); upper_bo…

如何选择OS--Linux不同Distribution的选用

写在前言&#xff1a; 刚写了Windows PC的不同editions的选用&#xff0c;趁热&#xff0c;把Linux不同的Distribution选用也介绍下&#xff0c;希望童鞋们可以了解-->理解-->深入了解-->深入理解--...以致于能掌握特定版本的Linux的使用甚者精通。……^.^…… so&a…

项目文件配置

1. 参数配置化 1.1 问题分析 1.2 问题解决 Value 注解通常用于外部配置的属性注入&#xff0c;具体用法为&#xff1a;Value("${配置文件中的key}") 2. yml配置文件 2.1 SpringBoot提供了多种属性配置方式 2.2 常见配置文件格式对比 2.3 yml 基本语法 大小写敏…