hadoop OpenJDK Server VM警告:您已加载库 /usr/lib/hadoop/lib/native/libhadoop.so.1.0.0可能有 残疾人堆栈守卫。 VM将尝试立即修复堆栈防护。它的 强烈建议您使用'execstack -c修复库 ',或用'-z noexecstack'链接。
我在尝试安装hadoop-yarn-resourcemanger
时收到此消息,因为hadoop
个软件包的所有其他安装都显示您的系统上的软件包已损坏。如何解决这个问题?感谢
答案 0 :(得分:1)
我得到了同样的错误并且不痛苦。您收到此错误的原因是库文件/usr/lib/hadoop/lib/native/libhadoop.so.1.0.0不适用于64位底层架构。因此,我确信您使用64位Linux进行安装。 ;)
你可以做两件事。首先,更正确的方法是yu可以重建库,但那是一个很长的过程。
我所做的是第二个也是更简单的方法。我在32位Ubuntu上重新安装它,它对我来说很好。
答案 1 :(得分:1)
我在运行Ubuntu 14.04 64bit和Java 1.7.0_75的集群上安装Hadoop 2.2时遇到了同样的错误。 (我无法将其降级到32位。)以下是我编译本机库的方法。
本地库的Hadoop 2.5页面很有帮助,它提供了所需的mvn命令: http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop-common/NativeLibraries.html#Build
确保在linux上符合先决条件。你必须使用maven版本3!
apt-get install cmake autoconf automake libtool gcc zlib1g-dev pkg-config libssl-dev openssl maven
打开包装和调查:
tar xzpf hadoop-2.2.0-src.tar.gz
cd hadoop-2.2.0-src
构建本机库(不是所有内容):
cd hadoop-common-project/hadoop-common
mvn package -Pdist,native -DskipTests=true -Dtar
将生成的.so文件复制到二进制区域。
cp target/hadoop-common-2.2.0/lib/native/libhadoop.so.1.0.0 /home/hadoop/hadoop-2.2.0/lib/native/
通过启动守护程序进行测试,以查看警告是否已禁用堆栈保护' (见上文)仍然出现:
/home/hadoop/hadoop-2.2.0/sbin/hadoop-daemon.sh start namenode n
我在Hadoop源版本2.2.0和2.5.2上进行了测试。
@ user2345523 @DivyangShah希望这有帮助