一、使用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. Linux 下的输入输出和重定向示例

    Linux 下的输入输出和重定向示例 作者:Grey 原文地址: 博客园:Linux 下的输入输出和重定向示例 CSDN:Linux 下的输入输出和重定向示例 说明 Linux 下的输入输出有如下三种 ...

  2. 深入浅出OSI七层参考

    本篇博客是笔者阅读<图解TCP/IP>所记录下的笔记,有兴趣的朋友可以去看一看这本书. OSI七层参考模型 ​ 本小节以电子邮件通信为例,分别来阐述OSI七层模型的每一层是如果进行通信处理 ...

  3. adb devices出现offline解决方法

    出现offline或者error: more than one device/emulator问题: 解决方法: 输入命令: adb kill-server adb start-server adb ...

  4. Jmeter 定时器之同步定时器(Synchronizing Timer)

    性能测试中需要模拟多用户并发测试,此时需要用到同步定时器(Synchronizing Timer).如下图,模拟用户组的数量设置20,相当于20个用户(线程)并发 名词解释: 名称:定时器名称,可根据 ...

  5. MongoDB - 副本集简介

    简介 在 MongoDB 中,副本集指的是一组 MongoDB 服务器实例掌管同一个数据集,实例可以在不同的机器上. 其中一个用于处理写操作的是主节点(Primary),还有多个用于保存主节点的数据副 ...

  6. ssm——mybatis整理

    目录 1.mybatis框架概述 2.直接使用jdbc连接数据库带来的问题 3.mybatis连接池 3.1.mybatis连接池yml配置 3.2.mybatis连接池xml配置 4.一个简单的my ...

  7. java线程基础知识整理

    目录 线程基本概念 1.java实现线程 2.线程的生命周期 3.线程常用的方法 3.1.sleep() 3.2.interrupt方法 3.3.stop方法 4.线程调度 4.1.常见的线程调度模型 ...

  8. NET-Core利用etag进行浏览器缓存

    title: .NET Core浏览器缓存方案 date: 2022-12-02 14:17:36 tags: - .NET 缓存介绍及方案 在后端开发中经常会使用缓存来提高接口的响应速度,降低系统的 ...

  9. Visual Studio2017快速收缩/扩展代码块

    首先要设置伸缩函数的同时也伸缩region块: 快捷键 Ctrl+M+O 收缩所有方法 Ctrl+M+L 展开所有方法

  10. SwiftUI(二)

    也许很多人看完一会有一个疑问,为什么UIHostingController我这里报错呢     看到这里大家心中的疑问也就解开了 接下来给大家说下@State的作用 通过@State swiftUI实 ...