#!/usr/bin/env python
#
# 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.
import os
import sys
sys.path.insert(0, '/usr/hdp/current/atlas-server/bin/')
import traceback
import subprocess
import atlas_config as mc
ATLAS_LOG_FILE="atlas-index-janus-repair.log"
ATLAS_LOG_OPTS="-Datlas.log.dir=%s -Datlas.log.file="+ATLAS_LOG_FILE
ATLAS_COMMAND_OPTS="-Datlas.home=%s"
ATLAS_CONFIG_OPTS="-Datlas.conf=%s"
DEFAULT_JVM_HEAP_OPTS="-Xmx4096m -XX:MaxPermSize=512m"
DEFAULT_JVM_OPTS="-Dlog4j.configuration=atlas-log4j.xml -Djava.net.preferIPv4Stack=true -server"
def main():
atlas_home = mc.atlasDir()
confdir = mc.dirMustExist(mc.confDir(atlas_home))
mc.executeEnvSh(confdir)
logdir = mc.dirMustExist(mc.logDir(atlas_home))
mc.dirMustExist(mc.dataDir(atlas_home))
if mc.isCygwin():
# Pathnames that are passed to JVM must be converted to Windows format.
jvm_atlas_home = mc.convertCygwinPath(atlas_home)
jvm_confdir = mc.convertCygwinPath(confdir)
jvm_logdir = mc.convertCygwinPath(logdir)
else:
jvm_atlas_home = atlas_home
jvm_confdir = confdir
jvm_logdir = logdir
print ("Logging: "+ os.path.join(jvm_logdir, ATLAS_LOG_FILE))
#create sys property for conf dirs
jvm_opts_list = (ATLAS_LOG_OPTS % (jvm_logdir)).split()
cmd_opts = (ATLAS_COMMAND_OPTS % jvm_atlas_home)
jvm_opts_list.extend(cmd_opts.split())
config_opts = (ATLAS_CONFIG_OPTS % jvm_confdir)
jvm_opts_list.extend(config_opts.split())
atlas_server_heap_opts = os.environ.get(mc.ATLAS_SERVER_HEAP, DEFAULT_JVM_HEAP_OPTS)
jvm_opts_list.extend(atlas_server_heap_opts.split())
atlas_server_jvm_opts = os.environ.get(mc.ATLAS_SERVER_OPTS)
if atlas_server_jvm_opts:
jvm_opts_list.extend(atlas_server_jvm_opts.split())
atlas_jvm_opts = os.environ.get(mc.ATLAS_OPTS, DEFAULT_JVM_OPTS)
jvm_opts_list.extend(atlas_jvm_opts.split())
#expand web app dir
web_app_dir = mc.webAppDir(atlas_home)
mc.expandWebApp(atlas_home)
p = os.pathsep
atlas_classpath = os.path.join(os.getcwd(), ".", "*") + p \
+ confdir + p \
+ os.path.join(web_app_dir, "atlas", "WEB-INF", "classes" ) + p \
+ os.path.join(web_app_dir, "atlas", "WEB-INF", "lib", "*" ) + p \
+ os.path.join(atlas_home, "libext", "*")
is_hbase = mc.is_hbase(confdir)
if is_hbase:
#add hbase-site.xml to classpath
hbase_conf_dir = mc.hbaseConfDir(atlas_home)
if os.path.exists(hbase_conf_dir):
atlas_classpath = atlas_classpath + p \
+ hbase_conf_dir
else:
if mc.is_hbase(confdir):
raise Exception("Could not find hbase-site.xml in %s. Please set env var HBASE_CONF_DIR to the hbase client conf dir", hbase_conf_dir)
if mc.isCygwin():
atlas_classpath = mc.convertCygwinPath(atlas_classpath, True)
atlas_pid_file = mc.pidFile(atlas_home)
if os.path.isfile(atlas_pid_file):
#Check if process listed in atlas.pid file is still running
pf = file(atlas_pid_file, 'r')
pid = pf.read().strip()
pf.close()
if is_hbase and mc.is_hbase_local(confdir):
print("configured for local hbase.")
mc.configure_hbase(atlas_home)
mc.run_hbase_action(mc.hbaseBinDir(atlas_home), "start", hbase_conf_dir, logdir)
print("hbase started.")
web_app_path = os.path.join(web_app_dir, "atlas")
if (mc.isCygwin()):
web_app_path = mc.convertCygwinPath(web_app_path)
start_migration_export(atlas_classpath, atlas_pid_file, jvm_logdir, jvm_opts_list, web_app_path)
def start_migration_export(atlas_classpath, atlas_pid_file, jvm_logdir, jvm_opts_list, web_app_path):
args = []
args.extend(sys.argv[1:])
process = java("org.apache.atlas.tools.RepairIndex", args, atlas_classpath, jvm_opts_list)
def java(classname, args, classpath, jvm_opts_list):
java_home = os.environ.get("JAVA_HOME", None)
if java_home:
prg = os.path.join(java_home, "bin", "java")
else:
prg = mc.which("java")
if prg is None:
raise EnvironmentError('The java binary could not be found in your path or JAVA_HOME')
commandline = [prg]
commandline.extend(jvm_opts_list)
commandline.append("-classpath")
commandline.append(classpath)
commandline.append(classname)
commandline.extend(args)
p = subprocess.Popen(commandline)
p.communicate()
if __name__ == '__main__':
try:
returncode = main()
except Exception as e:
print("Exception: %s " % str(e))
print(traceback.format_exc())
returncode = -1
sys.exit(returncode)
apache-atlas-2.2.0-atlas-index-repair.zip
需积分: 0 162 浏览量
更新于2023-08-09
收藏 27KB ZIP 举报
Apache Atlas 是一个开源的数据治理平台,它主要用于元数据管理和数据治理。这个压缩包"apache-atlas-2.2.0-atlas-index-repair.zip"很可能包含用于修复Apache Atlas索引的工具或脚本,版本号2.2.0表明这是Apache Atlas的一个特定更新版本。
Apache Atlas的核心功能包括:
1. **元数据管理**:Apache Atlas提供了全面的元数据管理服务,允许用户对数据资产进行分类、标记和管理。这包括数据源、表、列、以及相关的业务术语和定义,帮助用户理解数据的含义和使用方式。
2. **数据血缘**:通过跟踪数据的来源和使用过程,Apache Atlas提供了数据血缘功能,这对于理解数据的流转路径和影响范围至关重要。
3. **数据治理**:Apache Atlas支持数据安全策略的实施,如访问控制和数据质量规则。它还可以与Hadoop生态系统中的其他组件(如Hive、HBase等)集成,确保数据治理策略的一致性。
4. **搜索和发现**:用户可以通过元数据标签和属性进行数据搜索,快速定位所需的数据资源。
5. **审计和合规性**:Apache Atlas提供了审计日志,可以追踪数据操作,确保符合法规要求。
关于"atlas-index-repair",这可能是指Apache Atlas中的一种特殊工具或脚本,用于修复可能损坏或失效的索引。在大数据环境中,由于高并发读写操作,数据库的索引可能会出现错误或损坏,影响查询性能。Apache Atlas的索引修复功能可以帮助恢复这些索引,确保系统的正常运行。
修复过程可能包括以下步骤:
1. **诊断**:系统会检测并识别出有潜在问题的索引。
2. **备份**:在进行任何修复之前,通常会备份现有的索引,以防万一修复过程中出现问题。
3. **重建索引**:然后,使用特定的命令或工具重建损坏的索引。
4. **验证**:修复后,通过查询测试验证索引是否正常工作。
5. **优化**:可能还需要对索引进行优化,以提高查询性能。
在实际操作中,使用"apache-atlas-2.2.0-atlas-index-repair.zip"的内容时,用户应遵循官方文档或提供的指南,以确保正确执行索引修复操作,并避免对生产环境造成影响。如果遇到问题,可以参考Apache Atlas的社区论坛或官方文档寻求帮助。
謩謩
- 粉丝: 1
- 资源: 12
最新资源
- 10 kV和35 kV配电网系统的间歇性电弧接地过电压
- 直流无刷电机,外径41mm,径向长23.39mm,转速6000rpm,功率200W,气息长度预留1mm,槽满率67.5%,效率80.7%,最大输出功率320W
- 基于BP神经网络的多个输出数据的回归预测 matlab代码
- 基于高斯过程回归(GPR)的时间序列区间预测
- APA水平泊车算法,matlab和C++联合仿真,内含道路地图生成仿真算法,路径跟踪算法,车辆横向纵向控制算法,倒车路径规划算法,数据处理分析 车辆定位:通过车载传感器获取车辆当前位置和方向 目标
- 适用方向:基于LQR控制算法的直接横摆力矩控制(DYC)的四轮独立电驱动汽车的横向稳定性控制研究 主要内容:利用carsim建模,在simulink中搭建控制器,然后进行联合 实现汽车在高速低附着路
- 大厂FPGA APB verilog源代码,企业级应用源码,适合需要学习ic设计验证及soc开发的工程师 提供databook资料和verilog完整源代码 代码架构清晰、规范,便于阅读理解,可直接
- 特征值、左右特征向量计算,参与因子分析MATLAB代码
- maxwell电机电磁仿真 绕线式感应电机设计,串电阻启动等 电机仿真
- 自动紧急避撞系统(AEB),Carsim与simulink联合仿真; 车辆逆动力学模型; 制动安全距离计算; 定加速度; 可实现前车减速,前车静止,前车匀速纵向避撞;
- 改进A星算法 剔除冗余节点,光滑转折点 对比优化前后路径
- 无位置传感器无刷直流电机,一篇Sci的复现,采用反相电动势观测器的方法进行无位置传感器控制,反相电动势观测值和电机实际输出值很好吻合
- 电动叉车系统设计,重量检测,电机控制 电动随车叉车控制系统设计 程序,仿真,有演示视频 1、电机1-4模拟叉车车轮,四个按键,控制叉车前进、后 、左转、右转 2、电机5、6模拟叉车前叉、后叉;上叉、
- 基于fpga的native接口的DDR3的多功能读写测试 支持单字节读写测试 支持多字节读写测试 支持自动读写测试 带仿真文件,同时上板验证过 可用于学习
- 改进蚁群算法+动态窗口算法全局结合局部路径规划仿真 静态路径规划算法 采用改进蚁群算法,有单独对比代码 动态实时规划 采用动态窗口算法避开未知障碍物 可自行设置地图 未知静态障碍物 移动障碍物
- 并联混合动力电动汽车模型