一、YDB升级步骤
1.停止YDB服务
通过./stop-all.sh来停止服务(注:HDP版本需要在管理页面上停止服务)
2.备份旧程序
1)备份旧版YDB整个程序目录
2)备份我们自己开发或添加的第三方的jar包和配置文件
3)备份YDB提供的Spark整个程序目录
本地元数据库是指Hive元数据库derby.log和metastore_db,元数据库的位置可以从conf下的ya100_env.sh中的HIVE_METASTORE_PATH获取,如下图所示。
3.升级程序
1)替换ydb提供的Spark升级版本
u将之前旧的spark整个目录mv成待备份的目录名字,如xxx_spark_bak_yyyymmdd
u将新的spark解压后,重新命名为之前的spark目录
u检查spark目录是否正确,核对spark相关文件是否存在
2)替换YDB
u将之前旧的ya100 整个目录mv成待备份的目录名字,如xxx_ya100_bak_yyyymmdd
u将新的ya100解压后,重新命名为之前的ya100目录
u检查ya100目录是否正确,核对相关文件路径是否存在
3)元数据库文件替换
将之前备份的Hive元数据库derby.log和metastore_db ,恢复到相关目录里面。
如果没有恢复该元数据库目录,升级YDB后,会发现之前旧版创建的hive表,均不可见(数据还在)。
5)将我们我们自己开发或添加的第三方的jar包和配置文件重新覆盖过来。
jar包如:
kafka的reader包,parser包
自定义udf,udaf,udtf函数
自定义的第三方分词,自定义的词库
因为版本问题而更换的kafka相关jar包
其他jar包,如MySQL相关库
配置文件如
fieldType.txt里面自定义的数据类型
dynamicField.txt里面自定义的动态数据类型
IK_ext.dic 里面定义的IK词库文件
4.更改配置
1)ya100_env.sh更改(HDP版请在配置页面上管理)
参考旧的ya100_env.sh,将旧版的ya100_env.sh 我们用户配置的部分,更新到新版。
如下图所示,红色部分是我们经常需要修改覆盖的地方。
2)ydb_site.yaml更改(HDP版请在配置页面上管理)
参考旧的ydb_site.yaml,将旧版的ydb_site.yaml 我们用户配置的部分,更新到新版。
如下图所示,红色部分是我们经常需要修改覆盖的地方。
3)log4j的配置更新(HDP版请在配置页面上管理)
log4j是用来控制程序的日志的。
常规情况下log4j我们无需配置,但是如果之前我们的旧版本改动了log4j的配置,我们本次升级记得也跟着改动过来
driver.log.properties 为我们的driver节点的log4j 配置,即master节点的log4j。
worker.log.properties 为我们的worker节点的log4j配置。
4)spark-defaults.conf的配置更新(HDP版请在配置页面上管理)
改配置为spark的配置,常规情况下用户无需配置。最近的一些版本spark-defaults.conf我们的改动也比较大,所以注意,spark-defaults.conf绝对不可以直接用旧版的配置文件直接覆盖,因为很多我们配置项的改动是为了提升稳定性。
但如果因为某种原因,我们之前更改过该文件的配置,请大家一定要在新的配置的基础上,仅仅增加或修改我们自己更改过的那些配置,为了稳定性,不要随意删掉YDB提供的默认配置。
5)init.sql里面我们的初始化函数
init.sql是ydb的启动后的初始化SQL文件,通常来说也无须配置。
如果我们在init.sql做了一些Hive函数的初始化,或者构建了一些表之类的,我们需要参考旧的init.sql对应着修改过来
6)hive-site.xml的配置(HDP版请在配置页面上管理)
hive-site.xml是跟hive表相关的配置,里面控制了jdbc连接的线程池,以及元数据存储位置等信息。
如果之前旧版我们更改过这里,记得要配置。
5.更改本次版本更新的特定配置
如果该次升级,涉及版本一些重大特性的变化,如要在这个步骤里面给予修改。这里面的更改由延云额外提供文档进行更改。
如:
操作系统发现的可以对性能或稳定性有较大影响的新的参数设置
Hadoop\kafka\zookeeper等对ydb有较大影响的一些新的参数配置。
对于本地1.5版本的ydb需要添加额外如下配置
1)网络配置优化
echo " net.core.somaxconn = 32768 " >> /etc/sysctl.conf
sysctl -p
sysctl -a|grep somaxconn
2)Hadoop 配置更改
l调整dfs.datanode.max.transfer.threads的值,默认4096太小,建议调整为10240
l调整ipc.server.listen.queue.size为32768
l调整yarn.resourcemanager.am.max-attempts的值为10000000,默认的2次太小,客户测试过程反复的kill就会导致整个任务失败。
6.启动YDB并检查服务是否正常
通过start-all.sh来启动服务
1)ydb的1210页面上的monitor页面是否有异常错误上报
看这个页面是否有 紫色或者红色的异常提示
2)spark的ui页面是否能打开
3)核对业务,服务是否正常,相关SQL是否能查询到结果
4)核对业务数据是否有异常,数据条数是否正确。