Ubuntu18.04中Hadoop3.1.3安装教程(单机/伪分布式配置)

参考文章

厦门大学数据库实验室 / 林子雨出品http://dblab.xmu.edu.cn/blog/2441-2/

环境要求

Ubuntu 18.04 64位
hadoop-3.1.3.tar
jdk-8u162-linux-x64.tar

安装过程

首先我们需要一个已经安装成功的Ubuntu系统,安装过程可参考我之前的文章:
vmware15.5.0安装Ubuntu18.04.5详细配置

创建用户

改用户名的原因:最开始的用户是我们自己创建的,在后期的学习中用户名改为hadoop会更加方便。下图是创建用户前。
在这里插入图片描述

在Ubuntu系统中打开终端,输入指令创建hadoop新用户。

sudo useradd -m hadoop -s /bin/bash  #创建用户
sudo passwd hadoop  #设置密码
sudo adduser hadoop sudo  #提权

注意:sudo是用高级权限执行指令,需要输入密码,在Linux中输入密码不会显示,自己只管输入,没用显示是正常现象。
在这里插入图片描述
在这里插入图片描述
以上步骤完成后需要注销用户重新登录(也可选择重启虚拟机)。点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
在这里插入图片描述
注销之后就可以在我们的登录界面看到我们新注册的hadoop用户。输入密码登录hadoop用户。
在这里插入图片描述

更新apt和安装编辑器

由于系统内置的软件版本可能会和我们用到的软件的版本不一致,所以需要升级apt。终端输入以下指令。

sudo apt-get update

在这里插入图片描述

安装vim编辑器和gedit编辑器,遇见Y输y就好。

sudo apt-get install vim

在这里插入图片描述

sudo apt-get install gedit

浅述vim与gedit不同:
vim:不能随意定位光标,编辑是需要按i键,退出编辑esc键,保存需要先按esc键,在打出:wq(w是保存,q是退出)。
复制:Ctrl+shift+C
粘贴是Ctrl+shift+V
gedit:可以用法与window文本编辑一样。
复制:Ctrl+C
粘贴:Ctrl+V
保存:Ctrl+S

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

为了实现免密和远程登录。

sudo apt-get install openssh-server

安装后用ssh localhost登录本机

ssh localhost

首次登陆会有提示,输入 yes 。然后按提示输入密码。
在这里插入图片描述
此时登录ssh还是需要输入密码为了方便我们将其配置成无密码登陆。首先退出登录的ssh,然后加入授权。

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

注意千万不要跳步骤,连贯性完成,不然容易出错。
在这里插入图片描述
然后再次输入ssh localhost,就可以免密登录了。

ssh localhost

在这里插入图片描述

安装配置Java环境

首先我们通过共享文件夹或Xftp传输jdk和hadoop的安装文件:jdk-8u162-linux-x64.tar和hadoop-3.1.3.tar。
共享文件夹配置方法:
实现共享粘贴板,共享文件夹
Xftp使用:
Xshell、Xftp连接虚拟机
我这里为了方便使用了Xftp传输文件,直接拖拽就好。这里将hadoop文件和jdk文件都传输了。
在这里插入图片描述
传输后可以直接在虚拟机中看到,将文件移动到到下载里面。(为了好利用指令处理)直接选中拖拽即可。
在这里插入图片描述
打开终端执行以下指令。

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

创建文件夹/usr/lib保存jdk文件。
在这里插入图片描述
执行指令查看文件夹是否存在。

cd /usr/lib/jvm
ls

文件夹存在即为正确。
在这里插入图片描述
接下来配置环境变量,打开环境文件。

cd ~
vim ~/.bashrc

将下面代码输入

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

vim编辑用i
在这里插入图片描述
编辑完成后先按esc键,再输入:wq会在界面左下方显示。
在这里插入图片描述
如果实在不会用vim,可以用gedit编辑。但是要注意用gedit编辑千万不要动到源文件代码,哪怕多一个符号也可能会出问题。
添加成功后输入下面指令让修改生效。

source ~/.bashrc

输入以下指令查看jdk是否安装成功也是查看jdk版本号的代码。

java -version

出现下面信息说明安装成功。
在这里插入图片描述

安装 Hadoop3.1.3

之前已经将安装包放在下载里了,所以直接解压就可以。

sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-3.1.3/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限

hadoop解压后直接就可以使用。
检查是否成功解压也是查看hadoop版本号的指令。

cd /usr/local/hadoop
./bin/hadoop version

出现以下信息即为成功。
在这里插入图片描述

配置过程

Hadoop单机配置(非分布式)

利用hadoop自带的例子测试。

cd /usr/local/hadoop
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/*          # 查看运行结果

这中间会出现很多信息,但是不用管,最后结果如下就好。
出现:
1 dfsadmin
在这里插入图片描述
注意:Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output(即输出文件) 删除

rm -r ./output

Hadoop伪分布式配置

修改core-site.xml文件

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

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

添加前:
在这里插入图片描述
添加后:
在这里插入图片描述
直接Ctrl+S保存就好。关闭后修改文件文件 hdfs-site.xml

gedit ./etc/hadoop/hdfs-site.xml

同理,在<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>

添加后:
在这里插入图片描述
注意代码不能多也不能少。配置完成后,执行 NameNode 的格式化

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

下面是反馈信息的前部分和后部分

WARNING: /usr/local/hadoop/logs does not exist. Creating.
2022-07-23 23:29:21,335 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = crush-virtual-machine/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 3.1.3
STARTUP_MSG:   classpath = /usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/accessors-smart-1.2.jar:

..........(省略的部分)

2022-07-23 23:29:22,983 INFO namenode.FSImage: Allocated new BlockPoolId: BP-1971598584-127.0.1.1-1658590162973
2022-07-23 23:29:22,998 INFO common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted.
2022-07-23 23:29:23,051 INFO namenode.FSImageFormatProtobuf: Saving image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression
2022-07-23 23:29:23,175 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 393 bytes saved in 0 seconds .
2022-07-23 23:29:23,196 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2022-07-23 23:29:23,202 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid = 0 when meet shutdown.
2022-07-23 23:29:23,207 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at crush-virtual-machine/127.0.1.1
************************************************************/

一般报错为java的错,若出错请仔细检查jdk安装与配置和 core-site.xml与hdfs-site.xml文件的配置是否出现多个字符少个字符的情况。
在这里插入图片描述
尝试启动hadoop,开启 NameNode 和 DataNode 进程。

cd /usr/local/hadoop
./sbin/start-dfs.sh  

输入jps查看进程。

jps

如下图出现4个进程说明配置成功
在这里插入图片描述
即伪分布式配置成功。尝试运行实例。
首先在 HDFS 中创建用户目录。

./bin/hdfs dfs -mkdir -p /user/hadoop

将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统。

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表:

./bin/hdfs dfs -ls input

伪分布式运行 MapReduce 作业的方式跟单机模式相同:

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

查看运行结果。

./bin/hdfs dfs -cat output/*

在这里插入图片描述
将运行结果取回到本地,在本地查看。

rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*

在这里插入图片描述
为了避免重复最后删除 output 文件夹

./bin/hdfs dfs -rm -r output    # 删除 output 文件夹

最后关闭 Hadoop.

./sbin/stop-dfs.sh

**注意:**伪分布式的使用必须开启./sbin/start-dfs.sh和关闭./sbin/stop-dfs.sh,异常关闭可能会使下次使用出现错误。
至此,完成了Hadoop3.1.3的安装与单机/伪分布式配置并测试。

  • 12
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 以下是Ubuntu 18.04安装Hadoop的教程: 1. 安装Java Hadoop需要Java环境,因此需要先安装Java。在终端输入以下命令: sudo apt-get update sudo apt-get install default-jdk 2. 下载HadoopHadoop官网下载最新版本的Hadoop,下载地址为:https://hadoop.apache.org/releases.html 3. 解压Hadoop 将下载的Hadoop压缩包解压到指定目录,例如解压到/opt/hadoop目录。在终端输入以下命令: sudo tar -zxvf hadoop-3.3..tar.gz -C /opt/ 4. 配置Hadoop环境变量 打开/etc/profile文件,添加以下内容: export HADOOP_HOME=/opt/hadoop-3.3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 保存并退出文件,然后在终端输入以下命令使环境变量生效: source /etc/profile 5. 配置Hadoop 进入Hadoop安装目录,编辑etc/hadoop/hadoop-env.sh文件,将JAVA_HOME设置为Java的安装路径,例如: export JAVA_HOME=/usr/lib/jvm/default-java 然后编辑etc/hadoop/core-site.xml文件,添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:900</value> </property> </configuration> 接着编辑etc/hadoop/hdfs-site.xml文件,添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3./data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3./data/datanode</value> </property> </configuration> 最后编辑etc/hadoop/mapred-site.xml文件,添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 6. 启动Hadoop 在终端输入以下命令启动Hadoop: start-all.sh 7. 验证Hadoop是否正常运行 在浏览器输入http://localhost:50070/,如果能够看到Hadoop的Web界面,则说明Hadoop已经正常运行。 以上就是Ubuntu 18.04安装Hadoop的教程,希望能够帮助到你。 ### 回答2: Hadoop是一个开源的基于Java的分布式计算平台,主要用于处理大规模数据。ubuntu18.04是目前较为常见的一个Linux发行版,本文将对如何在ubuntu18.04安装hadoop进行具体介绍。 1. 安装Java环境 Hadoop是基于Java开发的,因此需要先安装Java环境。在终端执行以下命令: sudo apt-get update sudo apt-get install openjdk-8-jdk 2. 配置SSH Hadoop需要使用SSH来进行节点之间的通信,因此需要先配置SSH。在终端执行以下命令: sudo apt-get install ssh ssh-keygen -t rsa -P '' 这样在当前用户的home目录下就会生成.id_rsa.pub和id_rsa两个文件,这两个文件分别是公钥和私钥。 3. 下载与安装Hadoop 可以从官网下载Hadoop二进制安装包,解压后将文件夹移动到指定的目录即可。 tar -xzvf hadoop-2.7.3.tar.gz sudo mv hadoop-2.7.3 /usr/local/hadoop 4. 配置Hadoop环境变量 为了在任何目录下都可以使用Hadoop命令,需要将Hadoop的bin目录添加到环境变量。打开~/.bashrc文件,在最后添加以下代码: export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin 保存文件后,执行以下命令,让环境变量立即生效: source ~/.bashrc 5. 修改Hadoop配置文件 目前,需要修改三个配置文件:hadoop-env.sh,core-site.xml和hdfs-site.xml。 hadoop-env.sh配置文件: 打开$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件,找到以下一行: #export JAVA_HOME=${JAVA_HOME} 将其修改为: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ core-site.xml配置文件: 打开$HADOOP_HOME/etc/hadoop/core-site.xml文件,找到以下代码块: <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> 将其修改为: <property> <name>fs.defaultFS</name> <value>hdfs://localhost:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop_scratch</value> </property> hdfs-site.xml配置文件: 打开$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,找到以下代码块: <property> <name>dfs.replication</name> <value>1</value> </property> 修改为: <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop-2.7.3/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop-2.7.3/dfs/data</value> </property> 6. 格式化Hadoop文件系统 在终端执行以下命令: hdfs namenode -format 执行该命令后,会将Hadoop文件系统初始化。 7. 启动Hadoop集群 在终端执行以下命令启动Hadoop集群: start-dfs.sh start-yarn.sh 8. 验证Hadoop集群是否正常 执行以下命令: hadoop fs -mkdir /test 如果命令执行成功,则说明Hadoop集群已经成功安装配置! 以上就是在Ubuntu18.04安装Hadoop的教程。Hadoop作为一个大数据处理框架,安装配置相对较为繁琐,需要仔细操作。希望本文能够帮助到读者,为日后的工作和学习提供方便。 ### 回答3: Ubuntu 18.04安装Hadoop的步骤如下: 1. 安装Java JDK:Hadoop是用Java编写的,所以必须要安装JDK。在终端使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install default-jdk ``` 2. 确认Java是否成功安装: ``` java -version ``` 3. 下载Hadoop:在Hadoop的官网上下载二进制文件,也可以使用以下命令来下载: ``` wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz ``` 4. 解压缩Hadoop文件: ``` tar -xzf hadoop-3.2.2.tar.gz ``` 5. 设置Hadoop环境变量:编辑~/.bashrc文件并添加以下内容: ``` export HADOOP_HOME=/path/to/hadoop-3.2.2 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 6. 配置Hadoop:打开Hadoop配置文件进行编辑: ``` cd ~/hadoop-3.2.2/etc/hadoop/ sudo nano hadoop-env.sh //编辑文件 ``` 找到以下内容: ``` export JAVA_HOME=${JAVA_HOME} ``` 将“${JAVA_HOME}”更改为实际的Java JDK路径: ``` export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 //修改后 ``` 7. 配置Hadoop的核心文件:打开core-site.xml文件进行编辑: ``` sudo nano core-site.xml //编辑文件 ``` 添加以下内容: ``` <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 8. 配置Hadoop的HDFS:打开hdfs-site.xml文件进行编辑: ``` sudo nano hdfs-site.xml //编辑文件 ``` 添加以下内容: ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/<username>/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/<username>/hadoop/hdfs/datanode</value> </property> </configuration> ``` 将“<username>”更改为您的用户名。 9. 格式化HDFS: ``` hdfs namenode -format ``` 10. 启动Hadoop服务: ``` start-dfs.sh ``` 11. 验证Hadoop: 使用以下命令创建一个测试文件并将其上传到HDFS: ``` echo "Hello World" > test.txt hdfs dfs -mkdir /inputs hdfs dfs -put test.txt /inputs ``` 查看HDFS是否存在test.txt: ``` hdfs dfs -ls /inputs ``` 以上就是在Ubuntu 18.04上安装Hadoop的全部步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G1ea0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值