我正在尝试安装Apache Accumulo 2.0,其中Hadoop集群和Zookeeper集群已经作为单独的docker容器运行;
现在我必须按照安装说明设置以下环境变量;
############################
# Variables that must be set
############################
## Hadoop installation
export HADOOP_HOME="${HADOOP_HOME:-/path/to/hadoop}"
## Hadoop configuration
export HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-${HADOOP_HOME}/etc/hadoop}"
## Zookeeper installation
export ZOOKEEPER_HOME="${ZOOKEEPER_HOME:-/path/to/zookeeper}"但是,本地计算机中不存在这些目录。我必须从Hadoop和Zookeeper的单独容器中复制这些目录,才能使它们在我试图运行Accumulo的本地计算机上可用吗?或者有一些适当的方法来配置它?
发布于 2019-12-31 12:25:09
与任何Hadoop客户端一样,Accumulo需要Hadoop XML配置文件。它使用$HADOOP_CONF_DIR或$HADOOP_HOME/conf对它们进行罚款
它使用$HADOOP_HOME/lib来获取Hadoop
我不确定$ZOOKEEPER_HOME是用来做什么的,但我猜它也不会附带Zookeeper JARs
Hadoop将使用这些位置查找
和Zookeeper jars,并将它们添加到
CLASSPATH变量中
因此,是的,您需要将它们复制到容器之外,或者在主机上下载Hadoop库并将它们挂载到容器中。无论如何,你应该已经有了Zookeeper和NameNode & Datanodes的卷装载。
发布于 2020-01-04 05:26:25
在Accumulo 2.0中,conf/accumulo-env.sh脚本有两个主要用途:
CLASSPATH;java命令的任何JVM参数。在其最简单的形式中,bin/accumulo基本上做到了:
source conf/accumulo-env.sh
java "${JAVA_OPTS[@]}" "$@"因此,您在accumulo-env.sh中导出的任何环境(例如CLASSPATH )都将设置为调用java。而且,您在JAVA_OPTS数组中设置的任何选项都将传递给java。
accumulo-env.sh内容应由用户自定义。脚本的默认内容尝试使用您当前安装的Hadoop和ZooKeeper设置用于累积进程的CLASSPATH环境。但是,您必须告诉它这些文件在您的系统中的位置,这样才能正常工作。用于设置这些的variables。 Accumulo要求来自Hadoop和ZooKeeper的客户端库以及Hadoop配置文件位于Accumulo CLASSPATH上。如果这些文件在本地不存在,您将需要找出如何将它们放到CLASSPATH上以供Accumulo使用,并更新此环境脚本以让Accumulo知道您将它们放在哪里。
如果您希望以不同的方式设置您的CLASSPATH,您可以自由地这样做,但是您可能希望定制accumulo-env.sh脚本的更大部分。对于已自定义其部署的高级用户或已自定义其供应商提供的Accumulo版本的供应商来说,这是一种可能的方案。
https://stackoverflow.com/questions/59531693
复制相似问题