This is an automated email from the ASF dual-hosted git repository.
arvindsh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/fluo-muchos.git
The following commit(s) were added to refs/heads/master by this push:
new 0f2ba91 Configure Job history server (#327)
0f2ba91 is described below
commit 0f2ba916628b93d5509fbdc9f69029231dcf049d
Author: Karthick Narendran <[email protected]>
AuthorDate: Fri Mar 6 19:44:46 2020 +0000
Configure Job history server (#327)
* Configure Job history server
* Removed 'grep -v grep' from jps
---
ansible/hadoop.yml | 1 +
.../tasks/start-jhs.yml} | 21 ++++++----
ansible/roles/hadoop/templates/mapred-site.xml | 32 +++++++++++++++
ansible/roles/hadoop/templates/yarn-site.xml | 48 ++++++++++++++++++++++
ansible/roles/zookeeper/tasks/start-zookeeper.yml | 6 +++
5 files changed, 100 insertions(+), 8 deletions(-)
diff --git a/ansible/hadoop.yml b/ansible/hadoop.yml
index 3c843b8..c4832ed 100644
--- a/ansible/hadoop.yml
+++ b/ansible/hadoop.yml
@@ -46,3 +46,4 @@
- hosts: resourcemanager
tasks:
- import_tasks: roles/hadoop/tasks/start-yarn.yml
+ - import_tasks: roles/hadoop/tasks/start-jhs.yml
diff --git a/ansible/roles/zookeeper/tasks/start-zookeeper.yml
b/ansible/roles/hadoop/tasks/start-jhs.yml
similarity index 59%
copy from ansible/roles/zookeeper/tasks/start-zookeeper.yml
copy to ansible/roles/hadoop/tasks/start-jhs.yml
index 2bbf0b3..f701f4e 100644
--- a/ansible/roles/zookeeper/tasks/start-zookeeper.yml
+++ b/ansible/roles/hadoop/tasks/start-jhs.yml
@@ -15,11 +15,16 @@
# limitations under the License.
#
-- name: "ensure zookeeper data dir exists"
- file: path={{ default_data_dirs[0] }}/zookeeper state=directory
-- name: "ensure myid file is set"
- template: src=roles/zookeeper/templates/myid dest={{ default_data_dirs[0]
}}/zookeeper/myid
-- name: "start zookeeper"
- shell: "{{ zookeeper_home }}/bin/zkServer.sh start"
- register: zk_start
- changed_when: "'STARTED' in zk_start.stdout"
+- name: Check if JobHistoryServer is running
+ shell: jps | grep "JobHistoryServer"
+ ignore_errors: yes
+ changed_when: false
+ register: jhs_status
+
+- name: Start Job History Server on Hadoop 3.x
+ command: "nohup {{ hadoop_home }}/bin/mapred --daemon start historyserver"
+ when: jhs_status.rc == 1 and hadoop_major_version == '3'
+
+- name: Start Job History Server on Hadoop 2.x
+ command: "nohup {{ hadoop_home }}/sbin/mr-jobhistory-daemon.sh start
historyserver"
+ when: jhs_status.rc == 1 and hadoop_major_version == '2'
diff --git a/ansible/roles/hadoop/templates/mapred-site.xml
b/ansible/roles/hadoop/templates/mapred-site.xml
index 04c9219..2088ce3 100644
--- a/ansible/roles/hadoop/templates/mapred-site.xml
+++ b/ansible/roles/hadoop/templates/mapred-site.xml
@@ -60,4 +60,36 @@
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/common/*,$HADOOP_MAPRED_HOME/share/hadoop/common/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/yarn/*,$HADOOP_MAPRED_HOME/share/hadoop/yarn/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/hdfs/*,$HADOOP_MAPRED_HOME/share/hadoop/hdfs/lib/*,$HADOOP_MAPRED_HOME/share/hadoop/tools/lib/*,${HADOOP_HOME}/share/hadoop/client/*</value>
</property>
{% endif %}
+ <property>
+ <name>mapreduce.jobhistory.address</name>
+ <value>{{ groups['resourcemanager'][0] }}:10020</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.webapp.address</name>
+ <value>{{ groups['resourcemanager'][0] }}:19888</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.done-dir</name>
+ <value>/mr-history/done</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.http.policy</name>
+ <value>HTTP_ONLY</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.intermediate-done-dir</name>
+ <value>/mr-history/tmp</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.recovery.enable</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.recovery.store.class</name>
+
<value>org.apache.hadoop.mapreduce.v2.hs.HistoryServerLeveldbStateStoreService</value>
+ </property>
+ <property>
+ <name>mapreduce.jobhistory.recovery.store.leveldb.path</name>
+ <value>{{ worker_data_dirs[0] }}/hadoop/mapreduce/jhs</value>
+ </property>
</configuration>
diff --git a/ansible/roles/hadoop/templates/yarn-site.xml
b/ansible/roles/hadoop/templates/yarn-site.xml
index 5d9c4d0..b4e03c4 100644
--- a/ansible/roles/hadoop/templates/yarn-site.xml
+++ b/ansible/roles/hadoop/templates/yarn-site.xml
@@ -86,4 +86,52 @@
<value>${HADOOP_HOME}/share/hadoop/tools/lib/*,${HADOOP_HOME}/share/hadoop/hdfs/lib/*,${HADOOP_HOME}/share/hadoop/common/lib/*,${HADOOP_HOME}/share/hadoop/yarn/*,${HADOOP_HOME}/share/hadoop/yarn/lib/*,${HADOOP_HOME}/share/hadoop/hdfs/*,${HADOOP_HOME}/share/hadoop/common/*,${HADOOP_HOME}/share/hadoop/mapreduce/*,${HADOOP_HOME}/share/hadoop/mapreduce/lib/*,${HADOOP_HOME}/share/hadoop/client/*</value>
</property>
{% endif %}
+ <property>
+ <name>yarn.resourcemanager.webapp.address</name>
+ <value>{{ groups['resourcemanager'][0] }}:8088</value>
+ </property>
+ <property>
+ <name>yarn.log.server.url</name>
+ <value>http://{{ groups['resourcemanager'][0]
}}:19888/jobhistory/logs</value>
+ </property>
+ <property>
+ <name>yarn.log-aggregation-enable</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>yarn.log-aggregation.retain-seconds</name>
+ <value>2592000</value>
+ </property>
+ <property>
+ <name>yarn.log.server.web-service.url</name>
+ <value>http://{{ groups['resourcemanager'][0]
}}:8188/ws/v1/applicationhistory</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.log-aggregation.compression-type</name>
+ <value>gz</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.log-aggregation.debug-enabled</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.log-aggregation.num-log-files-per-app</name>
+ <value>30</value>
+ </property>
+ <property>
+
<name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
+ <value>3600</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.log.retain-seconds</name>
+ <value>604800</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.remote-app-log-dir</name>
+ <value>/app-logs</value>
+ </property>
+ <property>
+ <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
+ <value>logs</value>
+ </property>
</configuration>
diff --git a/ansible/roles/zookeeper/tasks/start-zookeeper.yml
b/ansible/roles/zookeeper/tasks/start-zookeeper.yml
index 2bbf0b3..cb2f9dc 100644
--- a/ansible/roles/zookeeper/tasks/start-zookeeper.yml
+++ b/ansible/roles/zookeeper/tasks/start-zookeeper.yml
@@ -19,7 +19,13 @@
file: path={{ default_data_dirs[0] }}/zookeeper state=directory
- name: "ensure myid file is set"
template: src=roles/zookeeper/templates/myid dest={{ default_data_dirs[0]
}}/zookeeper/myid
+- name: Check if Zookeeper is running
+ shell: jps | grep "QuorumPeerMain"
+ ignore_errors: yes
+ changed_when: false
+ register: zookeeper_status
- name: "start zookeeper"
shell: "{{ zookeeper_home }}/bin/zkServer.sh start"
register: zk_start
changed_when: "'STARTED' in zk_start.stdout"
+ when: zookeeper_status.rc == 1