This is an automated email from the ASF dual-hosted git repository.

casion pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/linkis.git

commit 9177f0d929b626bb7b9d42dec7821135bb0bd84a
Author: 赵文恺 <[email protected]>
AuthorDate: Sat Sep 16 12:32:41 2023 +0800

    add shell script "checkAdd.sh" for checking optional engines
    
    Engine supporting list as bellow:
    
    JDBC Flink openLooKeng Pipeline Presto Sqoop Elasticsearch
---
 linkis-dist/bin/checkAdd.sh | 288 +++++++++++++++++++++++++++-----------------
 1 file changed, 176 insertions(+), 112 deletions(-)

diff --git a/linkis-dist/bin/checkAdd.sh b/linkis-dist/bin/checkAdd.sh
index 4ce5ff8c9..a03aa6221 100644
--- a/linkis-dist/bin/checkAdd.sh
+++ b/linkis-dist/bin/checkAdd.sh
@@ -20,141 +20,205 @@ source ${workDir}/bin/common.sh
 source ${workDir}/deploy-config/linkis-env.sh
 source ${workDir}/deploy-config/db.sh
 
-say() {
-    printf 'check command fail \n %s\n' "$1"
+function print_usage(){
+  echo "Usage: checkAdd [EngineName]"
+  echo " EngineName : The Engine name that you want to check"
+  echo " Engine list as bellow: JDBC Flink openLooKeng Pipeline Presto Sqoop 
Elasticsearch "
 }
 
-err() {
-    say "$1" >&2
-    exit 1
-}
-
-function checkPythonAndJava(){
-    python --version > /dev/null 2>&1
-    isSuccess "execute cmd: python --version"
-    java -version > /dev/null 2>&1
-    isSuccess "execute cmd: java --version"
-}
-
-function checkHdfs(){
-    hadoopVersion="`hdfs version`"
-    defaultHadoopVersion="3.3"
-    checkversion "$hadoopVersion" $defaultHadoopVersion hadoop
-}
-
-function checkHive(){
-    checkversion "$(whereis hive)" "3.1" hive
-}
-
-function checkversion(){
-versionStr=$1
-defaultVersion=$2
-module=$3
-
-result=$(echo $versionStr | grep "$defaultVersion")
-if [ -n "$result" ]; then
-    echo -e "Your [$module] version may match default support version: 
$defaultVersion\n"
-else
-   echo "WARN: Your [$module] version is not match default support version: 
$defaultVersion, there may be compatibility issues:"
-   echo " 1: Continue installation, there may be compatibility issues"
-   echo " 2: Exit installation"
-   echo -e " other: exit\n"
-
-   read -p "[Please input your choice]:"  idx
-   if [[ '1' != "$idx" ]];then
-    echo -e "You chose  Exit installation\n"
-    exit 1
-   fi
-   echo ""
+if [ $# -gt 1 ]; then
+  print_usage
+  exit 2
 fi
-}
 
-function checkSpark(){
- spark-submit --version > /dev/null 2>&1
- isSuccess "execute cmd: spark-submit --version "
-}
+# --- Begin Check service function 
 
-portIsOccupy=false
-function check_service_port() {
-    pid=`lsof -i TCP:$SERVER_PORT | fgrep LISTEN`
-    if [ "$pid" != "" ];then
-      echo "$SERVER_PORT already used"
-      portIsOccupy=true
-    fi
-}
+function checkJDBC(){
 
-check_cmd() {
-    command -v "$1" > /dev/null 2>&1
-}
+# --- 1. check command
+    java -version > /dev/null 2>&1
+    isSuccess "execute cmd: java -version"
+
+# --- 2. check parameters
+     if [ -z "${MYSQL_HOST}" ] || [ -z "${MYSQL_PORT}" ] || [ -z "${MYSQL_DB}" 
] || [ -z "${MYSQL_USER}" ] || [ -z "${MYSQL_PASSWORD}" ];then
+       echo "MYSQL_HOST/MYSQL_PORT/MYSQL_USER/MYSQL_PASSWORD] are  Invalid,Pls 
check parameter define"
+       exit 2
+     fi
+ 
+# --- 3. check server status
+# 设置Java类路径,指向你所下载的MySQL JDBC驱动程序的JAR文件和其他依赖项
+CLASSPATH=$CLASSPATH:/data/test/bin/mysql-connector-java-8.0.28.jar
+
+# 编写Java代码,尝试建立JDBC连接并验证
+echo "import java.sql.*;
+
+public class JdbcTest {
+    public static void main(String[] args) {
+        // 定义连接信息
+        String url = \"jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB}\";
+        String username = \"${MYSQL_USER}\";
+        String password = \"${MYSQL_PASSWORD}\";
+
+        // 尝试建立连接
+        try (Connection connection = DriverManager.getConnection(url, 
username, password)) {
+            System.out.println(\"jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT} 
连接成功!\");
+        } catch (SQLException e) {
+            System.out.println(\"连接失败:\");
+            e.printStackTrace();
+        }
+    }
+}" > JdbcTest.java
+
+# 编译Java源文件
+    javac -cp "$CLASSPATH" JdbcTest.java
+
+# 运行Java程序
+    java -cp "$CLASSPATH":. JdbcTest
+    isSuccess "execute cmd: java -cp CLASSPATH:. JdbcTest"
+
+#clear files
+    rm JdbcTest.*
 
-need_cmd() {
-    if ! check_cmd "$1"; then
-        err "need '$1' (your linux command not found)"
-    fi
 }
 
+function checkFlink(){
 
-echo "<-----start to check used cmd---->"
-echo "check yum"
-need_cmd yum
-echo "check java"
-need_cmd java
-echo "check mysql"
-need_cmd mysql
-echo "check telnet"
-need_cmd telnet
-echo "check tar"
-need_cmd tar
-echo "check sed"
-need_cmd sed
-echo "check lsof"
-need_cmd lsof
+# --- 1. check command
+    flink --version > /dev/null 2>&1
+    isSuccess "execute cmd: flink--version"
 
-echo "check hdfs"
-need_cmd hdfs
+# --- 2. check parameters
+      if [ -z ${YARN_RESTFUL_URL} ];then
+         echo "Parameter YARN_RESTFUL_URL is Invalid:" ${YARN_RESTFUL_URL}
+         exit 2
+      fi
+ 
+# --- 3. check server status
+    YanRMAddress=`echo ${YARN_RESTFUL_URL}|awk -F';' '{print $1}'`
+    curl $YanRMAddress > /dev/null 2>&1
+    isSuccess "execute cmd: Flink yarn service check "
 
-echo "check shell"
-need_cmd $SHELL
+}
 
-echo "check spark-sql"
-need_cmd spark-sql
+function checkopenLooKeng(){
+
+# --- 2. check parameters
+     if [ -z "${OLK_HOST}" ] || [ -z "${OLK_PORT}" ] || [ -z "${OLK_CATALOG}" 
]|| [ -z "${OLK_SCHEMA}" ] || [ -z "${OLK_USER}" ] || [ -z "${OLK_PASSWORD}" 
];then
+       echo "OLK_HOST/OLK_PORT/OLK_USER/OLK_PASSWORD] are  Invalid,Pls check 
parameter define"
+       exit 2
+     fi
+ 
+# --- 3. check server status
+# 设置Java类路径,指向你所下载的MySQL JDBC驱动程序的JAR文件和其他依赖项
+CLASSPATH=$CLASSPATH:/data/test/bin/hetu-jdbc-1.10.0.jar
+
+# 编写Java代码,尝试建立JDBC连接并验证
+echo "import java.sql.*;
+
+public class openLooKengTest{
+    public static void main(String[] args) {
+        // 定义连接信息
+        String url = 
\"jdbc:lk://${OLK_HOST}:${OLK_PORT}/${OLK_CATALOG}/${OLK_SCHEMA}\";
+        String username = \"${OLK_USER}\";
+        String password = \"${OLK_PASSWORD}\";
+
+        // 尝试建立连接
+        //try (Connection connection = DriverManager.getConnection(url, 
username, password)) {
+       try (Connection connection = DriverManager.getConnection(url, 
username,null)) {
+            System.out.println(\"连接成功!\");
+        } catch (SQLException e) {
+            System.out.println(\"连接失败:\");
+            e.printStackTrace();
+        }
+    }
+}" > openLooKengTest.java
+
+# 编译Java源文件
+javac -cp "$CLASSPATH" openLooKengTest.java
+
+# 运行Java程序
+java -cp "$CLASSPATH":. openLooKengTest
+isSuccess "execute cmd: java -cp CLASSPATH:. openLooKengTest"
+
+# 清理临时文件
+rm openLooKengTest.*
 
-echo "<-----end to check used cmd---->"
+}
 
-checkPythonAndJava
+function checkPresto(){
 
-SERVER_PORT=$EUREKA_PORT
-check_service_port
+# --- 1. check command
+    presto --version > /dev/null 2>&1
+    isSuccess "execute cmd: presto --version"
 
-SERVER_PORT=$GATEWAY_PORT
-check_service_port
+# --- 2. check parameters
+      if [ -z "${PRESTO_HOST}" ] || [ -z "${PRESTO_PORT}" ] || [ -z 
"${PRESTO_CATALOG}" ]|| [ -z "${PRESTO_SCHEMA}"  ];then
+       echo "PRESTO_HOST/PRESTO_PORT/PRESTO_CATALOG/PRESTO_SCHEMA] are  
Invalid,Pls check parameters definition"
+         exit 2
+      fi
 
-SERVER_PORT=$MANAGER_PORT
-check_service_port
+# --- 3. check server status
+    presto --server ${PRESTO_HOST}:${PRESTO_PORT} --catalog ${PRESTO_CATALOG} 
--schema ${PRESTO_SCHEMA} --execute "show catalogs" >/dev/null 2>&1
+    isSuccess "execute cmd: presto --server ${PRESTO_HOST}:${PRESTO_PORT}"
+}
 
-SERVER_PORT=$ENGINECONNMANAGER_PORT
-check_service_port
+function checkSqoop(){
 
-SERVER_PORT=$ENTRANCE_PORT
-check_service_port
+# --- 1. check command
+    sqoop version > /dev/null 2>&1
+    isSuccess "execute cmd: sqoop version"
 
-SERVER_PORT=$PUBLICSERVICE_PORT
-check_service_port
+# --- 2. check parameters
+      if [ -z "${HIVE_META_URL}" ] || [ -z "${HIVE_META_USER}" ] || [ -z 
"${HIVE_META_PASSWORD}" ];then
+       echo "[HIVE_META_URL/HIVE_META_USER/HIVE_META_PASSWORD] are  
Invalid,Pls check parameters definition"
+         exit 2
+      fi
 
+# --- 3. check server status
+    sqoop list-databases --connect ${HIVE_META_URL} --username 
${HIVE_META_USER} --password ${HIVE_META_PASSWORD} >/dev/null 2>&1
+    isSuccess "execute cmd: sqoop list-databases --connect ${HIVE_META_URL}"
+    }
 
-if [ "$portIsOccupy" = true ];then
-  echo "The port is already in use, please check before installing"
-  exit 1
-fi
+function checkElasticsearch(){
 
-if [ "$ENABLE_SPARK" == "true" ]; then
-  checkSpark
-fi
+# --- 2. check parameters
+      if [ -z "${ES_RESTFUL_URL}" ]; then
+         echo "Parameter ES_RESTFUL_URL is Invalid:" ${ES_RESTFUL_URL}
+         exit 2
+      fi
 
-if [ "$ENABLE_HDFS" == "true" ]; then
-  checkHdfs
-fi
+# --- 3. check server status
+    curl ${ES_RESTFUL_URL} > /dev/null 2>&1
+    isSuccess "execute cmd: curl ElasticSearch address ${ES_RESTFUL_URL}"
+}
 
-if [ "$ENABLE_HIVE" == "true" ]; then
-  checkHive
-fi
+# --- Begin check addtional engine parameters
+echo "======== Begin to check Engine: ${1} ======== "
+
+EngineName=$1
+case $EngineName in
+    "JDBC")
+        checkJDBC
+        ;;
+    "Flink")
+        checkFlink
+        ;;
+    "openLooKeng")
+        checkopenLooKeng
+        ;;
+    "Presto")
+        checkPresto
+        ;;
+    "Sqoop")
+        checkSqoop
+        ;;
+    "Elasticsearch")
+        checkElasticsearch
+        ;;
+    *)
+        print_usage
+        exit 2
+        ;;
+esac
+
+echo "======== End checking Engine: ${1} ========== "


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to