一、使用VMware安装Ubuntu虚拟机

在Linux系统各个发行版中,Ubuntu系统在服务端和桌面端使用占比最高,网络上资料最是齐全,所以这里使用Ubuntu LTS。

整体的系统安装文件较大(>1G),这里采用了迅雷加速下载。迅雷下载地址:下载迅雷工具

下载地址:Download Ubuntu Desktop

对于虚拟机,这里采用VMware,因为在诸多免费软件里面VMware是最好用的。

VMware 官网链接 https://www.vmware.com/

使用版本:VMware Workstation 16 Pro

百度一个秘钥就好了,有很多可以查得到的。

推荐可以再下个Xshell用于操作终端。

Xshell免费版官网下载地址:https://www.xshell.com/zh/free-for-home-school/

这里采用的是来自CSDN博客的流程,图文相当详细所以就不再继续赘述。

唯一需要强调一下的是在“13. 设置磁盘容量,并选择 "将虚拟磁盘拆分成多个文件" 。(这里的磁盘大小看个人需求,大于等于推荐的大小)”时,可以将磁盘大小调大一点,像我这里选择的是80GB,这并不是意味着会马上占用你电脑80GB,而是一个类似上限的意思,这东西初始设置好改,后面不够用了就很麻烦,所以初始给多一点。

二、伪分布式平台搭建

Part1: 准备工作

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 。这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

sudo useradd -m hadoop -s /bin/bash
  • sudo命令: 本文中会大量使用到sudo命令。sudo是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。当使用sudo命令时,就需要输入您当前用户的密码。

接着使用如下命令设置密码,如果提示密码过于简单可以无视,只要两次相同即可:

sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署:

sudo adduser hadoop sudo

然后切换到新建的hadoop用户下:

su hadoop

更新 apt,在 Ubuntu 中使用 apt 来下载安装软件,如果没更新可能有一些软件安装不了。

sudo apt-get update

按照下图依次点击 ① ②:

选择“其他”然后选择阿里云镜像服务器。这等效于我们平时在 Windows 系统下安装 python 包时使用清华镜像站。

选择关闭后会提醒你信息过时

后续操作将不再需要图形化界面,故建议使用 xshell 软件,下面演示一下,如不需要可以直接跳转至Part2。

  • step1:查询本机的ip地址:
  • step2:建立Windows与虚拟机的连接。
  • step3:连接建议勾选“记住用户名”“记住密码”

Part2: SSH无密码登录配置

安装vim,提示时按y即可:

sudo apt-get install vim

安装SSH,配置无密码登录:

sudo apt-get install openssh-server

SSH首次登陆提示),输入 yes 。然后按提示输入密码,利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

ssh localhost
exit
cd ~/.ssh/ # 若没有该目录,再执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权

此时再用 ssh localhost 命令,无需输入密码就可以直接登录了。

Part3: JDK的安装与配置

我们需要先将 JDK1.8 (目前企业中主流的 java 版本仍然是 jdk1.8)下载到电脑。

然后将文件上传到 Ubuntu 中,这里我采用的是 rz 的上传方式,需要借用 xshell 工具。

cd ~
sudo mkdir Downloads # 创建 ~/Downloads 目录用来存放下载的文件
cd Downloads # 进入目标目录
rz # 上传文件到 Ubuntu 系统中

解压 JDK 文件:

cd /usr/lib
sudo mkdir jvm # 创建/usr/lib/jvm目录用来存放JDK文件
cd ~ # 进入hadoop用户的主目录
cd Downloads
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm # 把JDK文件解压到 /usr/lib/jvm 目录下

配置环境变量:

cd ~
vim ~/.bashrc

在文件中输入以下内容后,按 Esc 键,输入“:wq”保存并退出

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

执行如下命令让.bashrc文件的配置立即生效:

source ~/.bashrc

验证环境变量是否生效:

java -version

如果能够在屏幕上返回如下信息,则说明安装成功:

Part4: Hadoop的安装与配置

首先,你需要下载一个 hadoop-3.3.4.tar.gz(这是一个官网链接),当然你也可以下载 3.1.3 的版本,这并没有很大的改变。

然后使用同样的方法将文件上传到 Ubuntu 中。

cd ~/Downloads     # 进入目标目录
rz # 上传文件到 Ubuntu 系统中

将 Hadoop 安装至 /usr/local/ 中:

sudo tar -zxvf ~/Downloads/hadoop-3.3.4.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.4/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限

验证 hadoop 是否安装成功:

cd /usr/local/hadoop
bin/hadoop version

如果能够在屏幕上返回如下信息,则说明安装成功:

Part5: Hadoop伪分布式的搭建

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml

vim etc/hadoop/core-site.xml

将原先的<configuration></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

vim etc/hadoop/hdfs-site.xml

将原先的<configuration></configuration>改为下面的内容:

<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>

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

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

成功格式化返回样例(部分):

STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = hadoop/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 3.3.4

如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,首先你要确定前面关于JDK的环境变量配置文件中没有出现问题。然后,到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,再次启动Hadoop。

接着开启 NameNode 和 DataNode 守护进程:

cd /usr/local/hadoop
sbin/start-all.sh #start-all.sh是个可执行文件,中间没有空格

对于伪分布式可以用 start-dfs.sh 启动hadoop,等效于前面的 start-all.sh。

如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况,可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: "NameNode"、"DataNode" 和 "SecondaryNameNode"(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤。由于我前面执行的命令为 start-all.sh,所以是下面这个样子。

成功启动后,可以访问 Web 界面 http://localhost:9870 (由于hadoop版本不同,可能你需要访问的端口号是50070)以及  http://localhost:8088 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

伪分布式到此就搭建完成啦!

下面会再补充一些报错以及解决方案

(1)若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做)

cd /usr/local/hadoop
sbin/stop-dfs.sh # 关闭
rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format # 重新格式化 NameNode
sbin/start-all.sh # 启动

(2)解决 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable警告问题

vim ~/.bashrc
# 添加以下内容
export JAVA_LIBRARY_PATH=/usr/local/hadoop/lib/native

然后重新应用环境变量

source ~/.bashrc

(3)当遇到9870端口被占用的问题时,可以通过更改启动时的端口号来实现启动,记得先通过 sbin/stop-dfs.sh 关闭服务,然后更改前面的 core-site.xml 文件,往里面添加以下内容到<configuration></configuration>中间

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:50090</value>
</property>

(4)无法访问网站,这可能是Linux中的防火墙未关闭的问题:

sudo ufw status    # 查看防火墙状态
sudo ufw disable # 关闭防火墙

啊,好累,这篇写了巨久

整理:BDT20040

在 Ubuntu 22 的基础上进行 Hadoop 伪分布式(HDFS)的搭建的更多相关文章

  1. Hadoop伪分布式HDFS环境搭建和使用

    1.环境要求 Java版本不低于Hadoop要求,并配置环境变量 2.安装 1)在网站hadoop.apache.org下载稳定版本的Hadoop包 2)解压压缩包 检查Hadoop是否可用 hado ...

  2. hadoop伪分布式集群搭建与安装(ubuntu系统)

    1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...

  3. Hadoop学习笔记(一):ubuntu虚拟机下的hadoop伪分布式集群搭建

    hadoop百度百科:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin hadoop官网:http://hadoop.apache.org/ ...

  4. 基于Hadoop伪分布式集群搭建Spark

    一.前置安装 1)JDK 2)Hadoop伪分布式集群 二.Scala安装 1)解压Scala安装包 2)环境变量 SCALA_HOME = C:\ProgramData\scala-2.10.6 P ...

  5. Hadoop伪分布式集群搭建

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 1.下载Hadoop压缩包 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop- ...

  6. 在mac上安装hadoop伪分布式

    换了macbook pro之后,要重新安装hadoop,但是mac上的jdk跟windows上的不同,导致折腾了挺久的,现在分享出来,希望对大家有用. 一:下载jdk 选择最新版本下载,地址:http ...

  7. Hadoop伪分布式环境快速搭建

    Hadoop分支 Apache Cloudera Hortonworks 本文是采用Cloudera分支的hadoop. 下载cdh-5.3.6 版本 下载地址:http://archive.clou ...

  8. hadoop伪分布式平台组件搭建

    第一部分:系统基础配置 系统基础配置中主完成了安装大数据环境之前的基础配置,如防火墙配置和安装MySQL.JDK安装等 第一步:关闭防火墙 Hadoop与其他组件的服务需要通过端口进行通信,防火墙的存 ...

  9. hadoop伪分布式集群的搭建

    集群配置: jdk1.8.0_161 hadoop-2.6.1 linux系统环境:Centos6.5 创建普通用户  dummy 设置静态IP地址 Hadoop伪分布式集群搭建: 为普通用户添加su ...

  10. 在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例

    在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例                                                     ...

随机推荐

  1. Backbone 网络-ResNet v2 详解

    目录 目录 目录 前言 摘要 1.介绍 2.深度残差网络的分析 3.On the Importance of Identity Skip Connection 4.On the Usage of Ac ...

  2. java调用python脚本 并传参(根据配置文件获取python文件地址)

    方式一: Java代码 package com.mybatis.plus.utils; import cn.hutool.core.lang.Console; import java.io.Buffe ...

  3. VS2019发布至远程IIS部署流程

    服务器部署 传统的开发将项目发布至本地桌面之后,复制至站点目录或通过FTP上传站点目录,有点小麻烦,通过开发工具VS2019本身集成的功能,可以一步到发布到远程IIS站点. 条件: VS系列发工具,例 ...

  4. CTFshow——funnyrsa3

    题目如下: 题目分析: 发现常规rsa不存在的dp.查找资料知道 dp ≡ d mod (p - 1).意识到dp是解题关键,可能dp和n存在某种关系可以解出p或者去,跟之前有一题有点类似,求p和q之 ...

  5. DFS深度优先搜索例题分析

    洛谷P1596 Lake Counting S 题面翻译 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方.我们用一个 \(N\times M(1\times N\times 100, 1\leq ...

  6. 贪心算法Dijkstra

    Dijkstra 最短路径问题 : 给定一个带权有向图 G = (V, E, W),同时给定一个源点 u (u ∈ V),我们要找出从源点 u 出发到其它各点的最短路径距离,并得出这些最短路径的具体路 ...

  7. xcode运行sh权限问题

    Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...

  8. YMOI 2019.6.8

    题解 YMOI 2019.6.8 前言 第二回考试,承让拿了第一次rank1,(●ˇ∀ˇ●) 题解 这次考试总体发挥比较好,每一道题都尽可能得取得了所能及的所有分.虽然多少还是有失误,不过在所难免.保 ...

  9. 异常的产生过程解析-throw关键字

    异常的产生过程解析 先运行下面的程序,程序会产生一个数组索引越界异常ArrayIndexOfBoundException.我们通过图解来解析下异常产生的过程. 工具类 throw关键字 在编写程序时, ...

  10. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0

    maven package 异常,今天打包springboot项目时碰到的问题. Failed to execute goal org.apache.maven.plugins:maven-resou ...