Hadoop在启动时的坑——start-all.sh报错
1、若你用的Linux系统是CentOS的话,这是一个坑:
它会提示你JAVA_HOME找不到,现在去修改文件:
.修改hadoop配置文件,手动指定JAVA_HOME环境变量
[${hadoop_home}/etc/hadoop/hadoop-env.sh]
...
export JAVA_HOME=/soft/jdk
...
这是CentOS的一个大坑,手动配置JAVA_HOME环境变量。
2、启动后无NameNode进程
如果在启动Hadoop,start-all.sh之后一切正常。但是Jps查看进程时发现进程中少了一个NameNode进程,不要慌张。
跳转解决 :https://www.cnblogs.com/dongxiucai/p/9636177.html
3、一定要设置ssh免密登陆,切记
配置SSH
1)检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
$yum list installed | grep ssh 2)检查是否启动了sshd进程
$>ps -Af | grep sshd 3)在client侧生成公私秘钥对。
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥) 5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys 6)修改authorized_keys的权限为644.
$>chmod 644 authorized_keys 7)测试
$>ssh localhost
4、报以下错误:
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
15/01/23 20:23:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [Java HotSpot(TM) Client VM warning: You have loaded library /hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
hd-m1]
sed: -e expression #1, char 6: unknown option to `s'
-c: Unknown cipher type 'cd'
这个是因为你的操作系统、jdk、hadoop的位数不匹配,有32位的又有64位的。
查看位数跳转:https://www.cnblogs.com/dongxiucai/p/9637403.html
常规解决方案为 :
主要是环境变量设置好:
在 /etc/profile 中加入 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR" 然后重新编译 source /etc/profile
并把相同配置添加到hadoop-env.sh文件末尾
一般情况都能解决。
若是还不行的话,就需要更换相匹配的版本了
5、报以下错误:
mkdir: cannot create directory ‘/soft/hadoop-2.7.3/logs’: Permission denied
这是在创建logs时无权限,原因是/soft目录的用户权限为root,需要修改为hadoop用户权限
注意:hadoop为用户名,/soft为安装目录,因人而异
解决方案:
1、先切换到root用户
su root
2、修改/soft目录的用户权限,记住要递归
chown -R hadoop:hadoop /soft // -R是递归修改
3、查看修改结果
drwxr-xr-x. 3 hadoop hadoop 4096 8月 11 06:13 hadoop
drwxr-xr-x. 3 hadoop hadoop 4096 8月 11 06:20 jdk
修改成功
6、格式化namenode后启动hdfs报:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
Starting namenodes on []
py_1: starting namenode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-namenode-hjt-virtual-machine.out
py_3: starting namenode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-namenode-ubuntu.out
py_2: starting namenode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-namenode-cyrg.out
py_1: starting datanode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-datanode-hjt-virtual-machine.out
py_3: starting datanode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-datanode-ubuntu.out
py_2: starting datanode, logging to /soft/hadoop/hadoop/hadoop-2.5.-cdh5.3.6/logs/hadoop-hadoop-datanode-cyrg.out
发现,namenode一共启动了3台,全部启动。在反复检查过所有的配置后发现没有错。
其实大家现在可以看到我的机器的名称:py_1、py_2、py_3就是名称带下滑线,这个切记。改为py01、py02、py03完美解决。
有帮助的话,点个推荐让更多人看到
Hadoop在启动时的坑——start-all.sh报错的更多相关文章
- 【log4j】springboot项目启动 ,使用的druid数据源,log4j报错 log4j:WARN Please initialize the log4j system properly.
springboot项目启动 ,使用的druid数据源,log4j报错 -- :: --- [ restartedMain] o.hibernate.annotations.common.Versio ...
- centos 7安装rac 11gR2时运行root.sh报错找不到ohas服务(ohasd failed to start)
单独在linux 7中为ohasd设置一个服务.步骤如下1. 创建服务ohas.service的服务文件并赋予权限touch /usr/lib/systemd/system/ohas.servicec ...
- 巨坑npm run dev 报错 终于找到正确答案 Error: EPERM: operation not permitted, open '/data/public/build/css/add.p
Windows10环境 npm run dev 报错 终于找到正确答案 Error: EPERM: operation not permitted, open '/data/public/build ...
- React Native 填坑之神奇的报错,已解决
下面对报错进行一下详细描述: 在debug时,点着点着,就会发生: 1.手机显示如下 : Attempted to transition from state `RESPONDER_INACTIVE_ ...
- 解决import caffe 时no module named protobuf的报错
ProtoBuf是Google开发的可以实现内存与非易失存储介质(硬盘文件等等)交换时的协议接口.Caffe源码中大量使用了ProtoBuf作为权值和模型参数的载体. 在Anaconda下打开Anac ...
- mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for 'updated_at'
问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错 1067 - Invalid default value ...
- 当图片加载失败时更换图片, Firefox onerror 报错
当图片加载失败时更换图片. <!DOCTYPE html> <meta charset="UTF-8"> <img src="http:// ...
- hadoop长时间运行后,stop-all.sh报错
报错现象: hadoop在stop-all.sh的时候依据的是datanode上的mapred和dfs进程号. 而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右 ...
- 泰德激光打标软件 包含 #include "Main.h" 时 原本正确的单元却报错
问题:泰德激光打标软件 ,当新增单元需要包含 #include "Main.h" 时, 原本正确的单元却报错. 办法:包含 #include "Main.h" ...
随机推荐
- Android开发教程 - 使用Data Binding(五)数据绑定
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...
- 回头探索JDBC及PreparedStatement防SQL注入原理
概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...
- 简单的C# Socket通信实例
一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本 ...
- select2插件使用小记
插件官网:https://select2.github.io/examples.html 页面引入: // 页面顶部 <link rel="stylesheet" type= ...
- iOS开发-实现相机app的方法[转载自官方]
This brief code example to illustrates how you can capture video and convert the frames you get to U ...
- 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图
面向对象思想概述.开发设计特征 1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一 ...
- 03-03 java 顺序语句结构,选择结构if语句
顺序结构: /* 流程控制语句:可以控制程序的执行流程. 分类: 顺序结构 选择结构 循环结构 顺序结构: 从上往下,依次执行. */ class ShunXuJieGouDemo { public ...
- C#编程任务: 把工作交给别人并等待其执行完成
生活中有这样的场景: 我有一件事情需要别人帮忙去办, 但是别人也很忙呀, 所以我只能把任务记载他的任务清单上, 等他一个个扫下来扫到我的并且完成之后再来告诉我. 这其实是一个多线程的问题. 我是线程A ...
- PHP使用APC获取上传文件进度
今天发现使用PHP的APC也能获取上传文件的进度.这篇文章就说下如何做. 安装APC 首先安装APC的方法和其他PHP模块的方法没什么两样,网上能找出好多 phpinfo可以看到APC的默认配置有: ...
- Android中常见的对话框
1. 普通对话框 public void click01(View view){ AlertDialog.Builder builder = new AlertDialog.Builder(this) ...