Hadoop伪分布式安装教程——踩坑经验以及顺利安装的方法

1.前言

在上上篇安装Hadoop的教程里,到了伪分布式这一步,总是卡在启动这一步,数据节点不知道为什么就是权限不够开不了,要么就是进程占用,在杀死进程之后,整个Hadoop出现瘫痪。查遍全网的资料,都说要用chown给他777超级权限,但是我试了两天,发现这个方法似乎不太可行(个人看法),但是在之前linux中配置opencv时也遇到过类似问题,最后是使用root换源来解决的。所以我想用root用户来启动hdfs,查阅资料后发现可行,所以重装系统,开始实践。在实践之后,最后顺利启动节点。

话不多说,上教程。

2.安装方法

(1)一开始是与之前的教程一样我们需要改变core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个配置文件(因为之前写过了所以不再赘述)

修改完这几个文件后可以将Hadoop系统进行初始化。

这几步操作详见        Hadoop大数据处理架构学习——Linux系统上安装Hadoop(Ubuntu22.04)_长弓同学的博客-CSDN博客

中的Hadoop伪分布式安装前几个步骤

由于是使用root启动因此我们还需要改变另外几个配置文件。

(2)在/hadoop/sbin路径下:
         将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

         start-yarn.sh,stop-yarn.sh顶部也需添加以下

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

(3)接着我们还需要修改一个文件:

输入以下命令行打开文件并修改:

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

hadoop-env.sh文件中最后一行加入

HADOOP_SHELL_EXECNAME=root

并且在文件中段配置JAVA环境(加入“export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_341”),如下图所示

 (4)在root中设置免密码登录

如果直接像单机中一样设置ssh免密码登录,会出现报错“root@localhost's password: localhost: Permission denied, please try again.”,这种情况需要进行以下操作:

1.(此步前需要退出root用户)修改root密码:

sudo passwd root

2.辑配置文件,允许以 root 用户通过 ssh 登录:

sudo vi /etc/ssh/sshd_config

 找到:PermitRootLogin prohibit-password禁用

   添加:PermitRootLogin yes

3.重新启动:

sudo service ssh restart

启动完毕后可以再次进入root用户修改ssh密钥并设置无密码登录。

设置无密码登录命令行:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

结束这一步后可以尝试输入“ssh localhost” 命令行进行无密码登录,如果这一步完成(即可以实现无密码登录ssh),如下图所示:

Hadoop伪分布式安装教程——踩坑经验以及顺利安装的方法_第1张图片

 

那么可以输入以下命令行启动hdfs:

cd /usr/local/hadoop
./sbin/start-dfs.sh

出现以下结果,即为启动成功(节点生成完毕):

Hadoop伪分布式安装教程——踩坑经验以及顺利安装的方法_第2张图片

 到这一步,就启动成功了。

3.坑总结以及有用的解决方法整理:

(1)在设置ssh无密码登录时输入主机密码报错(配置文件权限问题):

问题root@localhost's password:localhost:permission denied,please try again - 努力中国 - 博客园

 (2)启动hdfs时权限不够:

Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password) - 程序员大本营

 (3)使用root启动hdfs报错:

使用root配置的hadoop并启动会出现报错 - 猿大侠 - 博客园

 (4)Hadoop启动HDFS进程的时候报错,提示权限不够:

ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes - liangsw - 博客园

(5)启动hadoop进程提示Permission denied的一种解决方法_非典型废言的博客-CSDN博客

 

你可能感兴趣的:(hadoop,分布式,大数据)