Mac M1设备部署Hortonworks Sandbox失败求助
在Mac M1(ARM架构)上部署Hortonworks Sandbox的解决方案
一、VMWare架构不兼容问题
报错:
This virtual machine cannot be powered on because it requires the X86 machine architecture, which is incompatible with this Arm machine architecture host
- 原因:官方Hortonworks Sandbox镜像仅支持X86架构,M1的ARM架构无法直接运行。
- 解决步骤:
- 升级VMWare Fusion到12.x及以上版本,创建/导入虚拟机时勾选「使用Rosetta转译x86/64应用」;
- 进入虚拟机设置界面,将处理器架构指定为
Intel x86_64,保存后重新启动虚拟机。
二、VirtualBox意外崩溃问题
报错:
virtualbox quit unexpectedly
- 原因:VirtualBox对Apple Silicon的原生支持存在兼容性缺陷,早期版本稳定性差。
- 解决步骤:
- 卸载现有VirtualBox,安装7.0及以上版本(该版本对ARM架构支持更完善);
- 若仍崩溃,替换为UTM工具导入Sandbox镜像,UTM针对M1优化了x86模拟,导入时选择「x86_64」架构模式。
三、Docker无法访问localhost问题
- 原因:
- Sandbox Docker镜像为X86架构,M1上运行需Rosetta转译;
- Docker端口映射未生效,或localhost在M1 Docker环境中需用特殊地址替代。
- 解决步骤:
- 打开Docker Desktop设置,找到「Features in development」,开启「Use Rosetta for x86/64 emulation on Apple Silicon」,重启Docker;
- 运行容器时确认端口映射命令正确(例如:
docker run -p 8080:8080 -p 8088:8088 <镜像名>); - 访问时用
http://host.docker.internal:端口号替代localhost,同时通过docker logs <容器ID>查看服务是否正常启动。
四、直接安装Hadoop的log4j及节点启动问题
报错:
log4j not initiated properly,节点无法启动、无法访问localhost
- 原因:旧版Hadoop未适配ARM架构,与M1上的JDK存在兼容性冲突,导致log4j初始化失败。
- 解决步骤:
- 选用Hadoop 3.3.4及以上版本(官方已原生支持ARM架构);
- 安装ARM版本的OpenJDK 11/17,避免使用X86版本JDK;
- 修改
hadoop-env.sh文件,添加环境变量:export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"; - 检查
log4j.properties配置,确保日志路径正确且有读写权限; - 首次启动前执行格式化命令:
hdfs namenode -format,再依次启动HDFS和YARN服务。
内容的提问来源于stack exchange,提问作者Basi
相关产品推荐
相关产品推荐

