我正在研究一个MarkLogic
分层存储POC
,其中HDFS
作为其中一个层的存储层。我一直在尝试创建一个将数据目录作为Hadoop文件系统目录的森林。
我有一个Hadoop集群和一个MarkLogic集群。我从Hadoop下载了配置文件并将它们复制到/usr/Hadoop
目录中,并且我还根据此处的文档下载了所需的jar文件。https://docs.marklogic.com/guide/performance/disk-storage#id_27091
我也将这些放在具有适当lib
结构的/usr/Hadoop
目录中。我正在使用MarkLogic 7.0-4.3
版本和Cloudera Hadoop Distribution 5.3.1
进行HDFS
.
当我尝试创建森林时,我收到以下错误。
2015-03-12 19:17:20.087 Error: Automount Foresthadoop: SVC-HDFSNOT:
HDFS not available for 'hdfs://{namdenode-hostname}:8020/tmp': unknown error
我尝试在组配置中将日志级别更改为最佳,并且还为林添加了跟踪事件。但是我无法获得任何其他细节来指出错误的内容。
在这方面的任何帮助将不胜感激。如果还有其他方法可以将HDFS
作为林目录连接到,请告诉我。
未知错误是由于我遇到的Java造成的。我JAVA_HOME指向IBM版本的java,在尝试与HDFS连接时,MarkLogic不断在日志中给出有关ibm java安装目录中缺少.io文件的错误。我们找到了那些丢失的io文件,并将它们放在适当的目录中,最终导致未知错误。
在我们安装了oracle Java 7并JAVA_HOME指向该位置之后,MarkLogic使用CDH 4.3.1版本,这是MarkLogic认证的Hadoop版本。
当我尝试使用带有最新jar的cdh5.3.1版本的hadoop时,MarkLogic不断给出以下错误,尽管我在HDFS客户端中有包含此文件的jar。
2015-03-19 15:53:44.516 警报:XDMP-FORESTERR:初始化森林 Foresthadoop2 时出错: SVC-NOJCLASS:java.lang.NoClassDefFoundError: 无法初始化 class org.apache.hadoop.util.VersionInfo
当我联系MarkLogic支持团队时,他们确认CDH5.3.1版本的Hadoop尚未通过MarkLogic认证,他们将其作为产品地图的一部分。
目前的结论是CDH 5.3.1不适用于MarkLogic。