1.升级前,dpf 集群负责人 会发出升级通知。
譬如:
其中会给出 相应版本的 客户端地址
wget -O hadoop-client-1.2.4.tar.gz http://k**a.***.com:8080/fc/getfilebyid?id=4826
2.RD线下测试 (同时 通知QA关注)
在开发机db02上
解压缩 到 相应的文件夹: tar -zxvf hadoop-client.tar.gz -C hadoop-client-1.2.4
直接把 老版本的 hadoop-site.xml 配置文件 拷贝到 新版本 即可。(注意 线上/线下集群 的 配置文件 有区别。)
至于 conf文件夹下的 hadoop-default.xml文件中的 hadoop.tmp.dir属性是否更改,check一下即可。一般不需要 变动。
如果是 hive升级,除了直接 复制 hive-site.xml文件外,整个conf 文件夹 都要复制过去。(conf文件夹下的 hive-log4j.properties 中的 打印日志路径 也要check一下 是否更改,虽然一般不用变动.conf的其他配置文件 也要复制过去,譬如 conf/hive-env.sh 文件也要拷贝过去,不然由于缺乏 hive.root.mode=true 会导致 报 权限不足)。
然后 更改 .bash_Profile 环境变量: 将 hadoop_home改成最新的路径。
譬如:
export HADOOP_HOME=/home/work/hadoop/hadoop_client_1.2.2/hadoop-client/hadoop
export JAVA_HOME=/home/work/hadoop/hadoop_client_1.2.2/hadoop-client/java6
然后 source .bash_profile重新登录一下。
然后 which hadoop,并且 check hadoop常用命令 是否正常。
hadoop fs –dus
hadoop fs –ls
hadoop fs –put 一个文件,然后 hadoop fs –rm 一个文件。
hive常用命令,看双方是否匹配
hive,select一些表,包括 rcfile的表,看能否正常读写。
这次升级。把 etl00机器上的hadoop和hive 专门给 rd弄个客户端。 路径也配一下。
同时做一个监控 hive数据库 和 hadoop路径的 小工具。每天发出 一个报告,每周发出一个汇总 。本周 新增加的表、删除的表、本周 修改过的表?
其他通过 调用hadoop客户端api的web程序 最好也升级。
张凯的hiver也要升级。
3.QA测试
4.正式 上线步骤:
4.1 在线下 弄一个 线上环境的 hadoop文件夹,然后配一个 noah单,将这个 文件夹 拷贝到 线上8台机器 相应的文件夹 下。
在线下db02机器上 新建了两个 hadoop客户端文件夹,都是线上环境,其中一个是rigelci用户,一个是cdc_rd用户。
再新建一个hive客户端,专供线上rd使用。
work@y***-crm-c-d.yf01..com tmp]$ pwd
/home/work/lxl/tmp
[work@y***-*-crm-c-d.yf01.com tmp]$ ls
hadoop-client-1.2.4 hadoop-client-1.2.4-rd hive-2.3.26-rd
4.2 配一个noah单,将上述三个 文件夹分别拷贝到 线上对应目录。 (隐患,不能拷贝文件夹,应该先 各自 tar 压缩,然后拷贝 tar包,拷贝线上后,再解压缩)
http://***.***.com/ad-web/SetSuActionAsyn/index?id=993636#setSuAction|1563931|3941768
执行noah单,将客户端 文件夹 分别拷贝到 线上。 并且 修改 work账号 和 rd账号的 .bash_profile 文件。
在更改前,先备份.bash_profile文件。
由于上线 noah单是用 work账号 上线的, 可能 不能 修改 rd账号下的 .bash_profile 文件,故最后 还是让 OP 手工修改 .bash_profile文件。
5.noah单执行完成后,进行check。
抽查各台机器上 work和rd 账号的 .bash_profile 是否都更改了。 如果没改,让op 修改。
让 op在etl00机器上 给rd账号 执行 java、hadooop-rd 和 hive-rd 客户端 执行的权限。 进入bin/文件夹,然后执行 chmod a+x hive命令 即可 。
如果不给rd赋给执行权限,则which hadoop,which hive仍然找不到。
故 cd /home/work/hadoop/hive-2.3.26-rd/bin && chmod a+x hive 即可。
应该先赋 执行权限,再 测试 rd账号的 which hadoop ,which hive等命令。 不然 会报rd 账号 找不到 hadoop、hive。
然后测试 常用的hadoop fs 命名和 hive命令 是否正常。
select 查询rcfile 格式的表,看是否数据正常。
5.2 试运行一些CT,观察计算结果。不触发下游。
选取的ct要 均匀分布在 各台机器上。
etl00: [-PUBLISH]北斗消费-北斗账户有消费特征(立即处理)(任务ID:1050042)
etl01:[-DWA]账户续费特征累计(立即处理)(任务ID:931964)
etl05:[-DWA]财务账户余额信息宽表(任务ID:1304627)
etl06:[-ODS]UC源数据userinfoext(立即处理)(任务ID:1196660)
重点ct:观察小时级别的 凤巢展现日志、北斗展现日志 数据结果 是否正常。
6.回滚方案
回滚线上8台机器的 work的.bash_profile文件即可。