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]
