当前位置: 首页 > news >正文

在Ubuntu中安装hadoop的详细过程

在Ubuntu中安装hadoop的详细过程

请自行安装Ubuntu系统(可参考:在VMWare中安装Linux虚拟机Ubuntu)

一、创建hadoop用户

如果在安装 Ubuntu 的时候不是用的 “hadoop” 用户,这时需要增加一个名为 hadoop 的用户。
首先打开终端窗口,输入如下命令创建新用户 :

sudo useradd -m hadoop -s /bin/bash

接着使用如下命令设置密码,按提示输入两次密码:

sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较困难的权限问题:

sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
在这里插入图片描述

二、更新apt

用 hadoop 用户登录后,我们要先更新一下 apt,后续我们会使用 apt 安装软件。打开终端窗口,输入如下命令:

sudo apt-get update

执行这个命令时,会让你输入hadoop用户的密码,如下:
在这里插入图片描述

三、安装vim

后续需要更改一些配置文件,我这里使用的是 vim,使用如下命令进行安装vim:

sudo apt-get install vim

安装软件时根据提示输入Y:
在这里插入图片描述

四、安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,但还需要安装 SSH server,命令如下:

sudo apt-get install openssh-server

在这里插入图片描述
安装后,使用如下命令登陆本机:

ssh localhost

输入该命令会有如下提示(SSH首次登陆提示),这时按照提示输入 yes 。然后按提示输入密码,这样就登陆到本机了。
在这里插入图片描述
但是这样登陆每次都需要输入密码,所以我们需要配置成SSH无密码登陆。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

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

五、安装Java环境

我这里使用的共享方式安装的JDK
首先点击虚拟机设置,点击选项,再点击共享文件夹,选择总是启用或者是在下次关机或挂起前一直启用:
在这里插入图片描述
点击添加,出现如下图所示:
在这里插入图片描述
然后点击下一步,添加共享文件夹向导,选择浏览,选择主机路径,设置名称(名称可不改,看自己命名习惯),再点击下一步,再点击完成,最后点击确定,共享文件夹就设置成功了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来进入共享文件夹,ls显示该文件夹的内容列表:

cd /mnt/hgfs
ls

根据自己文件夹的实际地址进入,我这里的文件夹是BaiduNetdiskDownload:

cd BaiduNetdiskDownload/
ls

接下来进行安装java环境,先返回主目录,安装jdk,我这里安装的是JDK1.8:

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

JDK文件解压缩以后,可以使用如下命令去查看一下:

cd /usr/lib/jvm
ls

在这里插入图片描述
然后接下来进行设置环境变量,使用vim进行编辑:

cd ~
vim ~/.bashrc

在环境配置文件中进行如下配置:

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

添加完成后保存退出编辑,然后使用下面的命令使其立即生效:

source ~/.bashrc

然后使用如下命令查看是否安装成功:

java -version

出现如下页面就表示安装成功:
在这里插入图片描述

六、安装 Hadoop3.3.5

进行安装Hadoop,这里依然选择用共享文件夹的方式进行安装,根据上一部分的做法进入共享文件夹:

cd /mnt/hgfs  #进入共享文件夹
ls
cd BaiduNetdiskDownload/  
ls
sudo tar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.5/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限
cd /usr/local/hadoop
./bin/hadoop version   #命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息,如图所示

在这里插入图片描述
接下来进行Hadoop伪分布式配置,首先修改配置文件 core-site.xml,输入如下命令:

vim ./etc/hadoop/core-site.xml

将修改成如下内容:

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

成功的话会返回如下图类似的信息:
在这里插入图片描述
接着开启 NameNode 和 DataNode 守护进程:

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

执行完如上命令之后,显示如下:
在这里插入图片描述
启动完成后,可以输入jps判断是否成功启动,启动成功则显示如下内容:
在这里插入图片描述
若是 DataNode 没有启动成功的话,可以做如下尝试:

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

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
关闭 Hadoop,则运行如下命令:

./sbin/stop-dfs.sh

注意: 下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以了。

http://www.xdnf.cn/news/27343.html

相关文章:

  • sqli-labs之Less-7 GET注入写shell
  • 【MySQL数据库】数据类型
  • Git 中修改某个特定的commit提交内容
  • Jsp技术入门指南【七】JSP动作讲解
  • 怎么查看LLM Transformer 架构进行并行计算和设备映射
  • 海量聊天数据处理:基于Spring Boot与SharingJDBC的分库分表策略及ClickHouse冷热数据分离
  • React 第三十三节 ReactRouter 中 useSearchParams 使用详解及注意事项
  • 【数据结构】二叉搜索树
  • SQL注入相关知识
  • 深度解析接口:构建代码规范与实现多态的基石
  • docker转移镜像
  • db中查询关于null的sql该怎么写
  • 测试模板1
  • Linux—I/O复用---select、poll、epoll
  • 学习笔记十八——Rust 封装
  • mysql8.0.17以下驱动导致mybatis blob映射String乱码问题分析与解决
  • 实现AWS Lambda函数安全地请求企业内部API返回数据
  • 嵌入式单片机开发 - 嵌入式系统中 Flash(闪存)与 RAM(随机存储器)
  • 《JVM考古现场(二十三):归零者·重启奇点的终极奥义》
  • 【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识
  • JVM 系列:JVM 内存结构深度解析
  • 基础数学知识-线性代数
  • 蓝桥杯之递归二
  • 洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解 (本题简)
  • 纯FPGA实现AD9361控制的思路和实现 UART实现AXI_MASTER
  • 实现Azure Synapse Analytics安全地请求企业内部API返回数据
  • @EnableAsync+@Async源码学习笔记之二
  • @EnableAsync+@Async源码学习笔记之三
  • 系统思考:危机中的转型机遇
  • STM32单片机入门学习——第43节: [12-3] 读写备份寄存器实时时钟