最近對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目錄下,這個我不知道怎么配置,還在研究中