HDDS-1972. Provide example ha proxy with multiple s3 servers back end. (#1304)
This commit is contained in:
parent
360a96f342
commit
4f925afa82
|
@ -0,0 +1,18 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
HDDS_VERSION=${hdds.version}
|
||||||
|
HADOOP_RUNNER_VERSION=${docker.ozone-runner.version}
|
|
@ -0,0 +1,83 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
s3g:
|
||||||
|
image: haproxy:latest
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
- ./haproxy-conf/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
|
||||||
|
ports:
|
||||||
|
- 9878:9878
|
||||||
|
datanode:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9864
|
||||||
|
command: ["ozone","datanode"]
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
om:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9874:9874
|
||||||
|
environment:
|
||||||
|
ENSURE_OM_INITIALIZED: /data/metadata/om/current/VERSION
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
command: ["ozone","om"]
|
||||||
|
scm:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9876:9876
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
environment:
|
||||||
|
ENSURE_SCM_INITIALIZED: /data/metadata/scm/current/VERSION
|
||||||
|
command: ["ozone","scm"]
|
||||||
|
s3g1:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9879:9878
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
command: ["ozone","s3g"]
|
||||||
|
s3g2:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9880:9878
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
command: ["ozone","s3g"]
|
||||||
|
s3g3:
|
||||||
|
image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
|
||||||
|
volumes:
|
||||||
|
- ../..:/opt/hadoop
|
||||||
|
ports:
|
||||||
|
- 9881:9878
|
||||||
|
env_file:
|
||||||
|
- ./docker-config
|
||||||
|
command: ["ozone","s3g"]
|
|
@ -0,0 +1,79 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
OZONE-SITE.XML_ozone.om.address=om
|
||||||
|
OZONE-SITE.XML_ozone.scm.names=scm
|
||||||
|
OZONE-SITE.XML_ozone.enabled=true
|
||||||
|
OZONE-SITE.XML_ozone.scm.datanode.id.dir=/data
|
||||||
|
OZONE-SITE.XML_ozone.scm.block.client.address=scm
|
||||||
|
OZONE-SITE.XML_ozone.metadata.dirs=/data/metadata
|
||||||
|
OZONE-SITE.XML_ozone.scm.client.address=scm
|
||||||
|
OZONE-SITE.XML_ozone.replication=1
|
||||||
|
OZONE-SITE.XML_hdds.datanode.dir=/data/hdds
|
||||||
|
|
||||||
|
HDFS-SITE.XML_rpc.metrics.quantile.enable=true
|
||||||
|
HDFS-SITE.XML_rpc.metrics.percentiles.intervals=60,300
|
||||||
|
LOG4J.PROPERTIES_log4j.rootLogger=INFO, stdout
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
||||||
|
LOG4J.PROPERTIES_log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
|
||||||
|
LOG4J.PROPERTIES_log4j.logger.org.apache.ratis.conf.ConfUtils=WARN
|
||||||
|
LOG4J.PROPERTIES_log4j.logger.org.apache.hadoop.security.ShellBasedUnixGroupsMapping=ERROR
|
||||||
|
LOG4J.PROPERTIES_log4j.logger.http.requests.s3gateway=INFO,s3gatewayrequestlog
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.s3gatewayrequestlog=org.apache.hadoop.http.HttpRequestLogAppender
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.s3gatewayrequestlog.Filename=/tmp/jetty-s3gateway-yyyy_mm_dd.log
|
||||||
|
LOG4J.PROPERTIES_log4j.appender.s3gatewayrequestlog.RetainDays=3
|
||||||
|
|
||||||
|
#Enable this variable to print out all hadoop rpc traffic to the stdout. See http://byteman.jboss.org/ to define your own instrumentation.
|
||||||
|
#BYTEMAN_SCRIPT_URL=https://raw.githubusercontent.com/apache/hadoop/trunk/dev-support/byteman/hadooprpc.btm
|
||||||
|
|
||||||
|
#LOG4J2.PROPERTIES_* are for Ozone Audit Logging
|
||||||
|
LOG4J2.PROPERTIES_monitorInterval=30
|
||||||
|
LOG4J2.PROPERTIES_filter=read,write
|
||||||
|
LOG4J2.PROPERTIES_filter.read.type=MarkerFilter
|
||||||
|
LOG4J2.PROPERTIES_filter.read.marker=READ
|
||||||
|
LOG4J2.PROPERTIES_filter.read.onMatch=DENY
|
||||||
|
LOG4J2.PROPERTIES_filter.read.onMismatch=NEUTRAL
|
||||||
|
LOG4J2.PROPERTIES_filter.write.type=MarkerFilter
|
||||||
|
LOG4J2.PROPERTIES_filter.write.marker=WRITE
|
||||||
|
LOG4J2.PROPERTIES_filter.write.onMatch=NEUTRAL
|
||||||
|
LOG4J2.PROPERTIES_filter.write.onMismatch=NEUTRAL
|
||||||
|
LOG4J2.PROPERTIES_appenders=console, rolling
|
||||||
|
LOG4J2.PROPERTIES_appender.console.type=Console
|
||||||
|
LOG4J2.PROPERTIES_appender.console.name=STDOUT
|
||||||
|
LOG4J2.PROPERTIES_appender.console.layout.type=PatternLayout
|
||||||
|
LOG4J2.PROPERTIES_appender.console.layout.pattern=%d{DEFAULT} | %-5level | %c{1} | %msg | %throwable{3} %n
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.type=RollingFile
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.name=RollingFile
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.fileName=${sys:hadoop.log.dir}/om-audit-${hostName}.log
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.filePattern=${sys:hadoop.log.dir}/om-audit-${hostName}-%d{yyyy-MM-dd-HH-mm-ss}-%i.log.gz
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.layout.type=PatternLayout
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.layout.pattern=%d{DEFAULT} | %-5level | %c{1} | %msg | %throwable{3} %n
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.policies.type=Policies
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.policies.time.interval=86400
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
|
||||||
|
LOG4J2.PROPERTIES_appender.rolling.policies.size.size=64MB
|
||||||
|
LOG4J2.PROPERTIES_loggers=audit
|
||||||
|
LOG4J2.PROPERTIES_logger.audit.type=AsyncLogger
|
||||||
|
LOG4J2.PROPERTIES_logger.audit.name=OMAudit
|
||||||
|
LOG4J2.PROPERTIES_logger.audit.level=INFO
|
||||||
|
LOG4J2.PROPERTIES_logger.audit.appenderRefs=rolling
|
||||||
|
LOG4J2.PROPERTIES_logger.audit.appenderRef.file.ref=RollingFile
|
||||||
|
LOG4J2.PROPERTIES_rootLogger.level=INFO
|
||||||
|
LOG4J2.PROPERTIES_rootLogger.appenderRefs=stdout
|
||||||
|
LOG4J2.PROPERTIES_rootLogger.appenderRef.stdout.ref=STDOUT
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Simple configuration for an HTTP proxy listening on port 9878 on all
|
||||||
|
# interfaces and forwarding requests to a multiple multiple S3 servers in round
|
||||||
|
# robin fashion.
|
||||||
|
global
|
||||||
|
daemon
|
||||||
|
maxconn 256
|
||||||
|
|
||||||
|
defaults
|
||||||
|
mode http
|
||||||
|
timeout connect 5000ms
|
||||||
|
timeout client 50000ms
|
||||||
|
timeout server 50000ms
|
||||||
|
|
||||||
|
frontend http-in
|
||||||
|
bind *:9878
|
||||||
|
default_backend servers
|
||||||
|
|
||||||
|
backend servers
|
||||||
|
balance roundrobin
|
||||||
|
server server1 s3g1:9878 maxconn 32
|
||||||
|
server server2 s3g2:9878 maxconn 32
|
||||||
|
server server3 s3g3:9878 maxconn 32
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
COMPOSE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
export COMPOSE_DIR
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "$COMPOSE_DIR/../testlib.sh"
|
||||||
|
|
||||||
|
start_docker_env
|
||||||
|
|
||||||
|
execute_robot_test scm basic/basic.robot
|
||||||
|
|
||||||
|
stop_docker_env
|
||||||
|
|
||||||
|
generate_report
|
Loading…
Reference in New Issue