params.py 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. """
  2. Licensed to the Apache Software Foundation (ASF) under one
  3. or more contributor license agreements. See the NOTICE file
  4. distributed with this work for additional information
  5. regarding copyright ownership. The ASF licenses this file
  6. to you under the Apache License, Version 2.0 (the
  7. "License"); you may not use this file except in compliance
  8. with the License. You may obtain a copy of the License at
  9. http://www.apache.org/licenses/LICENSE-2.0
  10. Unless required by applicable law or agreed to in writing, software
  11. distributed under the License is distributed on an "AS IS" BASIS,
  12. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. See the License for the specific language governing permissions and
  14. limitations under the License.
  15. Ambari Agent
  16. """
  17. from resource_management import *
  18. from resource_management.libraries.script import Script
  19. from resource_management.libraries.functions import conf_select
  20. from resource_management.libraries.resources import HdfsResource
  21. import status_params
  22. # server configurations
  23. config = Script.get_config()
  24. stack_name = default("/hostLevelParams/stack_name", None)
  25. zookeeper_hosts = config['clusterHostInfo']['zookeeper_hosts']
  26. zookeeper_hosts.sort()
  27. zookeeper_hosts_list=','.join(zookeeper_hosts)
  28. java64_home = config['hostLevelParams']['java_home']
  29. # New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade.
  30. # Version being upgraded/downgraded to
  31. # It cannot be used during the initial Cluser Install because the version is not yet known.
  32. version = default("/commandParams/version", None)
  33. # current host stack version
  34. current_version = default("/hostLevelParams/current_version", None)
  35. stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
  36. iop_stack_version = format_hdp_stack_version(stack_version_unformatted)
  37. # Upgrade direction
  38. upgrade_direction = default("/commandParams/upgrade_direction", None)
  39. solr_user=config['configurations']['solr-env']['solr_user']
  40. user_group=config['configurations']['cluster-env']['user_group']
  41. hostname = config['hostname']
  42. solr_server_hosts = config['clusterHostInfo']['solr_hosts']
  43. solr_server_host = solr_server_hosts[0]
  44. fs_root = config['configurations']['core-site']['fs.defaultFS']
  45. solr_home = '/usr/iop/current/solr-server'
  46. solr_conf_dir='/usr/iop/current/solr-server/conf'
  47. cloud_scripts=solr_home+'/server/scripts/cloud-scripts'
  48. if (current_version is not None and compare_versions(format_hdp_stack_version(current_version), '4.2.0.0') >=0 ) or compare_versions(iop_stack_version, '4.2.0.0')>= 0:
  49. if upgrade_direction is not None and upgrade_direction == Direction.DOWNGRADE and version is not None and compare_versions(format_hdp_stack_version(version), '4.2.0.0') < 0:
  50. solr_data_dir=default("/configurations/solr-env/solr_lib_dir", None)
  51. else:
  52. solr_data_dir=default("/configurations/solr-env/solr_data_dir", None)
  53. else: #IOP 4.1
  54. if upgrade_direction is not None and upgrade_direction == Direction.UPGRADE:
  55. solr_data_dir=default("/configurations/solr-env/solr_data_dir", None)
  56. lib_dir=default("/configurations/solr-env/solr_data_dir", None)
  57. old_lib_dir=default("/configurations/solr-env/solr_lib_dir", None)
  58. else:
  59. solr_data_dir=default("/configurations/solr-env/solr_lib_dir", None)
  60. lib_dir=default("/configurations/solr-env/solr_lib_dir", None)
  61. log_dir=config['configurations']['solr-env']['solr_log_dir']
  62. pid_dir=config['configurations']['solr-env']['solr_pid_dir']
  63. solr_port=config['configurations']['solr-env']['solr_port']
  64. zookeeper_chroot=config['configurations']['solr-env']['ZOOKEEPER_CHROOT']
  65. solr_xms_minmem = config['configurations']['solr-env']['solr_xms_minmem']
  66. solr_xmx_maxmem = config['configurations']['solr-env']['solr_xmx_maxmem']
  67. solr_site = dict(config['configurations']['solr-site'])
  68. security_enabled = config['configurations']['cluster-env']['security_enabled']
  69. solr_principal = solr_site['solr.hdfs.security.kerberos.principal']
  70. if security_enabled:
  71. solr_principal = solr_principal.replace('_HOST',hostname)
  72. solr_site['solr.hdfs.security.kerberos.principal']=solr_principal
  73. #kerberos
  74. sole_kerberos_enabled=config['configurations']['solr-site']['solr.hdfs.security.kerberos.enabled']
  75. solr_keytab=config['configurations']['solr-site']['solr.hdfs.security.kerberos.keytabfile']
  76. #log4j.properties
  77. log4j_props = config['configurations']['solr-log4j']['content']
  78. solr_in_sh_template = config['configurations']['solr-env']['content']
  79. solr_pid_file = status_params.solr_pid_file
  80. solr_hdfs_home_dir = config['configurations']['solr-env']['solr_hdfs_home_dir']
  81. solr_hdfs_user_mode = 0775
  82. smokeuser = config['configurations']['cluster-env']['smokeuser']
  83. smokeuser_principal = config['configurations']['cluster-env']['smokeuser_principal_name']
  84. smoke_user_keytab = config['configurations']['cluster-env']['smokeuser_keytab']
  85. hadoop_conf_dir = conf_select.get_hadoop_conf_dir()
  86. hadoop_bin_dir = conf_select.get_hadoop_dir("bin")
  87. hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
  88. hdfs_site = config['configurations']['hdfs-site']
  89. default_fs = config['configurations']['core-site']['fs.defaultFS']
  90. hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
  91. hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
  92. kinit_path_local = get_kinit_path()
  93. # parameters for intgeration with Titan
  94. configuration_tags = config['configurationTags']
  95. # Intgerate with Titan
  96. # parse the value for property 'index.search.solr.configset' in titan-hbase-solr
  97. titan_solr_configset = 'titan'
  98. if ('titan-hbase-solr' in configuration_tags):
  99. titan_hbase_solr_props = config['configurations']['titan-hbase-solr']['content']
  100. prop_list = titan_hbase_solr_props.split('\n')
  101. for prop in prop_list:
  102. if (prop.find('index.search.solr.configset') > -1):
  103. titan_solr_configset_prop = prop.split('=')
  104. titan_solr_configset = titan_solr_configset_prop[1]
  105. titan_solr_conf_dir = format('/usr/iop/current/titan-client/conf/solr')
  106. solr_conf_trg_dir = format('/usr/iop/current/solr-server/server/solr/configsets')
  107. solr_solr_conf_dir = format('/usr/iop/current/solr-server/server/solr/configsets/solr')
  108. solr_titan_conf_dir = format('/usr/iop/current/solr-server/server/solr/configsets/{titan_solr_configset}')
  109. titan_solr_jar_file = format('/usr/iop/current/titan-client/lib/jts-1.13.jar')
  110. solr_jar_trg_file = format('/usr/iop/current/solr-server/server/solr-webapp/webapp/WEB-INF/lib/jts-1.13.jar')
  111. solr_conf_trg_file = format('/usr/iop/current/solr-server/server/solr/configsets/{titan_solr_configset}/solrconfig.xml')
  112. import functools
  113. #create partial functions with common arguments for every HdfsDirectory call
  114. #to create hdfs directory we need to call params.HdfsDirectory in code
  115. HdfsResource = functools.partial(
  116. HdfsResource,
  117. user=hdfs_user,
  118. security_enabled = security_enabled,
  119. keytab = hdfs_user_keytab,
  120. kinit_path_local = kinit_path_local,
  121. hadoop_bin_dir = hadoop_bin_dir,
  122. hadoop_conf_dir = hadoop_conf_dir,
  123. principal_name = hdfs_principal_name,
  124. hdfs_site = hdfs_site,
  125. default_fs = default_fs
  126. )