SuperMap WebGPA外部大数据集群部署实践

news2024/11/17 3:44:11

SuperMap WebGPA外部大数据集群部署实践

    • 特别说明:
  • 部署前准备:
    • 1.安装包说明
    • 2. 许可配置
    • 3. 机器情况
  • 部署过程说明:
    • 1.设置ip主机名映射(主机ip需要固定ip)
    • 2. 查看防火强状态,关闭防火墙
    • 3. 新建用户,设置免密登录
    • 4. 安装java、scala、hadop、spark包
    • 5.设置hadop配置文件
    • 6.三台机器创建Hadop所需的数据目录
    • 7. 启动hadop
    • 8. 配置spark参数
    • 9. 三台机器创建spark所需路径
    • 10. 启动spark集群
    • 11. iserver-GPA使用spark集群
    • 12. 其他启动常见问题

本文主要以三台机器为例,提供Linux环境下基于Hadoop+Spark部署超图分布式集群示例,您可以参考以下操作说明,搭建一个完整可用的超图分布式环境。

特别说明:

1、本文测试机器是单网卡,如果环境是双网卡,在配置过程中需要注意的地方有说明。

2、本文不包含zookeeper的安装部署,如需使用hdfs,部署zookeeper,在core-site添加如下配置即可

<property>
    <name>ha.zookeeper.quorum</name>
    <value>m1:2181,m2:2181,m3:2181</value>
</property>

3、本文hadoop和spark安装在同一个用户下,如需安装到不同的用户,需保证spark用户有hadoop目录的读写权限。

部署前准备:

1.安装包说明

安装包

版本

描述

scala-2.12.15.tgz

2.12.15

scala运行环境

jdk-8u144-linux-x64.tar.gz

1.8

java运行环境

spark-3.3.0-bin-hadoop3.tgz

3.3.4

大规模数据处理

hadoop-3.3.2.tar.gz

3.3.6

分布式文件系统,告诉运算和存储

jemalloc-compiled.tar

5.3.0

linux优化内存使用

2. 许可配置

SuperMap进行大规模数据分析时,需要每台参与运算的节点配置SuperMap许可。

配置方式:如果您拿到的是许可文件,许可文件拷贝到/opt/SuperMap/License/目录。

3. 机器情况

机器

ip地址

机器名

系统

节点

a

172.16.12.90

test-machine1

centos7

master

b

172.16.14.65

test-machine2

centos7

slave1

c

172.16.13.88

test-machine4

centos7

slave2

本文所测试机器是单网卡,如果环境是双网卡,在配置过程中需要注意的地方有说明

部署过程说明:

1.设置ip主机名映射(主机ip需要固定ip)

在root用户下修改,主机ip需要固定ip。

vim /etc/hosts
#添加如下
172.16.12.90 test-machine1
172.16.13.88 test-machine4
172.16.14.65 test-machine2

如果是双网卡,配置ip和主机名映射需要注意本机和其他机器采用内外网地址配合的方式,否则可能会出现无法访问,比如:

网卡一ip 机器名
其他网卡二ip 机器名
其他网卡二ip 机器名

2. 查看防火强状态,关闭防火墙

#查看状态
systemctl status firewalld.service
#关闭防火墙
systemctl stop firewalld.service

防火墙一般在项目应用不会关闭,可以正式项目上线前设置防火墙放行规则,需要罗列用到的端口,将这些端口放行。

3. 新建用户,设置免密登录

 3.1 新建用户supermap,切换到supermap

#新建用户,三台机器
useradd supermap 
#设置密码,三台机器
passwd supermap
#切换到supermap用户
su supermap

3.2 supermap用户设置最大进程数

ulimited -a 查看最大进程数,三台机器

若比较小,需要修改,修改方法如下:

3.3 设置免密登录,如果已经是免密登录,可忽略。

#切换用户
su supermap
#三台机器一路enter生成密钥文件
ssh-keygen -t rsa 
#三台机器,切换到~/.ssh
cd ~/.ssh
#三台机器,写入公钥
cat id_rsa.pub >> authorized_keys
#赋权
cd ../
chmod 700 .ssh
chmod 644 .ssh/authorized_keys
#test-machine1 交换公钥 
ssh-copy-id supermap@test-machine2
ssh-copy-id supermap@test-machine4
#test-machine2 交换公钥 
ssh-copy-id supermap@test-machine1
ssh-copy-id supermap@test-machine4
#test-machine4 交换公钥 
ssh-copy-id supermap@test-machine1
ssh-copy-id supermap@test-machine2
#三台机器将hosts信息写入known_hosts
ssh test-machine1
exit
ssh test-machine2
exit
ssh test-machine4
exit
#测试 test-macine1机器,没有密码可以登录
ssh test-machine2
exit
ssh test-machine4
exit
#测试 test-macine2机器,没有密码可以登录
ssh test-machine1
exit
ssh test-machine4
exit
#测试 test-macine4机器,没有密码可以登录
ssh test-machine1
exit
ssh test-machine2
exit

4. 安装java、scala、hadoop、spark包

hadoop、spark的参数配置只需要在test-machine1解压,配置完了之后往其他两台分发即可。

4.1 三台机器上传文件并解压包。上传包到目录/data/bigdata,确保文件路径有supermap用户权限。

#切换用户

su supermap
#解压hadoop包,test-machine1机器
tar -xvzf hadoop-3.3.2.tar.gz
#解压spark包,test-machine1机器
tar -xvzf spark-3.3.0-bin-hadoop3.tgz
#解压java包
tar -xvzf jdk-8u144-linux-x64.tar.gz
#解压scala包
tar -xvzf scala-2.12.15.tgz
#上传包libjemalloc解压并且有supermap权限

4.2 三台机器添加环境变量。

#切换root用户
su root
#创建环境变量sh文件
touch /etc/profile.d/supermap.sh
vim supermap.sh
#scala和java路径
export JAVA_HOME=/data/bigdata/jdk1.8.0_144
export SCALA_HOME=/data/bigdata/scala-2.12.15
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$SCALA_HOME/bin
#hadoop环境变量
export HADOOP_HOME=/data/bigdata/hadoop-3.3.2
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_DATANODE_USER=supermap
#下面这条启动datanode可能会失败,查看日志发现是JSVC_HOME导致的问题,需要去掉
#export HDFS_DATANODE_SECURE_USER=supermap
export HDFS_NAMENODE_USER=supermap
export HDFS_SECONDARYNAMENODE_USER=supermap
export YARN_NODEMANAGER_USER=supermap
export YARN_RESOURCEMANAGER_USER=supermap
#spark环境变量
export SPARK_HOME=/data/bigdata/spark-3.3.0-bin-hadoop3
#$SPARK_HOME/sbin和HADOOP_HOME/sbin有相同文件,如部署在一个用户,这个路径就不加到环境变量了,后面执行启动加上路径信息部署在不同用户下可以添加
export PATH=$PATH:$SPARK_HOME/bin
#source使之生效
source /etc/profile.d/supermap.sh

5.设置hadoop配置文件

以下操作均supermap用户下test-machine1机器上操作,远程拷贝分发到test-machine2和test-machine4,如果机器路径不一致,需要注意路径的设置。

5.1 设置hadoop-env.sh,添加JAVA_HOME。JAVA_HOME是hadoop运行需要的环境变量。

#切换到supermap用户
su supermap
cd /data/bigdata/hadoop-3.3.2/etc/hadoop
vim hadoop-env.sh
#添加如下
export JAVA_HOME=/data/bigdata/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

5.2 设置core-site.xml。core-site.xml是hadoop的核心配置文件,主要配置集群全局参数,用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录等。

/data/bigdata/hadoop-3.3.2/etc/hadoop/core-site.xml

<configuration>
               <!-- 设置Hadoop的文件系统,由URL指定 -->
        <property>
                <name>fs.default.name</name>
                <value>hdfs://test-machine1:9000/</value>
        </property>
        <!--配置hadoop存储数据目录,路径要足够大,默认/tmp/hadoop-${user.name}-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/data/bigdata/hadoop-3.3.2/tempData</value>
        </property>
</configuration>

5.3 设置hdfs-site.xml。hdfs-site.xml是HDFS的核心配置文件,主要配置HDFS相关参数,如名称节点和数据节点的存放位置、文件副本的个数、文件读取权限等。

/data/bigdata/hadoop-3.3.2/etc/hadoop/hdfs-site.xml

<configuration>

        <!--指定namenode的页面访问地址和端口-->
        <property>
               <name>dfs.namenode.http-address</name>
               <value>test-machine1:9870</value>
        </property>
        <!--指定datanode数节点位置-->
        <property>
               <name>dfs.datanode.data.dir</name>
               <value>/data/bigdata/hadoop-3.3.2/dfsData/datanode</value>
               <final>true</final>
        </property>
        <!--指定namenode元数据存放位置-->
        <property>
               <name>dfs.namenode.dir</name>
               <value>/data/bigdata/hadoop-3.3.2/dfsData/namenode</value>
               <final>ture</final>
        </property>
        <!--指定SecondaryNameNode的主机和端口-->
        <property>
               <name>dfs.namenode.secondary.http-address</name>
               <value>test-machine2:9868</value>
        </property>
     <!--指定namenode的edits文件的存放位置-->
        <property>
                <name>dfs.namenode.edits.dir</name>
                <value>/data/bigdata/hadoop-3.3.2/dfsData/namenode_edits</value>
        </property>
          <!--配置检查点目录-->
        <property>
                <name>dfs.namenode.checkpoint.dir</name>
                <value>/data/bigdata/hadoop-3.3.2/dfsData/namenode_checkpoint</value>
        </property>
        <property>
                <name>dfs.namenode.checkpoint.edits.dir</name>
                <value>/data/bigdata/hadoop-3.3.2/dfsData/namenode_checkpoint_edits</value>
        </property>
        <!--文件切片的副本个数-->
        <property>
               <name>dfs.replication</name>
               <value>2</value>
        </property>
        <!--设置hdfs的文件权限-->
        <property>
               <name>dfs.permissions</name>
               <value>false</value>
        </property>
        <!--设置DataNode的节点文件配置,3.0版本之前workers为slaves文件-->
        <property>
               <name>dfs.hosts</name>
               <value>/data/bigdata/hadoop-3.3.2/etc/hadoop/workers</value>
        </property>
       <!--datanode使用hostname进行通讯,必须有-->
    <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
     <description>Whether clients should use datanode hostnames when
                        connecting to datanodes.</description>
    </property>
</configuration>

5.4 设置mapred-site.xml。mapred-site.xml是MapReduce的核心配置文件,包括JobHistory Server和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等。

/data/bigdata/hadoop-3.3.2/etc/hadoop/mapred-site.xml

<configuration>

        <!--指定分布式使用的框架是yarn-->
        <property>
               <name>mapreduce.framework.name</name>
               <value>yarn</value>
        </property>
        <!--开启MapReduce小任务模式-->
        <property>
               <name>mapreduce.job.ubertask.enable</name>
               <value>true</value>
        </property>
        <!--设置历史任务的主机和端口-->
        <property>
               <name>mapreduce.jobhistory.address</name>
               <value>test-machine1:10020</value>
        </property>
        <!--设置网页访问历史任务的主机和端口-->
        <property>
               <name>mapreduce.jobhistory.webapp.address</name>
               <value>test-machine1:19888</value>
        </property>
      <!--以下HADOOP_MAPRED_HOME必须要有-->
      <property>
          <name>yarn.app.mapreduce.am.env</name>
          <value>HADOOP_MAPRED_HOME=/data/bigdata/hadoop-3.3.2</value>
      </property>
      <property>
           <name>mapreduce.map.env</name>
           <value>HADOOP_MAPRED_HOME=/data/bigdata/hadoop-3.3.2</value>
      </property>
      <property>
           <name>mapreduce.reduce.env</name>
            <value>HADOOP_MAPRED_HOME=/data/bigdata/hadoop-3.3.2</value>
      </property>
</configuration>

5.5 配置mapred-env.sh。在该文件中指定JAVA_HOME。

/data/bigdata/hadoop-3.3.2/etc/hadoop/mapred-env.sh

export JAVA_HOME=/data/bigdata/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

5.6 配置yarn-site.xml。用于配置集群资源管理系统参数,配置 ResourceManager,NodeManager 的通信端口,web监控端口等。

<configuration>
<!-- Site specific YARN configuration properties -->
        <!--设置yarn的主节点位置-->
        <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>test-machine1</value>
        </property>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
             <property>
             <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
             <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
        <!--该配置项用于提示ResourceManager暴露给Client的地址。Client可以利用这个地址向ResourceManager提交应用程序,也可以用来杀死某个应用程序等。其默认端口是8032,而 URL 是 ResourceManager 的 hostname ,这里是master-->
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>test-machine1:8032</value>
        </property>
            <!--该配置项用于提示 ResourceManager暴露给ApplicationMaster 的访问地址。后者可以通过该地址从ResourceManager处申请和释放资源,默认端口是 8030-->
        <property>
               <name>yarn.resoucemanager.scheduler.address</name>
               <value>test-machine1:8030</value>
        </property>
    <!--该配置项用于提示 ResourceManager 暴露给 NodeManager 的地址。后者可以通过该地址向 ResourceManager 发送心跳,也可以拉取到待执行的任务,默认端口是8031-->
        <property>
               <name>yarm.resourcemanager.resource-tracker.address</name>
               <value>test-machine1:8031</value>
        </property>
    <!--ResourceManager 暴露给管理员的访问地址,后者可以通过该地址向 ResourceManager 发送用于管理目的的各项命令,其默认端口是 8033 -->
        <property>
               <name>yarn.resourcemanager.admin.address</name>
               <value>test-machine1:8033</value>
        </property>
    <!--ResourceManager 对外暴露的 WebUI 地址,我们稍后就会在浏览器中通过访问该地址来查看集群的各类信息,其默认端口是 8088-->
        <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>test-machine1:8088</value>
        </property>
             <property>
             <name>yarn.nodemanager.resource.memory-mb</name>
             <value>4096</value>
     </property>
</configuration>

5.7 配置workers。文件里面记录的是集群主机名 dfs.hosts。

/data/bigdata/hadoop-3.3.2/etc/hadoop/workers

test-machine1
test-machine2
test-machine4

5.8 分发hadoop配置文件到test-machine2和test-machine3。

scp $HADOOP_HOME/etc/hadoop/* supermap@test-machine2:$HADOOP_HOME/etc/hadoop
scp $HADOOP_HOME/etc/hadoop/* supermap@test-machine4:$HADOOP_HOME/etc/hadoop

6.三台机器创建Hadoop所需的数据目录

以上设置的目录结构如下:

#根据实际配置路径创建
mkdir -p $HADOOP_HOME/tempData
mkdir -p $HADOOP_HOME/dfsData
mkdir -p $HADOOP_HOME/dfsData/datanode
mkdir -p $HADOOP_HOME/dfsData/namenode
mkdir -p $HADOOP_HOME/dfsData/namenode_edits
mkdir -p $HADOOP_HOME/dfsData/namenode_checkpoint
mkdir -p $HADOOP_HOME/dfsData/namenode_checkpoint_edits

7. 启动hadoop

#初始化hadoop,格式化namenode ,只进行一次,下次启动直接执行start-all.sh即可
hadoop namenode -format
#启动hadoop
start-all.sh

jps检查test-machine1

test-machine2

test-machine4

http://172.16.12.90:8088/cluster

8. 配置spark参数

8.1 test-machine1配置spark-env.sh

cd /data/bigdata/spark-3.3.0-bin-hadoop3/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh 添加如下
 
export SPARK_LOCAL_IP=test-machine1
export SPARK_MASTER_HOST=test-machine1
export SPARK_MASTER_PORT=7077
#如果机器只给集群用,推荐设置机器核数的70%,否则根据应用情况进行动态调整,可以设置一半
export SPARK_WORKER_CORES=4  
#如果机器只给集群用,推荐设置机器内存的70%,否则根据剩余内存进行动态调整,可以设置50%
export SPARK_WORKER_MEMORY=4g  
#在集群执行过程中会产生比较大的临时文件,以下两个目录要设置比较大的路径,不在$SPARK_HOME也可以,但是要注意文件夹不要被删除了
export SPARK_LOCAL_DIRS=/data/bigdata/spark-3.3.0-bin-hadoop3/tmpData 
export SPARK_WORKER_DIR=/data/bigdata/spark-3.3.0-bin-hadoop3/worker
 
export JAVA_HOME=/data/bigdata/jdk1.8.0_144
#scala
export SCALA_HOME=/data/bigdata/scala-2.12.15
#hadoop config folder Hadoop配置文件路径
export HAD00P_HOME=/data/bigdata/hadoop-3.3.2
export HADOOP_CONF_DIR=$HAD00P_HOME/etc/hadoop
 
#超图组件产品
export SUPERMAP_OBJ=/home/supermap/iobjects/1111/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SUPERMAP_OBJ
 
#用于调优的参数,优化linux内存效率,库需要supermap权限,根据实际路径进行设置
export LD_PRELOAD=/opt/libs/jemalloc/lib/libjemalloc.so.2

8.2 配置worker节点。

cp workers.template workers
vim workers 添加如下:
test-machine1
test-machine2
test-machine4

8.3 分发spark配置文件slave节点test-machine2和test-machine3。

scp spark-env.sh supermap@test-machine2:/data/bigdata/spark-3.3.0-bin-hadoop3/conf/
scp spark-env.sh supermap@test-machine4:/data/bigdata/spark-3.3.0-bin-hadoop3/conf/
scp workers supermap@test-machine2:/data/bigdata/spark-3.3.0-bin-hadoop3/conf/
scp workers supermap@test-machine4:/data/bigdata/spark-3.3.0-bin-hadoop3/conf/

8.4 修改test-machine2和test-machine3的SPARK_LOCAL_IP。

vim spark-env.sh
修改
export SPARK_LOCAL_IP= 为当前ip

9. 三台机器创建spark所需路径

这一步可以省略,这里进行说明是为了验证路径在supermap用户下是否可以访问,如果supermap用户无访问目录的权限,启动时会报如下路径错误:

以上设置的路径如下

#根据实际配置路径创建
mkdir -p $SPARK_HOME/tmpData
mkdir -p $SPARK_HOME/worker

10. 启动spark集群

由于hadoop/sbin下也有start-all.sh,为了避免冲突,环境变量里加了hadoop的sbin,没有添加spark的sbin,启动spark需要到对应目录下,如果spark和hadoop不是一个用户创建的,并且环境变量是分开的,可以直接执行start-all.sh。

#推荐这种方式
cd /data/bigdata/spark-3.3.0-bin-hadoop3/sbin  
./start-all.sh

检查启动状态,test-machine1  jps发现多了两个进程。

test-machine2、test-machine4

http://172.16.12.90:8080/cluster/nodes

11. iserver-GPA使用spark集群

以下操作认为您已有可供使用的iserver服务。

11.1 iserver-gpa大数据使用方式。

(1)iserver主页面,点击处理自动化。

(2)根据需要选择您需要的算子。

(3)如下图是读写矢量数据的模型,spark环境根据实际情况进行设置,参数说明见11.2节。

11.2 参数说明和执行模式的区别

(1)集群相关参数说明。

- master:必填参数,集群 master 地址,单机使用请填写 local[K](K代表使用线程数,*代表本机核数),使用集群请填写集群 master 地址,如 spark://127.0.0.1:7077。
- appName:必填参数,自定义应用程序名称,如 processing。
- settings:使用集群需进行 Spark 属性参数设置,设置格式为 key1=value1, key2=value2,常用参数有:
        - spark.executor.cores=4:每个 executor 分配的cpu内核数,分配的内核数越多 executor 并发能力越强,默认设置为4。
        - spark.executor.memory=8g:每个 executor 使用的内存量,默认设置为8G。
        - spark.driver.cores=4,用于 driver 进程的内核数,**需要注意的是,在Client模式下该参数无法生效**。
        - spark.driver.memroy=4g:driver 使用的内存量,默认设置为4G。在写出数据到本地时,如果数据量过大,报错java.lang.OutOfMemoryError,可尝试增大该值。**需要注意的是,在Client模式下该参数无法生效**。
        - spark.driver.port=4040:用于 driver 进程的端口,**需要注意的是,在Client模式下该参数无法生效**。
        - spark.driver.maxResultSize=1g:所有分区序列化结果的最大值,建议设置为 0 表示无限制。
        - spark.kryoserlizer.buffer.max=2000m:Kryo 序列化缓冲区的最大值,设置区间是1~2047MB。设置较大的缓冲区可以提高序列化和反序列化的性能,但也会消耗更多的内存,默认设置为2000MB。
        - spark.default.parallelism=2000:用于设置默认并行度,默认设置为2000。
        - spark.memory.fraction=0.6:用于执行和存储的内存占(总内存-300MB)的比例。
        - spark.network.timeout=3600s:所有网络交互的默认超时时长。

更多 Spark 集群的参数设置请参考 [Spark Configuration](https://spark.apache.org/docs/3.3.0/spark-standalone.html)。

(2)不同运行模式的参数区别

--local模式:程序运行在本机

--client模式:Driver 运行于 iServer 所在的服务器,可以访问 iServer 服务器上的本地文件,包括 UDB、UDBX 等。由于Spark上运行的应用(Application)只有一个,因此多任务需要排队执行任务,可能存在延迟。

**注意:Client 模式下所有参数的修改,均需重启 spark 任务才会生效。**

重启步骤: 1. 通过 Spark 的 WebUI(http://{ip}:8080)查看并关闭任务。 2. 返回处理自动化建模页面执行模型,修改参数即可生效。

- spark.driver.host 在双网卡环境下、本机与集群 IP 不一致环境下,需设置该参数,否则可能出现找不到 driver 的问题,一般填写 iServer 所在服务器地址。示例:127.0.0.1

--cluster模式:Driver 在集群的节点上同时运行,不占用 iServer 节点的计算资源,但无法直接访问 iServer 节点上的文件。通常使用数据库型数据源或共享目录的方式实现多节点数据的同步访问,能够最大限度的利用集群。

- gp.hdfs.url(必填)提供一个 hdfs 目录,作为临时存放 jar 文件和模型的目录。示例:hdfs://127.0.0.1:9000/up
- gp.appResource 对于没有 hdfs 环境的情况是(必填),支持读取集群本地文件。需要将 iServer产品目录/support/geoprocessing/lib 下的 sps-startup-11.X.X-SNAPSHOT.jar 文件放到集群每个节点的相同文件夹下(建议使用共享目录)。填写该文件的位置,文件路径以file:开头。示例:file:/ssdData/share/sps-startup.jar|
- spark.jars 对于没有 hdfs 环境的情况是(必填),支持读取集群本地文件。需要将 iServer产品目录/support/iObjectsForSpark/bdt-all-runtime-11.X.X.jar 文件放到集群每个节点的相同文件夹下。填写该文件的位置,文件路径以file:开头。示例:file:/ssdData/share/bdt-all-runtime.jar|
- spark.web.ui.port spark 的 web UI 页面的端口,默认端口为8080。示例:8080

11.3 常见问题-处理bdt分发磁盘占用问题

为了实现依赖文件和日志清理,保证服务器硬盘空间,需要修改Spark目录/conf/spark-env.sh配置文件,增加以下参数:

- spark.worker.cleanup.enabled:是否开启定时清理。
- spark.worker.cleanup.interval:清理周期,每隔多长时间检查并清理一次,单位秒。
- spark.worker.cleanup.appDataTtl:保留时长,任务结束后保留多久,判断文件是否能够被删除,单位秒。
例如,希望每 60 秒检查一次 worker 目录,并删除执行完成 1 小时后的任务目录。
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=60 -Dspark.worker.cleanup.appDataTtl=3600"

12. 其他启动常见问题

12.1 hadoop报错java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/tmp/dfs/data: namenode clu

解决方案1,hadoop所有路径清理,重新format

解决方案2

问题原因
1.namenode格式化次数过多,导致子节点datanode和namenode的CID不一致了

解决方案
1.cat切入hdfs.site.xml查看配置文件的datanode存放在哪个路径

2.切到对应路径hadoop/tmp/dfs/data/current,使用cat进入VERSION文件

3.将日志中的namenode的CID覆盖clusterID

参考文章:hadoop报错java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/tmp/dfs/data: namenode clu_hadoop java.io.ioexception: incompatible clusterid-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dll修复工具下载:dll文件丢失问题?一键解决系统难题!

dll修复工具是Windows电脑必不可少的一款系统修复软件 电脑的使用频率很高&#xff0c;不可避免的会遇到丢失dll文件的情况。因此&#xff0c;dll修复工具也是能够解决的dll文件缺失的方法之一。那么如何使用dll修复工具解决缺失dll文件问题呢&#xff1f;本文将为您详细介绍电…

基于单片机的一氧化碳报警系统的设计与实现

摘 要&#xff1a; 一氧化碳对人体有害&#xff0c;尤其超标时会影响人们的健康 。 因此文章设计了一款基于单片机的一氧化氮报警器设计。 论文通过传感器检测一氧化碳浓度&#xff0c;经过 AD 转换&#xff0c;再把检测信号传递给单片机&#xff0c;经过分析处理&#xff0c…

graphRAG原理解析——基于微软graphRAG+Neo4j llm-graph-builder

知识图谱生成 llm-graph-builder&#xff08;以下简称 LGB&#xff09;也使用了最新的 graph RAG 的思路&#xff0c;使用知识图谱来加持RAG&#xff0c;提供更加准确和丰富的知识问答。知识图谱的生成上&#xff0c;利用大模型的泛化能力来自动生成和构建知识图谱&#xff0…

企事业单位数据资料防外泄如何实现?这5个小技巧等你来掌握!

企事业单位的数据资料防外泄是一项重要的任务&#xff0c;它关乎企业的核心竞争力和信息安全。 以下是五个实用的小技巧&#xff0c;可以帮助企事业单位有效地防止数据外泄&#xff1a; 1. 数据加密 技巧说明&#xff1a;通过对敏感数据进行加密处理&#xff0c;即使数据被非…

Python的10个构建桌面应用的技巧

Python以其简洁的语法和强大的库支持&#xff0c;成为开发桌面应用的热门选择。无论是创建简单的工具还是复杂的图形界面程序&#xff0c;Python都能大显身手。下面&#xff0c;我们将通过10个实用技巧&#xff0c;逐步引导你进入Python桌面应用开发的世界。 如果你对Python感兴…

服务器内存占用陡增,部分应用程序无故被停,docker-cache罪魁祸首

一、背景 告警提示&#xff1a;服务器内存占用陡增&#xff0c;部分应用程序无故被停。 查看内存占用&#xff0c;发现只剩下几百M了。 [rootnb003 ~]# free -htotal used free shared buff/cache available Mem: 30G 28G …

初识 Go 语言,环境配置有问题

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。个人知乎 Go 也称 Golang&#xff0c; 是由 Google 开发的一种开源的、静态类型、编译型、并发型&#xff0c;并具有垃圾回收功能的编程语言。它以其简洁的语法、强大的标准库和高效的并发模型而广受欢迎。今…

C++学习笔记——保留3位小数的浮点数

一、题目描述 二、代码 #include <iostream> #include <iomanip> using namespace std; int main() {double a;cin >> a;cout << fixed << setprecision(3)<<a<<endl;return 0; }

无人机遥控器显示屏的重要性!!!

无人机遥控器的显示屏在无人机操作中扮演着至关重要的角色&#xff0c;它提供了无人机状态、飞行参数、设置选项以及实时图像&#xff08;对于带屏遥控器&#xff09;等重要信息 显示飞行参数&#xff1a; 显示屏上可以实时显示无人机的高度、距离、坐标、速度、方向等关键飞行…

Buildroot构建Qt根文件系统-思维导图-学习笔记-基于正点原子阿尔法开发板

Buildroot构建Qt根文件系统 获取 Buildroot 源码 Buildroot 源码下载地址&#xff0c;https://buildroot.org/ 本次下载的是长期支持版本 移动至ubuntu后解压 tar xf buildroot-2022.02.3.tar.gz 解压后的 Buildroot 源码 配置 Buildroot 安装显示图形菜单需要的库 sudo…

Linux中库的概念,动态库,静态库

1.什么是库 库在Linux中是一个二进制文件&#xff0c;它是由.cpp文件&#xff08;不包含卖弄函数&#xff09;编译而来&#xff0c;其他程序如果想要使用该源文件中的函数时&#xff0c;只需在编译生成可执行程序时&#xff0c;链接上该源文件生成的库文件即可。库中存储的是二…

【香橙派系列教程】(十六) 语音模块与阿里云结合

【十六】语音模块与阿里云结合 本小节实现功能使用语音模块和摄像头在香橙派上做垃圾智能分类识别。 大致流程&#xff1a;说出“识别垃圾类型”口令&#xff0c;语音模块接收到之后通过串口发送字符串指令&#xff0c;随后进行拍照&#xff08;请确保香橙派已经驱动起来了摄…

2024/8/25 Nacos本机配置

目录 一、nacos下载 二、修改配置文件 2.1、配置数据库 2.2、配置鉴定密钥 2.3、配置启动脚本 三、nacos启动 3.1、启动运行脚本 3.2、新增配置 3.3、服务列表 记录一下本机nacos2.2.3配置全过程 一、nacos下载 下载地址&#xff1a;https://github.com/alibaba/nacos/r…

安灯系统赋能照明行业打造高效智能的生产管理体系

在当今竞争激烈的照明行业中&#xff0c;提高生产效率、确保产品质量以及实现智能化管理已成为企业生存和发展的关键。安灯系统作为一种先进的生产管理工具&#xff0c;正逐渐在照明行业中发挥着重要作用&#xff0c;为企业打造高效智能的生产管理体系提供有力支持。 一、照明行…

LeetCode31

206.反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#…

秋招TCP篇(较全的TCP网络知识,通俗理解底层逻辑)

TCP详细知识 计算机网络八股-局域网和广域网详解八股-OSI七层模型和TCP/IP五层模型八股-数据在网络之间传递的过程八股-UDP详解根据协议格式详解TCPSocket详解八股-TCP可靠性机制确认应答超时重传超时重传等待时间数据去重 八股-三次握手和四次挥手三次握手四次挥手为什么要三次…

系统之家官网网址:一键直达,安全无忧!

有很多用户反映自己搜搜系统之家&#xff0c;会出现很多网址&#xff0c;不知道哪个才是真正的系统之家官网网址&#xff1f;对于想要访问真正的系统之家官网&#xff0c;获取更多优质系统资源及解决相关系统问题的用户而言&#xff0c;记住系统之家的官网网址是至关重要。以下…

4款文章生成器,自动写作优质文章

在当今信息爆炸的时代&#xff0c;内容创作已经成为网络世界中不可或缺的一部分。然而&#xff0c;随着人们对高质量内容的需求不断增加&#xff0c;传统的手动创作已经无法满足市场的需求。因此&#xff0c;文章生成器应运而生&#xff0c;成为许多从业者和企业的利器。在本文…

公司图纸文件加密超详细的三大步骤,图纸加密软件最新推荐

随着企业信息化建设的不断深入&#xff0c;图纸文件成为了企业核心数据的重要组成部分。特别是在制造、建筑、设计等行业&#xff0c;CAD图纸文件承载了大量的商业秘密和技术机密。一旦这些图纸被泄露或未经授权地访问&#xff0c;企业将面临巨大的经济损失和声誉损害。因此&am…

【已解决】JS Uncaught DOMException: Failed to construct ‘Worker’ 所有场景

【已解决】JS Uncaught DOMException: Failed to construct ‘Worker’ 所有场景 概述 在JavaScript中&#xff0c;Web Workers允许我们运行后台脚本&#xff0c;这些脚本不会影响到页面的性能。然而&#xff0c;当我们尝试创建一个新的Worker时&#xff0c;有时会遇到“Uncau…