前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大数据必知必会:Hadoop(1)单机环境安装

大数据必知必会:Hadoop(1)单机环境安装

原创
作者头像
wux_labs
发布于 2023-02-06 06:14:53
发布于 2023-02-06 06:14:53
64301
代码可运行
举报
文章被收录于专栏:数据科学专栏数据科学专栏
运行总次数:1
代码可运行

安装前准备

操作系统准备

本次安装采用的操作系统是Ubuntu 20.04。

更新一下软件包列表。

代码语言:txt
AI代码解释
复制
sudo apt-get update

安装Java 8+

使用命令安装Java 8。

代码语言:txt
AI代码解释
复制
sudo apt-get install -y openjdk-8-jdk

配置环境变量。

代码语言:txt
AI代码解释
复制
vi ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

让环境变量生效。

代码语言:txt
AI代码解释
复制
source ~/.bashrc

下载Hadoop安装包

Hadoop官网Apache Hadoop下载安装包软件。

image-20230120200957218
image-20230120200957218

或者直接通过命令下载。

代码语言:txt
AI代码解释
复制
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
image-20230120201211932
image-20230120201211932

单机环境安装

单机环境是在一个节点上运行一个Java进程,主要用于调试。

解压安装包

将安装包解压到目标路径。

代码语言:txt
AI代码解释
复制
mkdir -p apps
tar -xzf hadoop-3.3.4.tar.gz -C apps
image-20230120201352513
image-20230120201352513

bin目录下存放的是Hadoop相关的常用命令,比如操作HDFS的hdfs命令,以及hadoop、yarn等命令。

etc目录下存放的是Hadoop的配置文件,对HDFS、MapReduce、YARN以及集群节点列表的配置都在这个里面。

sbin目录下存放的是管理集群相关的命令,比如启动集群、启动HDFS、启动YARN、停止集群等的命令。

share目录下存放了一些Hadoop的相关资源,比如文档以及各个模块的Jar包。

配置环境变量

配置环境变量,主要配置HADOOP_HOME和PATH。

代码语言:txt
AI代码解释
复制
vi ~/.bashrc

export HADOOP_HOME=/home/wux_labs/apps/hadoop-3.3.4
export PATH=$HADOOP_HOME/bin:$PATH

让环境变量生效:

代码语言:txt
AI代码解释
复制
source ~/.bashrc

相关命令

Hadoop的常用命令都是通过hadoop命令执行的,命令格式为:

代码语言:txt
AI代码解释
复制
Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
 or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]

支持的Client命令主要有:

代码语言:txt
AI代码解释
复制
    Client Commands:

archive       create a Hadoop archive
checknative   check native Hadoop and compression libraries availability
classpath     prints the class path needed to get the Hadoop jar and the required libraries
conftest      validate configuration XML files
credential    interact with credential providers
distch        distributed metadata changer
distcp        copy file or directories recursively
dtutil        operations related to delegation tokens
envvars       display computed Hadoop environment variables
fs            run a generic filesystem user client
gridmix       submit a mix of synthetic job, modeling a profiled from production load
jar <jar>     run a jar file. NOTE: please use "yarn jar" to launch YARN applications, not this command.
jnipath       prints the java.library.path
kdiag         Diagnose Kerberos Problems
kerbname      show auth_to_local principal conversion
key           manage keys via the KeyProvider
rumenfolder   scale a rumen input trace
rumentrace    convert logs into a rumen trace
s3guard       manage metadata on S3
trace         view and modify Hadoop tracing settings
version       print the version

hadoop jar命令

hadoop jar 可以执行一个jar文件。

  • 验证案例1,统计含有“dfs”的字符串

创建一个input目录。

代码语言:txt
AI代码解释
复制
mkdir input

将Hadoop的配置文件复制到input目录下。

代码语言:txt
AI代码解释
复制
cp apps/hadoop-3.3.4/etc/hadoop/*.xml input/

以下命令用于执行一个Hadoop自带的样例程序,统计input目录中含有dfs的字符串,结果输出到output目录。

代码语言:txt
AI代码解释
复制
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'

执行结果为:

代码语言:txt
AI代码解释
复制
$ cat output/*
1       dfsadmin
  • 验证案例2,计算圆周率

同样执行Hadoop自带的案例,计算圆周率。

代码语言:txt
AI代码解释
复制
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 10 10

执行结果为:

代码语言:txt
AI代码解释
复制
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 10 10
Number of Maps  = 10
Samples per Map = 10
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Wrote input for Map #4
Wrote input for Map #5
Wrote input for Map #6
Wrote input for Map #7
Wrote input for Map #8
Wrote input for Map #9
Starting Job
... ...
Job Finished in 1.767 seconds
Estimated value of Pi is 3.20000000000000000000

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Linux 实用运维脚本分享
#查看僵尸进程 ps -al | gawk '{print $2,$4}' | grep Z # 匹配电子邮件的地址 cat index.html | egrep -o "[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}" > ans.txt #匹配http URL cat index.html | egrep -o "http://[A-Za-z0-9.]+\.[a-zA-Z]{2,3}" > ans.txt #纯文本形式下载网页 lynx -dump w
杰哥的IT之旅
2022/09/02
6.9K0
SecureCRT 命令行备注「建议收藏」
Non-authoritative answer: Name: a.kaixin001.com Addresses:
全栈程序员站长
2022/11/01
1.3K0
【建议收藏】Linux工作/面试常用命令集锦
管道符“|”将两个命令隔开,左边命令的输出作为右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推
JavaEdge
2021/12/07
8800
【建议收藏】Linux工作/面试常用命令集锦
Linux命令行的艺术
熟练使用命令行是一种常常被忽视或被认为难以掌握的技能,但实际上,它可以提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时发现的一些关于命令行的使用的小技巧的摘要。有些小技巧是非常基础的,而另外一些则是相当复杂的甚至晦涩难懂的。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 必读 涵盖范围: * 这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简
小小科
2018/05/03
7.3K0
Linux常用50个命令分享:功能、示例与实用技巧
公众号:码到三十五
2024/03/19
6980
Linux命令必知必会
第一行中,03:30:22是当前时间,up 39 min是系统运行的运行了多长时间,1 user指出了当前有几个用户登录到系统,load average指的是系统负载,这后面的三个值分别是1分钟,5分钟,15分钟的系统负载平均值。
用户2131907
2018/05/15
4K4
linux常用命令汇总_unix命令大全
for i in in {1..10}; do rm -f hadoop-cmf-hive-HIVEMETASTORE-nn1.testhdp.com.log.out.$i;done
全栈程序员站长
2022/11/09
6.2K0
linux常用命令汇总_unix命令大全
10分钟让你掌握Linux常用命令(+1万+++收藏)
split命令:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
全栈程序员站长
2022/07/01
3K0
10分钟让你掌握Linux常用命令(+1万+++收藏)
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
Linux命令的通用命令格式:命令字 [选项] [参数] 选项及参数的含义 选项:用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数:命令操作的对象,如文件、目录名等
青灯古酒
2023/10/16
6830
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
蓝桥ROS机器人之命令行实践
参考网址: github.com/jlevy/the-art-of-command-line 直接选择简体中文实践即可。 github.com/jlevy/the-art-of-co
zhangrelay
2022/05/01
8980
蓝桥ROS机器人之命令行实践
ubuntu 小技巧
InterWikiMap: Ubuntu技巧 (2007-02-21 16:51:22由huangjiahua编辑)
全栈程序员站长
2021/05/19
8540
命令行的艺术
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。
iMike
2019/06/02
1.1K0
Shell(Linux)常用命令
所谓Shell(壳),一般是指由操作系统提供的,用于计算机用户向操作系统输入相关指令并得到结果的程序。Shell可以字符形式的,也可以是图形界面形式的。 Shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序。 在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell(Command shell)。 基础命令行和Shell都可以操作Linux系统,区别在于基础命令行(ls、cd等),是一种单一的操作;Shell可以比基础命令行更复杂,是一种组合型的操作。相比基础命令拥有了面向过程的概念。
十玖八柒
2022/08/01
3.3K0
Shell(Linux)常用命令
mac 终极教程,最全,最实用的教程
备注:我们也可以用「Space」键代替“open”关键字,按下“Space + 文件名字符串”进行搜索,更加方便快捷
AI拉呱
2021/01/14
4.1K0
ubuntu命令大全
查看软件xxx安装内容 #dpkg -L xxx 查找软件 #apt-cache search 正则表达式 查找文件属于哪个包 #dpkg -S filename apt-file search filename 查询软件xxx依赖哪些包 #apt-cache depends xxx 查询软件xxx被哪些包依赖 #apt-cache rdepends xxx 增加一个光盘源 #sudo apt-cdrom add 系统升级 #sudo apt-get update #sudo apt-ge
闵开慧
2018/03/30
2.7K0
命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,这些都是啥意思?
为什么突然想写这样一篇文章呢?其实是因为在最近计划发布的一篇关于 WSL (Windows Subsystem for Linux) 的博文中,我打算对终端模拟器、Shell 的选择与配置进行一些说明。不过对于刚接触 Linux 或者刚接触命令行界面的同学,可能会有些难以理解它们之间的区别(事实上我当初也是这样)。
明月登楼
2018/08/25
5.2K0
命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,这些都是啥意思?
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息
青灯古酒
2023/10/16
4800
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
技能篇:开发必备linux命令大全-稳赚不亏
我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须。接下来将一一详细介绍一些常用的linux的命令
潜行前行
2021/08/20
4.5K0
技能篇:开发必备linux命令大全-稳赚不亏
Win10 CMD命令大全与超好用的快捷键
按组合键 Win(Windows图标键)+R 键打开运行窗口,输入“cmd”按回车即可打开cmd命令提示符
全栈程序员站长
2022/09/02
4.1K0
Win10 CMD命令大全与超好用的快捷键
工作常用linux命令「建议收藏」
Q:添加了新用户bae,sudo一条安装命令后报错xxxis not in the sudoers file. This incident will be reported. 需要允许用户youuser执行sudo命令(需要输入密码),怎么做: 1、切换到root用户下 2、/etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是: 即执行操作:chmod u+w /etc/sudoers 3. 编辑sudoers文件 即执行:vi /etc/sudoers 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
全栈程序员站长
2022/11/08
2.9K0
推荐阅读
相关推荐
Linux 实用运维脚本分享
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验