Hadoop on Mac OS X 'HadoopIllegalArgumentException: An XAttr name must be prefixed' 错误
Hadoop on Mac OS X 'HadoopIllegalArgumentException: An XAttr name must be prefixed' error
今天我尝试按照 Setting up Hadoop 2.4 and Pig 0.12 on OSX locally
上的说明在我的 Mac OS X Lion 上安装 Hadoop
我已经正确设置
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home set both ~/.bash_profile and .bashrc
并使用 brew 成功安装了最新版本的 Hadoop (2.6.0) 并编辑了这 4 个配置文件:hdfs.site.xml、core-site.xml、mapred-site.xml, yarn-site.xml 相应地.
但是运行:
./bin/hdfs namenode -format
给出:
15/01/29 17:42:01 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = Venuses-Mac-mini.local/192.168.1.51
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.6.0
STARTUP_MSG: classpath = /usr/local/Cellar/hadoop/2.6.0/libexec /etc/hadoop:/usr/local/Cellar/hadoop/2.6.0/libexec/share/hadoop/common /lib/activation-1.1.jar <TRUNCATED - Big Chunk of Code Containing .jar Filenames>
STARTUP_MSG: build = https://git-wip-us.apache.org/repos /asf/hadoop.git -r e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1; compiled by 'jenkins' on 2014-11-13T21:10Z
STARTUP_MSG: java = 1.6.0_29
<TRUNCATED - Big Chunk of .jar Filnames TRUNCATED>
************************************************************/
15/01/29 17:42:01 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
15/01/29 17:42:01 INFO namenode.NameNode: createNameNode [-format]
2015-01-29 17:42:02.551 java[1016:1903] Unable to load realm info from SCDynamicStore
15/01/29 17:42:02 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Formatting using clusterid: CID-aaa7a5a6-3e82-4166-8039-16046f1b4761
<TRUNCATED>
15/01/29 17:42:03 ERROR namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.HadoopIllegalArgumentException: An XAttr name must be prefixed with user/trusted/security/system/raw, followed by a '.'
at org.apache.hadoop.hdfs.XAttrHelper.buildXAttr(XAttrHelper.java:72)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:137)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:894)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:755)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:934)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1379)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1504)
15/01/29 17:42:03 INFO namenode.FSNamesystem: Stopping services started for active state
15/01/29 17:42:03 INFO namenode.FSNamesystem: Stopping services started for standby state
15/01/29 17:42:03 FATAL namenode.NameNode: Failed to start namenode.
<TRUNCATED>
15/01/29 17:42:03 INFO util.ExitUtil: Exiting with status 1
15/01/29 17:42:03 INFO namenode.NameNode: SHUTDOWN_MSG:
2 个版本的 Java 安装在我的 Mac Hadoop 上使用旧版本 1.6.0_29,而不是当前版本 1.7.0_72。我不知道让 Hadoop 考虑到当前的 Java 版本。
注意:我在 Google 上进行了广泛的搜索,但找不到针对此特定错误的解决方案。
谢谢。
当您在终端 运行 中输入以下内容时,您会得到什么 shell?
/usr/libexec/java_home
如果 returns 你的 1.6 JDK,那么可能是 hadoop 某处正在使用该命令来确定要使用哪个 java。例如,一个可能发生的地方是文件“/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hadoop-env.sh”。第 25 行是:
export JAVA_HOME="$(/usr/libexec/java_home)"
尝试将其更改为:
export JAVA_HOME="$(/usr/libexec/java_home -v1.7)"
为了将 JAVA_HOME 设置为您的 1.7 JDK。或者可能是其他一些 hadoop 文件正在做类似的事情来查找 Java.
今天我尝试按照 Setting up Hadoop 2.4 and Pig 0.12 on OSX locally
上的说明在我的 Mac OS X Lion 上安装 Hadoop我已经正确设置
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home set both ~/.bash_profile and .bashrc
并使用 brew 成功安装了最新版本的 Hadoop (2.6.0) 并编辑了这 4 个配置文件:hdfs.site.xml、core-site.xml、mapred-site.xml, yarn-site.xml 相应地.
但是运行:
./bin/hdfs namenode -format
给出:
15/01/29 17:42:01 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = Venuses-Mac-mini.local/192.168.1.51
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.6.0
STARTUP_MSG: classpath = /usr/local/Cellar/hadoop/2.6.0/libexec /etc/hadoop:/usr/local/Cellar/hadoop/2.6.0/libexec/share/hadoop/common /lib/activation-1.1.jar <TRUNCATED - Big Chunk of Code Containing .jar Filenames>
STARTUP_MSG: build = https://git-wip-us.apache.org/repos /asf/hadoop.git -r e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1; compiled by 'jenkins' on 2014-11-13T21:10Z
STARTUP_MSG: java = 1.6.0_29
<TRUNCATED - Big Chunk of .jar Filnames TRUNCATED>
************************************************************/
15/01/29 17:42:01 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
15/01/29 17:42:01 INFO namenode.NameNode: createNameNode [-format]
2015-01-29 17:42:02.551 java[1016:1903] Unable to load realm info from SCDynamicStore
15/01/29 17:42:02 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Formatting using clusterid: CID-aaa7a5a6-3e82-4166-8039-16046f1b4761
<TRUNCATED>
15/01/29 17:42:03 ERROR namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.HadoopIllegalArgumentException: An XAttr name must be prefixed with user/trusted/security/system/raw, followed by a '.'
at org.apache.hadoop.hdfs.XAttrHelper.buildXAttr(XAttrHelper.java:72)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:137)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:894)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:755)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:934)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1379)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1504)
15/01/29 17:42:03 INFO namenode.FSNamesystem: Stopping services started for active state
15/01/29 17:42:03 INFO namenode.FSNamesystem: Stopping services started for standby state
15/01/29 17:42:03 FATAL namenode.NameNode: Failed to start namenode.
<TRUNCATED>
15/01/29 17:42:03 INFO util.ExitUtil: Exiting with status 1
15/01/29 17:42:03 INFO namenode.NameNode: SHUTDOWN_MSG:
2 个版本的 Java 安装在我的 Mac Hadoop 上使用旧版本 1.6.0_29,而不是当前版本 1.7.0_72。我不知道让 Hadoop 考虑到当前的 Java 版本。
注意:我在 Google 上进行了广泛的搜索,但找不到针对此特定错误的解决方案。
谢谢。
当您在终端 运行 中输入以下内容时,您会得到什么 shell?
/usr/libexec/java_home
如果 returns 你的 1.6 JDK,那么可能是 hadoop 某处正在使用该命令来确定要使用哪个 java。例如,一个可能发生的地方是文件“/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hadoop-env.sh”。第 25 行是:
export JAVA_HOME="$(/usr/libexec/java_home)"
尝试将其更改为:
export JAVA_HOME="$(/usr/libexec/java_home -v1.7)"
为了将 JAVA_HOME 设置为您的 1.7 JDK。或者可能是其他一些 hadoop 文件正在做类似的事情来查找 Java.