You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by iw...@apache.org on 2021/07/27 22:05:57 UTC

[bigtop] branch master updated: BIGTOP-3574. Starting Elasticsearch fails on ppc64le. (#805)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new b612407  BIGTOP-3574. Starting Elasticsearch fails on ppc64le. (#805)
b612407 is described below

commit b612407a3e92fd164bce89d7519889943d8c2994
Author: Kengo Seki <se...@apache.org>
AuthorDate: Wed Jul 28 07:05:49 2021 +0900

    BIGTOP-3574. Starting Elasticsearch fails on ppc64le. (#805)
---
 bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml             |  3 +++
 bigtop-deploy/puppet/modules/elasticsearch/manifests/init.pp   |  2 ++
 .../puppet/modules/elasticsearch/templates/elasticsearch.yml   |  4 ++++
 bigtop-tests/smoke-tests/kibana/TestKibanaSmoke.groovy         |  2 +-
 provisioner/docker/docker-hadoop.sh                            | 10 ++++++++++
 5 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml b/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
index 81e51bd..11caf76 100644
--- a/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
+++ b/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
@@ -209,3 +209,6 @@ gpdb::common::master_db_port: "5432"
 gpdb::common::segment_db_port_prefix: "4000"
 
 ambari::agent::server_host: "%{hiera('bigtop::hadoop_head_node')}"
+
+# Elasticsearch
+elasticsearch::bootstrap::system_call_filter: true
diff --git a/bigtop-deploy/puppet/modules/elasticsearch/manifests/init.pp b/bigtop-deploy/puppet/modules/elasticsearch/manifests/init.pp
index d73ecd7..0c8cf00 100644
--- a/bigtop-deploy/puppet/modules/elasticsearch/manifests/init.pp
+++ b/bigtop-deploy/puppet/modules/elasticsearch/manifests/init.pp
@@ -26,6 +26,8 @@ class elasticsearch {
     $elasticsearch_cluster_nodes = hiera('hadoop_cluster_node::cluster_nodes')
     # minimum number of eligible master nodes, usually calced with N/2+1
     $elasticsearch_cluster_min_master = size($elasticsearch_cluster_nodes)/2 + 1
+    # check if system_call_filter is available during bootstrap
+    $elasticsearch_bootstrap_system_call_filter = hiera('elasticsearch::bootstrap::system_call_filter')
 
     # set values in elasticsearch.yaml
     file { "/etc/elasticsearch/conf/elasticsearch.yml":
diff --git a/bigtop-deploy/puppet/modules/elasticsearch/templates/elasticsearch.yml b/bigtop-deploy/puppet/modules/elasticsearch/templates/elasticsearch.yml
index 0ca0f8c..df9ee60 100644
--- a/bigtop-deploy/puppet/modules/elasticsearch/templates/elasticsearch.yml
+++ b/bigtop-deploy/puppet/modules/elasticsearch/templates/elasticsearch.yml
@@ -100,3 +100,7 @@ gateway.recover_after_nodes: <%= @elasticsearch_cluster_min_master %>
 # Require explicit names when deleting indices:
 #
 #action.destructive_requires_name: true
+
+# Disable this setting at your own risk to run ES on the platform which is not officially supported, e.g., ppc64le.
+# See https://www.elastic.co/guide/en/elasticsearch/reference/5.6/system-call-filter-check.html for details.
+bootstrap.system_call_filter: <%= @elasticsearch_bootstrap_system_call_filter %>
diff --git a/bigtop-tests/smoke-tests/kibana/TestKibanaSmoke.groovy b/bigtop-tests/smoke-tests/kibana/TestKibanaSmoke.groovy
index b09e192..84ec4ee 100644
--- a/bigtop-tests/smoke-tests/kibana/TestKibanaSmoke.groovy
+++ b/bigtop-tests/smoke-tests/kibana/TestKibanaSmoke.groovy
@@ -32,7 +32,7 @@ class TestKibanaSmoke {
   private static String KIBANA_HOME = System.getenv("KIBANA_HOME");
 
   static final String KIBANA_START =  KIBANA_HOME + "/bin/start-kibana;"
-  static final String WAIT_FOR_COMPLETION =  "sleep 10;"
+  static final String WAIT_FOR_COMPLETION =  "sleep 60;"
   static final String GET_KIBANA_STATUS =  "curl -i localhost:5601;"
 
   @Test
diff --git a/provisioner/docker/docker-hadoop.sh b/provisioner/docker/docker-hadoop.sh
index 399a4a4..f5a1db0 100755
--- a/provisioner/docker/docker-hadoop.sh
+++ b/provisioner/docker/docker-hadoop.sh
@@ -145,6 +145,15 @@ generate-config() {
     cat $BIGTOP_PUPPET_DIR/hiera.yaml >> ./config/hiera.yaml
     cp -vfr $BIGTOP_PUPPET_DIR/hieradata ./config/
 
+    # A workaround for starting Elasticsearch on ppc64le.
+    # See BIGTOP-3574 for details.
+    running_arch=$(uname -m)
+    if [ "ppc64le" == ${running_arch} ]; then
+        elasticsearch_bootstrap_system_call_filter=false
+    else
+        elasticsearch_bootstrap_system_call_filter=true
+    fi
+
     # Using FairScheduler instead of CapacityScheduler here is a workaround for BIGTOP-3406.
     # Due to the default setting of the yarn.scheduler.capacity.maximum-am-resource-percent
     # property defined in capacity-scheduler.xml (=0.1), some oozie jobs are not assigned
@@ -158,6 +167,7 @@ bigtop::bigtop_repo_gpg_check: $gpg_check
 hadoop_cluster_node::cluster_components: $3
 hadoop_cluster_node::cluster_nodes: [$node_list]
 hadoop::common_yarn::yarn_resourcemanager_scheduler_class: org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
+elasticsearch::bootstrap::system_call_filter: $elasticsearch_bootstrap_system_call_filter
 EOF
 }