在Ubuntu20.04里安装Hadoop实现伪分布式详细步骤(图文),亲测成功

1.创建一个新的Hadoop用户

创建用户命令如下:

sudo useradd -m hadoop -s /bin/bash

接着为 hadoop 用户设置密码:

sudo passwd hadoop

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu hadoop安装使用

然后为 hadoop 用户增加管理员权限:

sudo adduser hadoop sudo

ubuntu hadoop安装使用 在ubuntu安装hadoop_hadoop_02

到这里第一步就结束啦,点击注销当前用户,然后用刚才新加的Hadoop用户登录:

ubuntu hadoop安装使用 在ubuntu安装hadoop_hadoop_03

2.安装SSH

先更新一下:

sudo apt-get update

安装SSH:

sudo apt-get install openssh-server

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_04

安装好了以后使用SSH登录,先后输入yes和密码:

ssh localhost

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_05

因为每次都要输入密码比较麻烦所以把它弄成免密登录,先退出:

exit

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu_06

然后进入ssh目录,利用ssh-keygen生成秘钥,中间都按回车就行

cd ~/.ssh/
ssh-keygen -t rsa

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu hadoop安装使用_07

然后将秘钥加入到授权中:

cat ./id_rsa.pub >> ./authorized_keys

此时在使用SSH登录就不需要密码了:

ssh localhost

ubuntu hadoop安装使用 在ubuntu安装hadoop_hadoop_08

3.配置Java环境

首先还是先更新一下:

sudo apt-get update

安装openjdk-8-jdk:

sudo apt-get install openjdk-8-jdk

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu_09

查看java版本看是否安装成功:

java -version

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu_10

然后配置Java环境变量:

gedit ~/.bashrc

将如下命令添加到第一行(注意等号附近不能有空格),改完后保存退出:

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

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu_11

执行如下命令让刚才的改动生效:

source ~/.bashrc

看刚才的环境变量是否设置成功;

echo $JAVA_HOME

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_12

然后看下配置的路径是否为自己安装的java版本:

java -version

从下图中看到两者是对应的:

ubuntu hadoop安装使用 在ubuntu安装hadoop_ssh_13

4.安装Hadoop

下载Hadoop,由于国外的官网下载太慢了,我们直接用国内的镜像下载(就用Ubuntu自带的火狐浏览器下载),镜像地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/

我下载的是hadoop-3.3.5.tar.gz:

ubuntu hadoop安装使用 在ubuntu安装hadoop_ssh_14

下载好了以后使用如下命令解压到/usr/local:

sudo tar -zxf /home/hadoop/下载/hadoop-3.3.5.tar.gz -C /usr/local

-zxf后面的是刚才下载的压缩包路径,如果没安装输入法打不了中文的可以直接找到刚才下载的那个压缩包点复制然后粘贴到命令行就是路径了

进入解压到的文件夹并且把hadoop3.3.5改名为hadoop:

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu hadoop安装使用_15

修改权限:

sudo chown -R hadoop ./hadoop

然后查看刚才解压的Hadoop是否可用:

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

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_16

用一个grep例子测试一下hadoop:

创建一个input目录:

mkdir ./input

将input文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数:

cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'

执行完上述两条命令的输出结果:

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_17

输出结果到output文件:

cat ./output/*

执行成功可以看到符合的有一个:

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu_18

注意Hadoop默认不会覆盖结果文件,因此再次运行上面的实例会出错,需要先将./output删除:

rm -r ./output

接下来是Hadoop伪分布式配置需要修改两个配置文件:

①修改core-site.xml文件:

cd /usr/local/hadoop
gedit ./etc/hadoop/core-site.xml

在configration里添加如下内容:

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

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_19

修改完以后保存退出。

②修改hdfs-site.xml文件:

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

在configration里添加如下内容:

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

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu hadoop安装使用_20

修改完保存退出。

执行namenode的格式化,如果有提示输入Y/N时一定要输入大写的Y

./bin/hdfs namenode -format

开启NameNode和DataNode的守护进程(因为我的启动过一次了所以是下图):

./sbin/start-dfs.sh

ubuntu hadoop安装使用 在ubuntu安装hadoop_ssh_21

可以通过jps命令查看是否启动成功:

jps

ubuntu hadoop安装使用 在ubuntu安装hadoop_ssh_22

如果没有NameNode或者DataNode就说明前面的配置没有成功,仔细检查一下哪里出错了。

成功以后可以在浏览器输入localhost:9870来访问网站:

ubuntu hadoop安装使用 在ubuntu安装hadoop_hadoop_23

在hdfs上创建一个count目录:

/usr/local/hadoop/bin/hdfs dfs -mkdir /count

显示刚才创建的文件:

usr/local/hadoop/bin/hdfs dfs -ls /

ubuntu hadoop安装使用 在ubuntu安装hadoop_linux_24

上传一个test3.txt文件到count目录中:

/usr/local/hadoop/bin/hadoop fs -put /home/gufei/test3.txt /count

查看刚才上传的test3.txt文件:

/usr/local/hadoop/bin/hadoop fs -ls /count

ubuntu hadoop安装使用 在ubuntu安装hadoop_ubuntu hadoop安装使用_25

到这里就结束啦,完结,撒花!!!