虚拟机Ubuntu安装Hadoop(伪分布式安装)

1.创建hadoop用户

在终端输入

sudo useradd -m hadoop -s /bin/bash

为hadoop用户设置密码,连续输入两次密码即可

sudo passwd hadoop

为Hadoop用户增加管理员权限,避免以后的麻烦

sudo adduser hadoop sudo

这里我们切换到hadoop用户,进行下一步操作

2.ssh的安装以及设置免密登录

检测ssh是否安装,有sshd说明已经启动

ps -ef |grep ssh

这边我们还需要安装ssh server,这边又yes输入yes就可以

sudo apt-get install openssh-server

登录ssh,有yes输入yes

ssh localhost

紧接着退出登录,设置无密码登录,使用ssh-keygen生成密匙,并将密匙加入到授权

exit                           
cd ~/.ssh/                     
ssh-keygen -t rsa              # 这里三步回车就好了
cat ./id_rsa.pub > ./authorized_keys  

这边进行验证

ssh localhost

出现这个说明免密登录设置成功 

3.java环境的搭建

因为hadoop是由java编写的,所以hadoop的安装与驱动需要jdk,这边我们需要下载jdk,并且设置环境变量。

首先我们先下载所需的jdk

下载网址Java Downloads | Oracle

 下载上图画圈的,下载完成之后,连接虚拟机与xftp,由于需要直到虚拟机的ip地址,我们进入虚拟机输入指令

ifconfig

 目前没有下载所需的配置,这边下载一下,如果没有则不下载

sudo apt install net-tools

再次查看ip,这边可知ip是192.168.220.132

 打开xftp新建会话

 这边最好在hadoop的家目录下创建一个为downloads的目录

mkdir downloads

将jdk传输到downloads目录下

 在虚拟机上切换到downloads目录下

cd downloads

接下来我们进行jdk的解压和安装,按着代码来就好了

mkdir downloads
cd downloads
cd /usr/lib
sudo mkdir jvm #创建存放jdk的文件夹
cd /home/hadoop/downloads
ls #展示jdk名称
sudo tar -zxvf jdk-18_linux-x64_bin.tar.gz -C /usr/lib/jvm #这边按照你自己下的版本名

给解压的jdk改名

cd /usr/lib/jvm
ls
sudo mv jdk-18.0.2.1 java

设置jdk的环境变量

vim /etc/profile

如果提示没有vim,则下载安装vim

sudo apt install vim

再执行上述代码

这边还要给 /etc/profile 增加可写权限

这边考虑简单

sudo chmod a+w /etc/profile

在后面添加

export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使变量生效

source /etc/profile

检查环境变量是否成功

java -version

 4.安装hadoop

下载hadoop,下载官网Apache Downloads

 继续通过xftp上传到downloads,这边不赘述

下面进行解压安装

sudo tar -zxvf hadoop-3.3.1.tar.gz -C /usr/local    
cd /usr/local/
sudo mv hadoop-3.3.1 hadoop            #将文件夹名改为hadoop

检查是否安装成功

cd hadoop
bin/hadoop version

5. 伪分布式配置

先给两个文件增加可写权限

sudo chmod a+w etc/hadoop/core-site.xml
sudo chmod a+w etc/hadoop/hdfs-site.xml

为xml中的configuration 标签添加如下内容:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改配置文件 hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

编辑hadoop-env.sh

向下找到某行内容为 ”# export JAVA_HOME=” ,修改为export JAVA_HOME=/usr/lib/jvm/java

在Hadoop安装目录下找到sbin文件夹

在里面修改四个文件

对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

配置完成后,进行NameNode的格式化

cd /usr/local/hadoop
sudo ./bin/hdfs namenode -format

然后开启 NameNode 和 DataNode 守护进程。

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

输入命令jps

jps

出现这个说明配置成功

 但是一般来说我是没成功很多次

显示如下结果

Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password)

这时我们该怎么办呢?

这说明是权限不够或者刚才免密登录根本没成功

这时我们选择切换root用户,但是这时也没有设置免密,所以我们重新设置一次免密

 

配置SSH

1、建议先删除一下ssh的目录,重新配置

rm -r  ~/.ssh

2、使用如下命令来生存公钥和私钥,参数说明:-t为选择加密算法,-P为设置密码,设置为""就表明不需要密码,主要P大写,输入命令后,一直回车即可

ssh-keygen -t rsa -P ""

3、进入到ssh目录,可以看到两个文件,id_rsa为私钥,id_rsa.pub为公钥,只要将本机内的id_rsa.pub放入到有对方机器的authorize_keys文件中,就可以ssh登录对方的机器

cd ~/.ssh

4、首先设置免密登录本机,使用cat命令将公钥添加到authorize_keys文件中,注意一个“>”表示覆盖文件,两个“>”表示在文件尾部追加,添加以后尝试免密登录本机可以,第一次连接需要输入yes确认

cat id_rsa.pub >authorized_keys

5、接下来是免密登录对方的机器,首先在对方机器做如上的操作,生成公钥和私钥,然后使用scp命令将本机的公钥追加到对方机器的authorize_keys文件中即可实现免密登录

scp id_rsa.pub 用户名@ip地址:文件目录

这里我们用 scp id_rsa.pub root@localhost

这样基本就配置完成了,如果还有问题还请大家一起探讨。

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值