AgentConfig_windows.py 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. #!/usr/bin/env python
  2. '''
  3. Licensed to the Apache Software Foundation (ASF) under one
  4. or more contributor license agreements. See the NOTICE file
  5. distributed with this work for additional information
  6. regarding copyright ownership. The ASF licenses this file
  7. to you under the Apache License, Version 2.0 (the
  8. "License"); you may not use this file except in compliance
  9. with the License. You may obtain a copy of the License at
  10. http://www.apache.org/licenses/LICENSE-2.0
  11. Unless required by applicable law or agreed to in writing, software
  12. distributed under the License is distributed on an "AS IS" BASIS,
  13. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. See the License for the specific language governing permissions and
  15. limitations under the License.
  16. '''
  17. import os
  18. content = """
  19. [server]
  20. hostname=localhost
  21. url_port=8440
  22. secured_url_port=8441
  23. [agent]
  24. prefix=\\tmp\\ambari-agent
  25. data_cleanup_interval=86400
  26. data_cleanup_max_age=2592000
  27. ping_port=8670
  28. cache_dir=\\var\\lib\\ambari-agent\\cache
  29. [services]
  30. [python]
  31. custom_actions_dir = \\var\\lib\\ambari-agent\\resources\\custom_actions
  32. [command]
  33. maxretries=2
  34. sleepBetweenRetries=1
  35. [security]
  36. keysdir=\\tmp\\ambari-agent
  37. server_crt=ca.crt
  38. passphrase_env_var_name=AMBARI_PASSPHRASE
  39. [heartbeat]
  40. state_interval = 6
  41. dirs=\\etc\\hadoop,\\etc\\hadoop\\conf,\\var\\run\\hadoop,\\var\\log\\hadoop
  42. rpms=glusterfs,openssl,wget,net-snmp,ntpd,ganglia,nagios,glusterfs
  43. log_lines_count=300
  44. """
  45. imports = [
  46. "hdp\\manifests\\*.pp",
  47. "hdp-hadoop\\manifests\\*.pp",
  48. "hdp-hbase\\manifests\\*.pp",
  49. "hdp-zookeeper\\manifests\\*.pp",
  50. "hdp-oozie\\manifests\\*.pp",
  51. "hdp-pig\\manifests\\*.pp",
  52. "hdp-sqoop\\manifests\\*.pp",
  53. "hdp-templeton\\manifests\\*.pp",
  54. "hdp-hive\\manifests\\*.pp",
  55. "hdp-hcat\\manifests\\*.pp",
  56. "hdp-mysql\\manifests\\*.pp",
  57. "hdp-monitor-webserver\\manifests\\*.pp",
  58. "hdp-repos\\manifests\\*.pp"
  59. ]
  60. rolesToClass = {
  61. 'GLUSTERFS': 'hdp-hadoop::glusterfs',
  62. 'GLUSTERFS_CLIENT': 'hdp-hadoop::glusterfs_client',
  63. 'GLUSTERFS_SERVICE_CHECK': 'hdp-hadoop::glusterfs_service_check',
  64. 'NAMENODE': 'hdp-hadoop::namenode',
  65. 'DATANODE': 'hdp-hadoop::datanode',
  66. 'SECONDARY_NAMENODE': 'hdp-hadoop::snamenode',
  67. 'JOBTRACKER': 'hdp-hadoop::jobtracker',
  68. 'TASKTRACKER': 'hdp-hadoop::tasktracker',
  69. 'RESOURCEMANAGER': 'hdp-yarn::resourcemanager',
  70. 'NODEMANAGER': 'hdp-yarn::nodemanager',
  71. 'HISTORYSERVER': 'hdp-yarn::historyserver',
  72. 'YARN_CLIENT': 'hdp-yarn::yarn_client',
  73. 'HDFS_CLIENT': 'hdp-hadoop::client',
  74. 'MAPREDUCE_CLIENT': 'hdp-hadoop::client',
  75. 'MAPREDUCE2_CLIENT': 'hdp-yarn::mapreducev2_client',
  76. 'ZOOKEEPER_SERVER': 'hdp-zookeeper',
  77. 'ZOOKEEPER_CLIENT': 'hdp-zookeeper::client',
  78. 'HBASE_MASTER': 'hdp-hbase::master',
  79. 'HBASE_REGIONSERVER': 'hdp-hbase::regionserver',
  80. 'HBASE_CLIENT': 'hdp-hbase::client',
  81. 'PIG': 'hdp-pig',
  82. 'SQOOP': 'hdp-sqoop',
  83. 'OOZIE_SERVER': 'hdp-oozie::server',
  84. 'OOZIE_CLIENT': 'hdp-oozie::client',
  85. 'HIVE_CLIENT': 'hdp-hive::client',
  86. 'HCAT': 'hdp-hcat',
  87. 'HIVE_SERVER': 'hdp-hive::server',
  88. 'HIVE_METASTORE': 'hdp-hive::metastore',
  89. 'MYSQL_SERVER': 'hdp-mysql::server',
  90. 'WEBHCAT_SERVER': 'hdp-templeton::server',
  91. 'DASHBOARD': 'hdp-dashboard',
  92. 'NAGIOS_SERVER': 'hdp-nagios::server',
  93. 'GANGLIA_SERVER': 'hdp-ganglia::server',
  94. 'GANGLIA_MONITOR': 'hdp-ganglia::monitor',
  95. 'HTTPD': 'hdp-monitor-webserver',
  96. 'HUE_SERVER': 'hdp-hue::server',
  97. 'HDFS_SERVICE_CHECK': 'hdp-hadoop::hdfs::service_check',
  98. 'MAPREDUCE_SERVICE_CHECK': 'hdp-hadoop::mapred::service_check',
  99. 'MAPREDUCE2_SERVICE_CHECK': 'hdp-yarn::mapred2::service_check',
  100. 'ZOOKEEPER_SERVICE_CHECK': 'hdp-zookeeper::zookeeper::service_check',
  101. 'ZOOKEEPER_QUORUM_SERVICE_CHECK': 'hdp-zookeeper::quorum::service_check',
  102. 'HBASE_SERVICE_CHECK': 'hdp-hbase::hbase::service_check',
  103. 'HIVE_SERVICE_CHECK': 'hdp-hive::hive::service_check',
  104. 'HCAT_SERVICE_CHECK': 'hdp-hcat::hcat::service_check',
  105. 'OOZIE_SERVICE_CHECK': 'hdp-oozie::oozie::service_check',
  106. 'PIG_SERVICE_CHECK': 'hdp-pig::pig::service_check',
  107. 'SQOOP_SERVICE_CHECK': 'hdp-sqoop::sqoop::service_check',
  108. 'WEBHCAT_SERVICE_CHECK': 'hdp-templeton::templeton::service_check',
  109. 'DASHBOARD_SERVICE_CHECK': 'hdp-dashboard::dashboard::service_check',
  110. 'DECOMMISSION_DATANODE': 'hdp-hadoop::hdfs::decommission',
  111. 'HUE_SERVICE_CHECK': 'hdp-hue::service_check',
  112. 'RESOURCEMANAGER_SERVICE_CHECK': 'hdp-yarn::resourcemanager::service_check',
  113. 'HISTORYSERVER_SERVICE_CHECK': 'hdp-yarn::historyserver::service_check',
  114. 'TEZ_CLIENT': 'hdp-tez::tez_client',
  115. 'YARN_SERVICE_CHECK': 'hdp-yarn::yarn::service_check',
  116. 'FLUME_SERVER': 'hdp-flume',
  117. 'JOURNALNODE': 'hdp-hadoop::journalnode',
  118. 'ZKFC': 'hdp-hadoop::zkfc'
  119. }
  120. serviceStates = {
  121. 'START': 'running',
  122. 'INSTALL': 'installed_and_configured',
  123. 'STOP': 'stopped'
  124. }
  125. servicesToPidNames = {
  126. 'GLUSTERFS' : 'glusterd.pid$',
  127. 'NAMENODE': 'hadoop-{USER}-namenode.pid$',
  128. 'SECONDARY_NAMENODE': 'hadoop-{USER}-secondarynamenode.pid$',
  129. 'DATANODE': 'hadoop-{USER}-datanode.pid$',
  130. 'JOBTRACKER': 'hadoop-{USER}-jobtracker.pid$',
  131. 'TASKTRACKER': 'hadoop-{USER}-tasktracker.pid$',
  132. 'RESOURCEMANAGER': 'yarn-{USER}-resourcemanager.pid$',
  133. 'NODEMANAGER': 'yarn-{USER}-nodemanager.pid$',
  134. 'HISTORYSERVER': 'mapred-{USER}-historyserver.pid$',
  135. 'JOURNALNODE': 'hadoop-{USER}-journalnode.pid$',
  136. 'ZKFC': 'hadoop-{USER}-zkfc.pid$',
  137. 'OOZIE_SERVER': 'oozie.pid',
  138. 'ZOOKEEPER_SERVER': 'zookeeper_server.pid',
  139. 'FLUME_SERVER': 'flume-node.pid',
  140. 'TEMPLETON_SERVER': 'templeton.pid',
  141. 'NAGIOS_SERVER': 'nagios.pid',
  142. 'GANGLIA_SERVER': 'gmetad.pid',
  143. 'GANGLIA_MONITOR': 'gmond.pid',
  144. 'HBASE_MASTER': 'hbase-{USER}-master.pid',
  145. 'HBASE_REGIONSERVER': 'hbase-{USER}-regionserver.pid',
  146. 'HCATALOG_SERVER': 'webhcat.pid',
  147. 'KERBEROS_SERVER': 'kadmind.pid',
  148. 'HIVE_SERVER': 'hive-server.pid',
  149. 'HIVE_METASTORE': 'hive.pid',
  150. 'MYSQL_SERVER': 'mysqld.pid',
  151. 'HUE_SERVER': '\\var\\run\\hue\\supervisor.pid',
  152. 'WEBHCAT_SERVER': 'webhcat.pid',
  153. }
  154. #Each service, which's pid depends on user should provide user mapping
  155. servicesToLinuxUser = {
  156. 'NAMENODE': 'hdfs_user',
  157. 'SECONDARY_NAMENODE': 'hdfs_user',
  158. 'DATANODE': 'hdfs_user',
  159. 'JOURNALNODE': 'hdfs_user',
  160. 'ZKFC': 'hdfs_user',
  161. 'JOBTRACKER': 'mapred_user',
  162. 'TASKTRACKER': 'mapred_user',
  163. 'RESOURCEMANAGER': 'yarn_user',
  164. 'NODEMANAGER': 'yarn_user',
  165. 'HISTORYSERVER': 'mapred_user',
  166. 'HBASE_MASTER': 'hbase_user',
  167. 'HBASE_REGIONSERVER': 'hbase_user',
  168. }
  169. pidPathVars = [
  170. {'var' : 'glusterfs_pid_dir_prefix',
  171. 'defaultValue' : '\\var\\run'},
  172. {'var' : 'hadoop_pid_dir_prefix',
  173. 'defaultValue' : '\\var\\run\\hadoop'},
  174. {'var' : 'hadoop_pid_dir_prefix',
  175. 'defaultValue' : '\\var\\run\\hadoop'},
  176. {'var' : 'ganglia_runtime_dir',
  177. 'defaultValue' : '\\var\\run\\ganglia\\hdp'},
  178. {'var' : 'hbase_pid_dir',
  179. 'defaultValue' : '\\var\\run\\hbase'},
  180. {'var' : '',
  181. 'defaultValue' : '\\var\\run\\nagios'},
  182. {'var' : 'zk_pid_dir',
  183. 'defaultValue' : '\\var\\run\\zookeeper'},
  184. {'var' : 'oozie_pid_dir',
  185. 'defaultValue' : '\\var\\run\\oozie'},
  186. {'var' : 'hcat_pid_dir',
  187. 'defaultValue' : '\\var\\run\\webhcat'},
  188. {'var' : 'hive_pid_dir',
  189. 'defaultValue' : '\\var\\run\\hive'},
  190. {'var' : 'mysqld_pid_dir',
  191. 'defaultValue' : '\\var\\run\\mysqld'},
  192. {'var' : 'hcat_pid_dir',
  193. 'defaultValue' : '\\var\\run\\webhcat'},
  194. {'var' : 'yarn_pid_dir_prefix',
  195. 'defaultValue' : '\\var\\run\\hadoop-yarn'},
  196. {'var' : 'mapred_pid_dir_prefix',
  197. 'defaultValue' : '\\var\\run\\hadoop-mapreduce'},
  198. ]
  199. if 'AMBARI_AGENT_CONF_DIR' in os.environ:
  200. configFile = os.path.join(os.environ['AMBARI_AGENT_CONF_DIR'], "ambari-agent.ini")
  201. else:
  202. configFile = "ambari-agent.ini"
  203. if 'AMBARI_AGENT_LOG_DIR' in os.environ:
  204. logfile = os.path.join(os.environ['AMBARI_AGENT_LOG_DIR'], "ambari-agent.log")
  205. else:
  206. logfile = "\\var\\log\\ambari-agent-1.3.0-SNAPSHOT\\ambari-agent.log"
  207. if 'AMBARI_AGENT_OUT_DIR' in os.environ:
  208. outfile = os.path.join(os.environ['AMBARI_AGENT_OUT_DIR'], "ambari-agent.out")
  209. else:
  210. outfile = "\\var\\log\\ambari-agent-1.3.0-SNAPSHOT\\ambari-agent.out"