From da658d7b33238305a47b41f2b87732bf8b0da15e Mon Sep 17 00:00:00 2001 From: Lei Rui <1010953854@qq.com> Date: Mon, 14 Oct 2019 22:39:39 +0800 Subject: [PATCH] add/fix shell and bat for TsFileSketchTool/TsFileResourcePrinter --- .../tools/print-tsfile-resource-files.bat | 51 ++------------- .../tools/print-tsfile-resource-files.sh | 24 +------ .../resources/tools/print-tsfile-sketch.bat | 64 +++++++++++++++++++ .../resources/tools/print-tsfile-sketch.sh | 48 ++++++++++++++ .../iotdb/db/tools}/TsFileSketchTool.java | 5 +- 5 files changed, 124 insertions(+), 68 deletions(-) create mode 100644 server/src/assembly/resources/tools/print-tsfile-sketch.bat create mode 100644 server/src/assembly/resources/tools/print-tsfile-sketch.sh rename {example/tsfile/src/main/java/org/apache/iotdb/tsfile => server/src/main/java/org/apache/iotdb/db/tools}/TsFileSketchTool.java (98%) diff --git a/server/src/assembly/resources/tools/print-tsfile-resource-files.bat b/server/src/assembly/resources/tools/print-tsfile-resource-files.bat index bbc1acaf13..e76d4b6ea6 100644 --- a/server/src/assembly/resources/tools/print-tsfile-resource-files.bat +++ b/server/src/assembly/resources/tools/print-tsfile-resource-files.bat @@ -22,73 +22,36 @@ echo ```````````````````````` echo Starting Printing the TsFileResources echo ```````````````````````` -PATH %PATH%;%JAVA_HOME%\bin\ -set "FULL_VERSION=" -set "MAJOR_VERSION=" -set "MINOR_VERSION=" - - -for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do ( - set "FULL_VERSION=%%j-%%k-%%l-%%m" - IF "%%j" == "1" ( - set "MAJOR_VERSION=%%k" - set "MINOR_VERSION=%%l" - ) else ( - set "MAJOR_VERSION=%%j" - set "MINOR_VERSION=%%k" - ) -) - -set JAVA_VERSION=%MAJOR_VERSION% - -IF NOT %JAVA_VERSION% == 8 ( - IF NOT %JAVA_VERSION% == 11 ( - echo IoTDB only supports jdk8 or jdk11, please check your java version. - goto finally - ) -) - if "%OS%" == "Windows_NT" setlocal pushd %~dp0.. -if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd% +if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD% popd -set IOTDB_CONF=%IOTDB_HOME%\conf -set IOTDB_LOGS=%IOTDB_HOME%\logs - if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.db.tools.TsFileResourcePrinter if NOT DEFINED JAVA_HOME goto :err @REM ----------------------------------------------------------------------------- -@REM JVM Opts we'll use in legacy run or installation -set JAVA_OPTS=-ea^ - -Dlogback.configurationFile="%IOTDB_CONF%\logback.xml"^ - -DIOTDB_HOME="%IOTDB_HOME%"^ - -DTSFILE_HOME="%IOTDB_HOME%"^ - -DIOTDB_CONF="%IOTDB_CONF%" - @REM ***** CLASSPATH library setting ***** @REM Ensure that any user defined CLASSPATH variables are not used on startup set CLASSPATH="%IOTDB_HOME%\lib" -REM For each jar in the IOTDB_HOME lib directory call append to build the CLASSPATH variable. +@REM For each jar in the IOTDB_HOME lib directory call append to build the CLASSPATH variable. for %%i in ("%IOTDB_HOME%\lib\*.jar") do call :append "%%i" -set CLASSPATH=%CLASSPATH% goto okClasspath :append set CLASSPATH=%CLASSPATH%;%1 goto :eof -REM ----------------------------------------------------------------------------- +@REM ----------------------------------------------------------------------------- :okClasspath -rem echo CLASSPATH: %CLASSPATH% -set IOTDB_DATA=%IOTDB_HOME%\data +"%JAVA_HOME%\bin\java" -cp "%CLASSPATH%" %MAIN_CLASS% %* goto finally + :err echo JAVA_HOME environment variable must be set! pause @@ -97,6 +60,4 @@ pause @REM ----------------------------------------------------------------------------- :finally -pause - -ENDLOCAL +ENDLOCAL \ No newline at end of file diff --git a/server/src/assembly/resources/tools/print-tsfile-resource-files.sh b/server/src/assembly/resources/tools/print-tsfile-resource-files.sh index 7de5633886..4ba9c3fa69 100644 --- a/server/src/assembly/resources/tools/print-tsfile-resource-files.sh +++ b/server/src/assembly/resources/tools/print-tsfile-resource-files.sh @@ -50,30 +50,10 @@ CLASSPATH="" for f in ${IOTDB_HOME}/lib/*.jar; do CLASSPATH=${CLASSPATH}":"$f done -classname=org.apache.iotdb.db.tools.TsFileResourcePrinter - -launch_service() -{ - class="$1" - iotdb_parms="-Dlogback.configurationFile=${IOTDB_CONF}/logback.xml" - iotdb_parms="$iotdb_parms -DIOTDB_HOME=${IOTDB_HOME}" - iotdb_parms="$iotdb_parms -DTSFILE_HOME=${IOTDB_HOME}" - iotdb_parms="$iotdb_parms -DIOTDB_CONF=${IOTDB_CONF}" -# iotdb_parms="$iotdb_parms -Dname=iotdb\.IoTDB" - exec "$JAVA" $iotdb_parms $IOTDB_JMX_OPTS $iotdb_parms -cp "$CLASSPATH" "$class" "$WALPATH" - return $? -} +MAIN_CLASS=org.apache.iotdb.db.tools.TsFileResourcePrinter # Start up the service -#launch_service "$classname" - -if [ ! -d ${IOTDB_HOME}/data/wal ]; then - echo "Can't find wal directory." - exit 1; -else - WALPATH=${IOTDB_HOME}/data/wal - launch_service "$classname" -fi +"$JAVA" -cp "$CLASSPATH" "$MAIN_CLASS" "$@" exit $? diff --git a/server/src/assembly/resources/tools/print-tsfile-sketch.bat b/server/src/assembly/resources/tools/print-tsfile-sketch.bat new file mode 100644 index 0000000000..8d3e3cd91e --- /dev/null +++ b/server/src/assembly/resources/tools/print-tsfile-sketch.bat @@ -0,0 +1,64 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM + + +@echo off +echo ```````````````````````` +echo Starting Printing the TsFile Sketch +echo ```````````````````````` + +if "%OS%" == "Windows_NT" setlocal + +pushd %~dp0.. +if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD% +popd + +if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.db.tools.TsFileSketchTool +if NOT DEFINED JAVA_HOME goto :err + +@REM ----------------------------------------------------------------------------- +@REM ***** CLASSPATH library setting ***** +@REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH="%IOTDB_HOME%\lib" + +@REM For each jar in the IOTDB_HOME lib directory call append to build the CLASSPATH variable. +for %%i in ("%IOTDB_HOME%\lib\*.jar") do call :append "%%i" +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1 +goto :eof + +@REM ----------------------------------------------------------------------------- +:okClasspath + +"%JAVA_HOME%\bin\java" -cp "%CLASSPATH%" %MAIN_CLASS% %* + +goto finally + + +:err +echo JAVA_HOME environment variable must be set! +pause + + +@REM ----------------------------------------------------------------------------- +:finally + +ENDLOCAL \ No newline at end of file diff --git a/server/src/assembly/resources/tools/print-tsfile-sketch.sh b/server/src/assembly/resources/tools/print-tsfile-sketch.sh new file mode 100644 index 0000000000..df3f1a0abd --- /dev/null +++ b/server/src/assembly/resources/tools/print-tsfile-sketch.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +echo --------------------- +echo Starting Printing the TsFile Sketch +echo --------------------- + +if [ -z "${IOTDB_HOME}" ]; then + export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)" +fi + +if [ -n "$JAVA_HOME" ]; then + for java in "$JAVA_HOME"/bin/amd64/java "$JAVA_HOME"/bin/java; do + if [ -x "$java" ]; then + JAVA="$java" + break + fi + done +else + JAVA=java +fi + +CLASSPATH="" +for f in ${IOTDB_HOME}/lib/*.jar; do + CLASSPATH=${CLASSPATH}":"$f +done + +MAIN_CLASS=org.apache.iotdb.db.tools.TsFileSketchTool + +"$JAVA" -cp "$CLASSPATH" "$MAIN_CLASS" "$@" +exit $? \ No newline at end of file diff --git a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSketchTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java similarity index 98% rename from example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSketchTool.java rename to server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java index fc20e90336..7847c2b64f 100644 --- a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSketchTool.java +++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java @@ -16,7 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.tsfile; + +package org.apache.iotdb.db.tools; import java.io.FileWriter; import java.io.IOException; @@ -50,6 +51,8 @@ public class TsFileSketchTool { filename = args[0]; outFile = args[1]; } + System.out.println("TsFile path:" + filename); + System.out.println("Sketch save path:" + outFile); PrintWriter pw = new PrintWriter(new FileWriter(outFile)); long length = TSFileFactory.INSTANCE.getFile(filename).length(); printlnBoth(pw, -- GitLab