Hadoop3.1.3单机(伪分布式配置)

news2024/11/25 5:33:59

参考:林子雨老师网站博客
Hadoop安装搭建伪分布式教程(全面)吐血整理

环境

Vmare12
Ubuntu16.04

创建Hadoop用户

若安装Ubuntu不是用的“hadoop”用户,则需要增加一个名为"hadoop"的用户

  1. 直接快捷键ctrl+alt+t或者点击小箭头,以打开终端窗口,输入该命令创建新用户
$ sudo useradd -m hadoop -s /bin/bash

该条命令创建了可以登录的hadoop用户,且使用/bin/bash作为shell

  • sudo命令:Ubuntu中一种权限管理机制。管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。
    当使用sudo命令时,需要输入当前用户密码
  • 密码:在linux的终端中输入密码,终端不显示任何你当前输入的密码,也不会提示已输入了多少字符密码(在windows系统中,输入密码往往会是*)
  • 输入法中英文切换:ubuntu中终端输入的命令一般是用英文输入。
  • Ubuntu终端复制快捷键:ctrl+v+shift
  1. 设置密码
    以密码hadoop为例
$ sudo passwd hadoop

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

$ sudo adduser hadoop sudo
  1. 注销当前用户
    点击屏幕右上角的齿轮,选择注销,返回登陆界面。在登陆界面选择刚创建的hadoop用户进行登录。

更新apt

  1. (1)为后续一些apt软件安装,更新apt
$ sudo apt-get update 

(2)系统设置(左边的小齿轮)→软件和更新(系统)→from中选择other→列表中选[mirrors.aliyun.com]→choose server(右下角)→关闭→重新载入
(3)再次执行sudo apt-get update
2. 为后续方便更改配置文件,安装vim
sudo apt-get install vim
安装时照例有确认,输入y即可

vim常用模式:命令模式,插入模式,可视模式,正常模式
(1)正常模式
主要用来浏览文本内容。
一开始打开vim是正常模式,且在任何模式下按esc键可以返回正常模式
(2)插入编辑模式
用来向文本添加内容。
在正常模式下,输入i键进入插入编辑模式
(3)推出vim
利用vim修改任何文本时,都别忘了保存。
esc键退回到正常模式中,输入:wq可保存并退出vim

安装SSH、配置SSH无密码登录

SSH登录(类似于远程登录,可以登录某台Linux主机,且在上面运行命令)在集群、单节点模式都需用到。
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 #加入授权

~ :在Linux系统中,~代表的是用户的主文件夹,即"/home/用户名"。如你的用户名是hadoop,则 ~ 代表"/home/hadoop/"
#: 其后的内容为注释

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

安装Java环境

版本匹配:Hadoop3.1.3需要JDK版本在1.8及以上。

  • 本机文件传输到虚拟机

借助FileZilla

  • 在Linux命令行界面中,执行如下Shell命令(当前登录用户名是hadoop)
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录来存放JDK文件
cd ~ # 进入hadoop用户的主目录
cd Downloads # 注意区分大小写字母&刚才通过FTP软件把JDK安装包jdk.8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm # 把JDK文件解压到/usr/lib/jvm目录下

(复制加shift)

  • 确认是否添加成功
cd /usr/lib/jvm
ls

看到/usr/lib/jvm目录下有jd1.8.0目录

  • 设置环境变量
cd ~
vim ~/.bashrc

使用vim编辑器,输入i进入编辑状态,
在文件开头添加

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

按esc键退出编辑状态,输入:wq保存并退出

  • 让.bashrc文件的配置立即生效
source ~/.bashrc
  • 查看是否安装成功
java -version

返回版本号啥的说明🆗

安装hadoop3.1.3

hadoop3.1.3
链接:https://pan.baidu.com/s/1BnF9IaBMH8QazFe7BurxOw
提取码:j756

同上用FileZilla传到Ubuntu中,以保存在Downloads为例

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

hadoop解压后即可使用。
输入命令检查Hadoop是否可用,显示Hadoop版本信息即为欧克

cd /usr/local/hadoop
./bin/hadoop version
./ 相对路径,以/usr/local/hadoop为当前目录

配置方式(单机&伪单机)

Hadoop单机配置(非分布式)

Hadoop默认模式就是非分布式模式(本地模式),无需进行其他配置即可运行。
非分布式即单Java进程,方便进行调试。

运行./bin/hadoop jar ./share/hadoop/marreduce/hadoop-mapreduce-examples-3.1.3.jar可以看到所有例子。Hadoop附带了丰富的例子,例如wordcount,terasort,join,grep

  • 例如运行grep例子,把input文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到output文件夹中
cd /usr/localhadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input #把配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* #查看运行结果(符合正则规矩的单词出现了一次)

Hadoop默认不会覆盖结果文件,则再次运行上面实例的话会提示出错,需要先把./output
删除

rm -r ./output

Hadoop伪分布式配置

  • 配置
    Hadoop的配置文件位于/usr/local/hadoop/etc/hadoop/中
cd /usr/local/hadoop
cd etc
cd hadoop

伪分布式需要修改两个配置文件:core-site.xml和hdfs-site.xml.

vim 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中修改为

<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的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件)。
若需要从伪分布式模式切换为非分布式模式,需要删除core-site.xml中的配置项。

  • 格式化
cd /usr/local/hadoop
./bin/hdfs namenode -format

返回的一大堆信息中,后半部分有“successfully formatted”即为成功

  • 启动Namenode和DataNode守护进程
cd /usr/local/hadoop # 已进入该目录则无需重复
./sbin/start-dfs.sh # start-dfs.sh是个完整的可执行文件,中间没有空格
  • 检查是否启动成功
jps

若出现了以下三个进程(除jps的三个)(缺一不可),说明🆗
在这里插入图片描述

简单运行Hadoop伪分布式实例

创建多级目录并检查
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/393923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言督学训练营 第二天】C语言中的数据类型及标准输入输出

文章目录一、前言二、数据类型1.基本数据类型①.整形②.浮点型③.字符型2.高级数据类型3.数据分类①.常量②.变量三、标准输入输出1.scanf2.printf四、进制转换1.进制转换简介2.十进制转其他进制3.其他进制转换五、OJ网站的使用一、前言 王道2024考研408C语言督学营第二天&…

公安室内射击场设计

公安室内射击场是为了训练和提高警察、特警、部队等职业人士的射击技能而设计的。其设计需要考虑的因素包括安全性、实用性、灵活性、耐久性等多个方面。下面将详细介绍公安室内射击场的设计要点。 首先&#xff0c;安全性是设计公安室内射击场的最重要因素之一。射击场应该具备…

杂记——19.git上传时出现the remote end hung up unexpectedly错误

git是大家常用的项目版本控制工具&#xff0c;熟练地使用git可以提高开发效率&#xff0c;但是有时在使用git推送代码时&#xff0c;会提示“the remote end hung up unexpectedly”的问题&#xff0c;那么git推送代码提示“the remote end hung up unexpectedly”怎么解决呢&a…

Java多线程还不会的进来吧,为你量身打造

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…

Anaconda的安装及使用

Anaconda集成了常用的扩展包&#xff0c;能够方便地对这些扩展包进行管理&#xff0c;比如安装和卸载包&#xff0c;这些操作都需要依赖conda。conda是一个在Windows、Mac OS和Linux上运行的开源软件包管理系统和环境管理系统&#xff0c;可以快速地安装、运行和更新软件包及其…

升压模块直流隔离低压转高压稳压电源5v12v24v转50V100V110V150V200V250V400V500V600V800V1000V

特点效率高达80%以上1*2英寸标准封装单电压输出价格低稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上应用HRB W2~40W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36VDC标准&…

计算机网络--网络基础

目录 一.互联网的组成 ​编辑 1.互联网的边缘部分 1.1客户-服务器方式 1.2对等连接方式 ​编辑 2.互联网的核心部分 2.1电路交换 2.2分组交换 2.3报文交换 二.计算机网络的类别 1.按网络的作用范围进行分类 2.按网络的使用者进行分类 3.用来把用户接入互联…

I.MX6ULL_Linux_系统篇(23) busybox文件系统构建

Linux“三巨头”已经完成了 2 个了&#xff0c;就剩最后一个 rootfs(根文件系统)了&#xff0c;本章我们就来学习一下根文件系统的组成以及如何构建根文件系统。这是 Linux 移植的最后一步&#xff0c;根文件系统构建好以后就意味着我们已经拥有了一个完整的、可以运行的最小系…

零代码工具我推荐Oracle APEX

云原生时代零代码工具我推荐Oracle APEX 国内的低码开发平台我也看了很多&#xff0c;感觉还是不太适合我这个被WEB抛弃的老炮。自从看了Oracle APEX就不打算看其它的了。太强大了&#xff0c;WEB服务器都省了&#xff0c;直接数据库到WEB页面。功能很强大&#xff0c;震撼到我…

快速将小程序生成APP八步走!

在开始之前&#xff0c;让我们一起来了解一下Finclip吧&#xff01; Finclip是凡泰极客公司研发的一款在开发体验、学习门槛、应用场景、生态能力等方面都体现巨大优势的小程序容器。不论是移动APP&#xff0c;还是电脑、电视、车载主机等设备&#xff0c;在集成Finclip小程序…

代码随想录算法训练营day52 | 动态规划之子序列 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

day52300.最长递增子序列1.dp[i]的定义2.状态转移方程3.dp[i]的初始化4.确定遍历顺序5.举例推导dp数组674. 最长连续递增序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组718. 最长重复子数组1…

Linux驱动交叉编译把驱动文件放入开发板,以及printk函数打印级别

上一篇介绍了一个最简单的驱动程序和驱动程序大体结构&#xff0c;但那还是用本地编译只能在Ubuntu上运行&#xff0c;我们该怎么编译一个能加载到开发板上呢&#xff0c;就需要交叉编译&#xff0c;交叉编译通常都是在嵌入式开发中使用到的。 交叉编译 理解交叉编译前先了解…

TypeScirpt 入门与实战 学习笔记

文章目录求一键三连前言了解TS的前世今生基本实现数据类型枚举类型 enum&#xff08;用的少&#xff09;顶端类型&#xff08;通用类型&#xff09;anyunknown对比never数组只读 &#xff1a;readonly元组 类型objectObject和Object&#xff08;&#xff09;区分命名空间&#…

论文阅读 :Masked Autoencoders As Spatiotemporal Learners

NeurIPS2022——Masked Autoencoders As Spatiotemporal Learners Keywords&#xff1a; Videos&#xff1b;object detection&#xff1b; 文章目录NeurIPS2022——Masked Autoencoders As Spatiotemporal Learners研究动机本文贡献Introduction & Related work整体架构&…

redis进阶:mysql,redis双写一致性,数据库更新后再删除缓存就够了吗?

0. 引言 最近线上的一个状态修改功能出现了问题&#xff0c;一开始是运营找了过来&#xff0c;运营告知某条数据的状态已经开启了的&#xff0c;但是实际使用起来还是没有生效&#xff0c;于是拿到这个问题后&#xff0c;首先就去数据库查了这条数据&#xff0c;发现确实如他所…

深入了解字典树

字典树&#xff08;Trie&#xff09; 目录字典树&#xff08;Trie&#xff09;一、问题引入二、字典树介绍3、字典树的实现4、存储与查询一、问题引入 现有长度为n的字符串数组&#xff0c;[“go”&#xff0c;“goog”&#xff0c;“google”&#xff0c;“golang”&#xff0…

【数据结构入门】-链表之双向循环链表

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【数据结构初阶&#xff08;C实现&#xff09;】 文章目录链表初始化打印链表尾插尾删新建一个节点头插头删查找在pos之前插入*删除pos位…

CSS中的伪元素和伪类

一直被伪类和伪元素所迷惑&#xff0c;以为是同一个属性名称&#xff0c;根据CSS动画&#xff0c;索性开始研究a:hover:after&#xff0c;a.hover:after的用法。 伪元素 是HTML中并不存在的元素&#xff0c;用于将特殊的效果添加到某些选择器。 对伪元素的描述 伪元素有两…

【Verilog】握手信号实现跨时钟域数据传输-handshake

文章目录handshake握手电路使用握手信号实现跨时钟域数据传输接口信号图题目描述解题思路代码设计数据发送模块data_driver数据接收模块data_receivertestbench波形handshake握手电路 跨时钟域处理是个很庞大并且在设计中很常出现的问题握手(handshake)是用来处理信号跨时钟域…

数字化引领乡村振兴,VR全景助力数字乡村建设

一、数字乡村建设加速经济发展随着数字化建设的推进&#xff0c;数字化农业产业正在成为农业产业发展的主导力量&#xff0c;因此数字化技术赋予农业产业竞争力的能力不可小觑。数字化乡村建设背景下&#xff0c;数字化信息技术将全面改造升级农村产业&#xff0c;从农业、养殖…