配置spark需要先配置hadoop吗(单机及分布式集群环境搭建常见问题及解决方法)
配置spark需要先配置hadoop吗(单机及分布式集群环境搭建常见问题及解决方法)
遇到的问题及解决方法
1. 虚拟机 root用户默认密码修改: sudo passed 回车修改密码
- hostname设置(master slave1) 修改/etc/hosts和/etc/hostname
- ping命令无法使用:虚拟机设置 选择网络连接方式(桥接方式)
- ssh命令报错: connect to host slave1 port 22: Connection refused
- 解决方法:安装并启动ssh服务 安装如下:apt-get install -f
- apt-get install openssl-client---ubuntu 默认安装
- apt-get install openssl-server
- sudo /etc/init.d/ssh start—启动 ssh 服务
- 安装jdk时 手动下载软件包(jdk1.7版本:jdk-7u80-linux-x64) 之后配置./bashrc文件。
- 安装过程中启动hadoop时报JAVA_HOME路径找不到。 解决方法:检查~/bashrc 设置正确。检查设置hadoop的安装路径下:/usr/local/hadoop/etc/hadoop中的hadoop-env.sh中JAVA_HOME需要设置为jdk所在的目录。
- 运行hdfs在/user下新建hadoop文件夹时报错:Unable to load native-hadooplibrary for your platform... using builtin-java classes where applicable
- 解决方法:下载对应的native-hadoop 64位的包 解压到hadoop安装目录下的lib和lib/native下 配置环境变量 并令其生效即可。
- export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
- export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
- 运行 Hadoop 程序时 为了防止覆盖结果 程序指定的输出目录(如output)不能存在 否则会 示错误 因此运行前需要先删除输出目录。在实际开发应用程序时 可考虑在程序中加上如下代码 能在每次运行时自动删除输出目录 避免繁琐的命令行操作
- Configuration conf = new Configuration();Job job = new Job(cont);
- /* 删除输出目录 */ Path outputPath = new Path(args[1]);
- outputPath.getFileSystem(conf).delete(outputPath true);
- ./sbin/start-dfs.sh启动hadoop时 报以下错误'/usr/local/hadoop/logs':Operation not permitted 解决方式:检查/usr/local/hadoop/logs宿主为root用户 原因:chown -Rhadoop:hadoop hadoop/ 最后没加”/" 。 root用户修改/usr/local/hadoop/logs宿主为hadoop用户(chown -R hadoop hadoop/)即可。
11. 运行示例时 一直停留在如下界面 程序运行阻塞。
解决方法:增加虚拟机内存(从1G—>2G:OK) 即可。