This is an automated email from the ASF dual-hosted git repository.
yuchenhe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
The following commit(s) were added to refs/heads/master by this push:
new 8da45c6 feat(backup): support using hdfs to backup/restore pegasus
tables (#647)
8da45c6 is described below
commit 8da45c6069f59bd78c860caf47b2dec559ed9f2d
Author: Zhang Yifan <[email protected]>
AuthorDate: Tue Dec 1 14:43:23 2020 +0800
feat(backup): support using hdfs to backup/restore pegasus tables (#647)
---
rdsn | 2 +-
scripts/pack_server.sh | 34 +++++++++++++++++++++++++
scripts/travis.sh | 2 ++
src/server/available_detector.cpp | 6 ++---
src/server/config.ini | 8 +++---
src/server/config.min.ini | 8 +++---
src/server/pegasus_manual_compact_service.cpp | 4 +--
src/server/test/config.ini | 10 +++-----
src/server/test/manual_compact_service_test.cpp | 3 ++-
src/shell/CMakeLists.txt | 2 ++
src/shell/command_helper.h | 2 +-
11 files changed, 58 insertions(+), 23 deletions(-)
diff --git a/rdsn b/rdsn
index 501fe55..64b9e11 160000
--- a/rdsn
+++ b/rdsn
@@ -1 +1 @@
-Subproject commit 501fe552f960b6afa1e1dd4b5d1bf33c87379470
+Subproject commit 64b9e11703aea7acfa771037cbc3ad8b363abfaa
diff --git a/scripts/pack_server.sh b/scripts/pack_server.sh
index 0dbc08d..c78471d 100755
--- a/scripts/pack_server.sh
+++ b/scripts/pack_server.sh
@@ -24,6 +24,7 @@ function usage()
echo " -h"
echo " -p|--update-package-template <minos-package-template-file-path>"
echo " -g|--custom-gcc"
+ echo " -k|--keytab-file"
exit 0
}
@@ -79,6 +80,7 @@ if [ -n "$MINOS_CONFIG_FILE" ]; then
fi
custom_gcc="false"
+keytab_file=""
while [[ $# > 0 ]]; do
option_key="$1"
@@ -93,6 +95,10 @@ while [[ $# > 0 ]]; do
-h|--help)
usage
;;
+ -k|--keytab-file)
+ keytab_file="$2"
+ shift
+ ;;
esac
shift
done
@@ -105,6 +111,7 @@ copy_file ./DSN_ROOT/lib/libdsn_utils.so ${pack}/bin
copy_file ./rdsn/thirdparty/output/lib/libPoco*.so.48 ${pack}/bin
copy_file ./rdsn/thirdparty/output/lib/libtcmalloc_and_profiler.so.4
${pack}/bin
copy_file ./rdsn/thirdparty/output/lib/libboost*.so.1.69.0 ${pack}/bin
+copy_file ./rdsn/thirdparty/output/lib/libhdfs* ${pack}/bin
copy_file ./scripts/sendmail.sh ${pack}/bin
copy_file ./src/server/config.ini ${pack}/bin
@@ -116,6 +123,33 @@ copy_file `get_system_lib server aio`
${pack}/bin/`get_system_libname server aio
copy_file `get_system_lib server zstd` ${pack}/bin/`get_system_libname server
zstd`
copy_file `get_system_lib server lz4` ${pack}/bin/`get_system_libname server
lz4`
+# Pack hadoop-related files.
+# If you want to use hdfs service to backup/restore/bulkload pegasus tables,
+# you need to set env ${HADOOP_HOME}, edit
${HADOOP_HOME}/etc/hadoop/core-site.xml,
+# and specify the keytab file.
+if [ -n "$HADOOP_HOME" ] && [ -n "$keytab_file" ]; then
+ mkdir -p ${pack}/hadoop
+ copy_file $keytab_file ${pack}/hadoop
+ copy_file ${HADOOP_HOME}/etc/hadoop/core-site.xml ${pack}/hadoop
+ if [ -d $HADOOP_HOME/share/hadoop ]; then
+ for f in ${HADOOP_HOME}/share/hadoop/common/lib/*.jar; do
+ copy_file $f ${pack}/hadoop
+ done
+ for f in ${HADOOP_HOME}/share/hadoop/common/*.jar; do
+ copy_file $f ${pack}/hadoop
+ done
+ for f in ${HADOOP_HOME}/share/hadoop/hdfs/lib/*.jar; do
+ copy_file $f ${pack}/hadoop
+ done
+ for f in ${HADOOP_HOME}/share/hadoop/hdfs/*.jar; do
+ copy_file $f ${pack}/hadoop
+ done
+ fi
+else
+ echo "Couldn't find env ${HADOOP_HOME} or no valid keytab file was
specified,
+ hadoop-related files were not packed."
+fi
+
DISTRIB_ID=$(cat /etc/*-release | grep DISTRIB_ID | awk -F'=' '{print $2}')
DISTRIB_RELEASE=$(cat /etc/*-release | grep DISTRIB_RELEASE | awk -F'='
'{print $2}')
if [ -n "$DISTRIB_ID" ] && [ -n "$DISTRIB_RELEASE" ]; then
diff --git a/scripts/travis.sh b/scripts/travis.sh
index 7300a43..557ce1d 100755
--- a/scripts/travis.sh
+++ b/scripts/travis.sh
@@ -32,6 +32,8 @@ if [ "$modified" ]; then
exit 1
fi
+export LD_LIBRARY_PATH=/usr/local/lib/jvm/openjdk11/lib/server:$LD_LIBRARY_PATH
+
"${root}"/run.sh build -c --skip_thirdparty --disable_gperf && ./run.sh test
--on_travis
ret=$?
if [ $ret ]; then
diff --git a/src/server/available_detector.cpp
b/src/server/available_detector.cpp
index 6a6aefb..f19bf95 100644
--- a/src/server/available_detector.cpp
+++ b/src/server/available_detector.cpp
@@ -19,11 +19,11 @@
#include "available_detector.h"
-#include <iomanip>
#include <algorithm>
-#include <sstream>
#include <dsn/dist/replication/duplication_common.h>
-#include <dsn/utility/time_utils.h>
+#include <dsn/utils/time_utils.h>
+#include <iomanip>
+#include <sstream>
#include "base/pegasus_key_schema.h"
#include "result_writer.h"
diff --git a/src/server/config.ini b/src/server/config.ini
index b4ec419..5dbda09 100644
--- a/src/server/config.ini
+++ b/src/server/config.ini
@@ -7,7 +7,7 @@
name = meta
arguments =
ports = 34601
- pools =
THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_META_STATE,THREAD_POOL_FD,THREAD_POOL_DLOCK,THREAD_POOL_FDS_SERVICE
+ pools =
THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_META_STATE,THREAD_POOL_FD,THREAD_POOL_DLOCK,THREAD_POOL_BLOCK_SERVICE
run = true
count = 1
@@ -16,7 +16,7 @@
name = replica
arguments =
ports = 34801
- pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_FDS_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_INGESTION,THREAD_POOL_SLOG,THREAD_POOL_PLOG
+ pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_BLOCK_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_INGESTION,THREAD_POOL_SLOG,THREAD_POOL_PLOG
run = true
count = 1
@@ -130,8 +130,8 @@
worker_priority = THREAD_xPRIORITY_NORMAL
worker_count = 8
-[threadpool.THREAD_POOL_FDS_SERVICE]
- name = fds_service
+[threadpool.THREAD_POOL_BLOCK_SERVICE]
+ name = block_service
worker_count = 8
worker_priority = THREAD_xPRIORITY_NORMAL
worker_count = 8
diff --git a/src/server/config.min.ini b/src/server/config.min.ini
index 9a4d805..a12fe8d 100644
--- a/src/server/config.min.ini
+++ b/src/server/config.min.ini
@@ -6,13 +6,13 @@
type = meta
name = meta
ports = @META_PORT@
- pools =
THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_META_STATE,THREAD_POOL_FD,THREAD_POOL_DLOCK,THREAD_POOL_LOCAL_SERVICE
+ pools =
THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_META_STATE,THREAD_POOL_FD,THREAD_POOL_DLOCK,THREAD_POOL_BLOCK_SERVICE
[apps.replica]
type = replica
name = replica
ports = @REPLICA_PORT@
- pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_LOCAL_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_INGESTION,THREAD_POOL_SLOG,THREAD_POOL_PLOG
+ pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_BLOCK_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_INGESTION,THREAD_POOL_SLOG,THREAD_POOL_PLOG
[apps.collector]
name = collector
@@ -76,8 +76,8 @@
name = rep_long
worker_count = 2
-[threadpool.THREAD_POOL_LOCAL_SERVICE]
- name = local_service
+[threadpool.THREAD_POOL_BLOCK_SERVICE]
+ name = block_service
worker_count = 1
[threadpool.THREAD_POOL_COMPACT]
diff --git a/src/server/pegasus_manual_compact_service.cpp
b/src/server/pegasus_manual_compact_service.cpp
index 5aa2adf..f20f0ca 100644
--- a/src/server/pegasus_manual_compact_service.cpp
+++ b/src/server/pegasus_manual_compact_service.cpp
@@ -19,11 +19,11 @@
#include "pegasus_manual_compact_service.h"
-#include <dsn/utility/string_conv.h>
-#include <dsn/utility/time_utils.h>
#include <dsn/dist/fmt_logging.h>
#include <dsn/dist/replication/replication.codes.h>
#include <dsn/tool-api/async_calls.h>
+#include <dsn/utility/string_conv.h>
+#include <dsn/utils/time_utils.h>
#include "base/pegasus_const.h"
#include "pegasus_server_impl.h"
diff --git a/src/server/test/config.ini b/src/server/test/config.ini
index ab557e7..2f8d405 100644
--- a/src/server/test/config.ini
+++ b/src/server/test/config.ini
@@ -10,7 +10,7 @@ type = replica
name = replica
arguments =
ports = @REPLICA_PORT@
-pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_LOCAL_SERVICE,THREAD_POOL_FDS_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_SLOG,THREAD_POOL_PLOG
+pools =
THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_BLOCK_SERVICE,THREAD_POOL_COMPACT,THREAD_POOL_SLOG,THREAD_POOL_PLOG
run = true
count = 1
@@ -97,12 +97,8 @@ partitioned = false
worker_priority = THREAD_xPRIORITY_NORMAL
worker_count = 4
-[threadpool.THREAD_POOL_LOCAL_SERVICE]
-name = local_service
-worker_count = 1
-
-[threadpool.THREAD_POOL_FDS_SERVICE]
-name = fds_service
+[threadpool.THREAD_POOL_BLOCK_SERVICE]
+name = block_service
worker_count = 1
[task..default]
diff --git a/src/server/test/manual_compact_service_test.cpp
b/src/server/test/manual_compact_service_test.cpp
index 9cd1d24..210075c 100644
--- a/src/server/test/manual_compact_service_test.cpp
+++ b/src/server/test/manual_compact_service_test.cpp
@@ -17,9 +17,10 @@
* under the License.
*/
+#include <dsn/utils/time_utils.h>
+
#include "pegasus_server_test_base.h"
#include "server/pegasus_manual_compact_service.h"
-#include <dsn/utility/time_utils.h>
namespace pegasus {
namespace server {
diff --git a/src/shell/CMakeLists.txt b/src/shell/CMakeLists.txt
index d5bf429..7a7a2af 100644
--- a/src/shell/CMakeLists.txt
+++ b/src/shell/CMakeLists.txt
@@ -36,6 +36,7 @@ set(MY_PROJ_LIBS
dsn_utils
dsn.block_service.local
dsn.block_service.fds
+ dsn.block_service.hdfs
dsn.block_service
dsn.failure_detector
pegasus_client_static
@@ -47,6 +48,7 @@ set(MY_PROJ_LIBS
pegasus_geo_lib
RocksDB::rocksdb
s2
+ hdfs
)
set(MY_BINPLACES "${CMAKE_CURRENT_SOURCE_DIR}/config.ini")
diff --git a/src/shell/command_helper.h b/src/shell/command_helper.h
index 93aaf41..65403e7 100644
--- a/src/shell/command_helper.h
+++ b/src/shell/command_helper.h
@@ -35,7 +35,7 @@
#include <dsn/dist/replication/mutation_log_tool.h>
#include <dsn/perf_counter/perf_counter_utils.h>
#include <dsn/utility/string_view.h>
-#include <dsn/utility/time_utils.h>
+#include <dsn/utils/time_utils.h>
#include <rrdb/rrdb.code.definition.h>
#include <rrdb/rrdb_types.h>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]