操作步骤
Mysql数据库导出
依次通过翼MR Manager停止hivemetastore、ranger、amoro,然后停止翼MR Manager
cd /var/mozi-install/jar/mozi-dist/bin
sh mozi_service.sh stop
1. 导出翼MR Manager数据库
mysqldump -uroot -p'{{mysqlpass}}' -h{{mysqlhost}} -P{{mysqlport}} --single-transaction -B mozi_ansible mozi_cmdb mozi_detector mozi_doris mozi_easylog mozi_iam mozi_k8s mozi_monitor mozi_opscheduler mozi_tenant mozi_yarn > ./mozi.sql
2. 导出hivemetastore组件元数据库
mysqldump -uroot -p'{{mysqlpass}}' -h{{mysqlhost}} -P{{mysqlport}} --single-transaction -B hive_metastore > ./hive.sql
3. 导出ranger组件配置库
mysqldump -uroot -p'{{mysqlpass}}' -h{{mysqlhost}} -P{{mysqlport}} --single-transaction -B ranger > ./ranger.sql
4. 导出amoro组件配置库
mysqldump -uroot -p'{{mysqlpass}}' -h{{mysqlhost}} -P{{mysqlport}} --single-transaction -B amoro > ./amoro.sql
数据库导入teledb
由于某些teledb不支持提供普通用户建库,所以需要用到的用户和数据库需要dba提前配置好,注意修改sql文件里的数据库名,匹配teledb中创建的数据库。
1. 导入翼MR manager数据库
使用翼MR Manager的teledb数据库账号登录teledb
mysql -uemr_manager_app -p'{{teledbpass}}' -h{{teledbhost}} -P{{teledbport}}
登录完成后执行source mozi.sql;
2. 导入hivemetastore组件元数据库
mysql -uemr_hive_app -p'{{teledbpass}}' -h{{teledbhost}} -P{{teledbport}}
登录完成后执行use emr_hive;source hive.sql;
3. 同上步,依次导入ranger.sql和amoro.sql。如果遇到权限问题,需要dba使用super用户完成导入。
修改Manager及组件配置
1. 修改manager配置
对数据库用户名加密,比如teledb数据库名是emr_manager_app,在shell终端中执行如下命令
/var/mozi-install/jar/mozi-dist/bin/encrypt.sh -e 'emr_manager_app'
同理,将-e的参数替换成teledb该用户的密码进行加密。
修改/var/mozi-install/jar/mozi-dist/conf/service/mozi.yml配置文件,将上述步骤加密的结果写入该配置文件。依次修改配置项:host,port,username,password
启动翼MR Manager
sh mozi_service.sh start
2. 通过翼MR Manager依次修改hive、ranger、amoro组件数据库连接相关配置。
3. 由于2.15版翼MR对明文密码进行了加密处理,某些配置需要后台生成密钥的方式进行修改。
登录到hivemetastore节点,在每个metastore节点分别执行如下操作。
备份原来的hive.jceks文件
mv /etc/hive/conf/hive.jceks /etc/hive/conf/hive.jceks.bak
生成新的hive.jceks文件,xxxx为hive metastore元数据库密码。
/usr/local/hadoop3/bin/hadoop credential create javax.jdo.option.ConnectionPassword -value 'xxxx' -provider jceks://file/usr/local/hive/conf/hive.jceks
4. 登录到rangeradmin节点,在每个rangeradmin节点分别执行如下操作。
备份原来的rangeradmin.jceks文件
mv /usr/local/ranger-admin-2.2.0_ccdp3.4.3_1.0.4/ews/webapp/WEB-INF/classes/conf/.jceks/rangeradmin.jceks /usr/local/ranger-admin-2.2.0_ccdp3.4.3_1.0.4/ews/webapp/WEB-INF/classes/conf/.jceks/rangeradmin.jceks.bak
生成新的rangeradmin.jceks.bak文件,xxxx为ranger配置库密码。
java -cp "/usr/local/ranger-admin/cred/lib/*" org.apache.ranger.credentialapi.buildks create ranger.db.password -value "xxxx" -provider "jceks://file/usr/local/ranger-admin/ews/webapp/WEB-INF/classes/conf/.jceks/rangeradmin.jceks"
chmod 755 /usr/local/ranger-admin/ews/webapp/WEB-INF/classes/conf/.jceks/rangeradmin.jceks
5. 登录到amoro节点
切换到特定目录
cd /usr/local/amoro/conf/key
执行加密逻辑,输出结果就是加密的密码
echo -n 'xxxxx' | openssl rsautl -encrypt -pubin -keyform DER -inkey public_key.der | base64 | tr -d "\n"
将此密码回填到翼MRmanager配置中。
amoro的数据库信息配置在配置文件:config.yaml
数据库ip 端口 库名 用户名是明文的,可以直接修改配置文件。配置项 ams.database.url 和 ams.database.username
数据库的密码是加密的,需要手动进行加密,再粘贴到配置文件中,配置项 ams.database.password