最近对presto进行了升级,目前最新版本是0.233,我们用的是0.177。
升级之前参考了一下别人的博客,在官网没有找到关于升级的消息
其中博客主要参考是:https://www.jianshu.com/p/caf14b656107
思路是采取的这个,但是方法不是这样的
1.准备包(三个节点上都要有)
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.233.1/presto-server-0.233.1.tar.gz
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.233.1/presto-cli-0.233.1-executable.jar
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.233.1/presto-jdbc-0.233.1.jar
2.找到原来版本的安装目录(标红处就是安装目录,这里是我升级以后的 ,你在升级前查看的话应该是0.177版本)
ps -ef |grep presto [admin@test29 bin]$ ps -ef |grep presto admin 3835 12654 0 15:36 pts/0 00:00:00 grep --color=auto presto admin 31362 1 39 15:29 ? 00:02:37 java -cp /home/admin/program/presto-server-0.233.1/lib/* -server -Xmx5G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=kill -9 %p -Dlog.output-file=/ccdata/presto/data/var/log/server.log -Dnode.data-dir=/ccdata/presto/data/ -Dnode.id=hadoop-dev20 -Dnode.environment=caocao_presto -Dlog.enable-console=false -Dlog.levels-file=/home/admin/program/presto-server-0.233.1/etc/log.properties -Dconfig=/home/admin/program/presto-server-0.233.1/etc/config.properties com.facebook.presto.server.PrestoServer
3.将presto-server-0.233.1.tar.gz压缩包解压到/home/admin/program/目录下与原来的目录保持并行(因为你不知道之前有多少脚本写的时候就是用的这个目录,你如果修改了目录,好多脚本都得改,如果改不到 就会出现报错,所以目录不要变)
tar -zxvf presto-server-0.233.1.tar.gz -C /home/admin/program/
4.将原来目录下的(/home/admin/program/presto-server-0.177/)etc文件夹考到新解压的目录下
cp -r /home/admin/program/presto-server-0.177/etc /home/admin/program/presto-server-0.233.1/
然后如果有其他脚本就一起拷到相应目录下,最好不要改变位置。
5.你要查看一下自己的jdk的版本,因为0.233版本需要jdk是150以上的,也就是至少要是15几的版本(以1.8版本为准的150哈)
[admin@test29 bin]$ java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
如果你的版本大于150,那就没有问题,如果小于150,那么需要自行下载一个版本大于150的jdk
当然你不必去把你整个环境的jdk给换掉,风险太大,你只需要查看一下你原来的vim /home/admin/program/presto-server-0.177/bin/launch,看一下配置的jdk的目录是啥,你就把你新下载的jdk丢到那个目录下就可以了,下图的红框框的就是你需要配置的
export PATH=/home/admin/program/jdk1.8.0_152/bin:$PATH
6.参数变更
因为版本的迭代,有一些参数可能发生变化,如果发生变化就会导致启动失败,所以需要对参数进行整改,具体怎么整改我还没有找到官网的参考位置,只是在相关博客中参考了一下,但是好像不太理想,启动的时候还是各种报错,所以此处建议若果找不到具体的参照,那就直接启动,因为报错内容会告诉你那个参数是不需要的,那个参数是错的。
启动报错截图找不到了 ,总之就是某个参数can‘t used 或者 can‘t configured这个样子的基本上就是不需要了 ,你注释掉就好。直到出现这个就算是启动成功了
这是主节点的配置
7.启动前准备
1)启动之前你要先把原来的停掉
/home/admin/program/presto/bin/launcher stop
2)为了避免升级的过程中需要更改脚本,所以需要将presto-server-0.233.1目录和presto建立软连接,在之前的版本可能已经建立过软连接,比如
lrwxrwxrwx 1 admin admin 19 2019-08-22 11:10:56 presto -> presto-server-0.177
我们要把这个软连接给它换成新的版本的
lrwxrwxrwx 1 admin admin 21 2020-03-28 11:13:17 presto -> presto-server-0.233.1
原来的你可以给他换一下名字
mv presto presto.177
lrwxrwxrwx 1 admin admin 19 2019-08-22 11:10:56 presto.177 -> presto-server-0.177
7.其他的work节点跟主节点的升级步骤差不多,启动跟主节点也是一样启动。
每个个节点单独启动坑内比较麻烦,你可以写一个启动脚本。
ssh -p 15388 test31 /home/admin/program/presto/bin/launcher start ssh -p 15388 dev30 /home/admin/program/presto/bin/launcher start /home/admin/program/presto/bin/launcher start
然后查看web(红框中可以看到,升级已经成功)
总的来说这个过程还是比较简单的
最后还有两个jar包的作用
presto-cli-0.233.1-executable.jar是用来连接
[admin@test29 presto]$ /home/admin/program/presto/presto --server 10.27.228.64:9999 --user analyst --catalog hive --schema default presto:default> show tables; Table ------------------------------------------------------------------------------------------------ carbon_table customers dc_driver_loginlong_bak1 dc_driver_loginlong_test11 dc_driver_loginlong_test12 dc_driver_loginlong_test13 dc_driver_loginlong_test14 dc_driver_loginlong_test16 dc_driver_loginlong_test17 dc_driver_loginlong_test18 dc_driver_loginlong_test19
presto-jdbc-0.233.1.jar配置到java的classpath目录下,这个我不知道怎么配置,还在研究中