当前位置:   article > 正文

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

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生成密匙,并将密匙加入到授权

  1. exit                           
  2. cd ~/.ssh/                     
  3. ssh-keygen -t rsa              # 这里三步回车就好了
  4. 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的解压和安装,按着代码来就好了

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

给解压的jdk改名

  1. cd /usr/lib/jvm
  2. ls
  3. 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

在后面添加

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

使变量生效

source /etc/profile

检查环境变量是否成功

java -version

 4.安装hadoop

下载hadoop,下载官网Apache Downloads

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

下面进行解压安装

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

检查是否安装成功

  1. cd hadoop
  2. bin/hadoop version

5. 伪分布式配置

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

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

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

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>file:/usr/local/hadoop/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://localhost:9000</value>
  10. </property>
  11. </configuration>

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

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  13. </property>
  14. </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的格式化

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

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

  1. cd /usr/local/hadoop
  2. 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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/459630
推荐阅读
相关标签
  

闽ICP备14008679号