Hadoop伪分布式配置教程
作者:mmseoamin日期:2023-12-25

目录

一、创建Hadoop用户

1.创建Hadoop用户

2.更换用户

二、更新Apt,安装SSH,配置SSH无密码登录

1.更新Apt

2.安装SSH 

3.配置SSH无密码登陆

三、安装Java环境

四、安装 Hadoop 

1.下载Hadoop

2.安装Hadoop

五、Hadoop单机配置(非分布式)

六、Hadoop伪分布式配置

七、运行Hadoop伪分布式实例


一、创建Hadoop用户

1.创建Hadoop用户

输入如下命令创建新用户 :

sudo useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

Hadoop伪分布式配置教程,47f314d41ccd47b99097682afd4369a8.png,第1张

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

sudo passwd hadoop

Hadoop伪分布式配置教程,3693b392714f4fa7a8aaba002ba93ab8.png,第2张

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

sudo adduser hadoop sudo

Hadoop伪分布式配置教程,c8f2efd6917c4da3a80f043cc794f59a.png,第3张

2.更换用户

关闭终端,注销当前用户,选择Hadoop用户登录

Hadoop伪分布式配置教程,d41ea0bb599d4d5290d01aec61ba0be5.png,第4张

Hadoop伪分布式配置教程,51b2187ccad6414f93faf574b5f3a31f.png,第5张

二、更新Apt,安装SSH,配置SSH无密码登录

1.更新Apt

用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 Ctrl+Alt+T打开终端窗口,执行如下命令:

sudo apt-get update

Hadoop伪分布式配置教程,4e9fb7dd413b4b96b6b2f0a16b62c2c3.png,第6张

2.安装SSH 

安装 SSH server,执行如下命令:

sudo apt-get install openssh-server

输入“Y”,按回车继续安装 

Hadoop伪分布式配置教程,8dd80876bf5f4b0388e6aba9da871f86.png,第7张

安装后,可以使用如下命令登陆本机:

ssh localhost

输入“yes”,后输入密码按回车即可Hadoop伪分布式配置教程,6929e58a74254890be583e4361bb1e6a.png,第8张Hadoop伪分布式配置教程,1438f2c52aac497c820cb9f1fee267a3.png,第9张Hadoop伪分布式配置教程,0f50288cfad240d1bd562b5d42a60fe0.png,第10张

 3.配置SSH无密码登陆

首先输入以下代码:

exit

退出刚才的 ssh localhost

Hadoop伪分布式配置教程,d641a6f97c2a4e2a83291b57d7dd2cb6.png,第11张

输入以下代码:

cd ~/.ssh/ 

进入到ssh目录中Hadoop伪分布式配置教程,12e36f35d8ae4440b3ef78f4998d69b6.png,第12张

输入以下代码:

ssh-keygen -t rsa 

利用ssh-keygen生成密匙

出现提示后,按回车键即可

Hadoop伪分布式配置教程,b0cd061ab64b46fcbf6fbfec4943fa0f.png,第13张

输入以下代码:

cat ./id_rsa.pub >> ./authorized_keys

将密钥加入到授权中Hadoop伪分布式配置教程,015f9d28714f4ed08f67f666685e5ea8.png,第14张

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

 ssh localhost

Hadoop伪分布式配置教程,557dcfe39df74aba97784d030119f6da.png,第15张

三、安装Java环境

输入以下代码,安装Openjdk-8-jdk

sudo apt-get install openjdk-8-jdk

输入“Y”,按回车继续安装 

Hadoop伪分布式配置教程,05e750b34e0c4868b6f9f68c92fe3006.png,第16张

Hadoop伪分布式配置教程,6faef1079a554b88ad05ea5bd5ea416c.png,第17张输入以下代码,查看已安装的Java版本

java -version

 Hadoop伪分布式配置教程,e8ece2c370dc4854b2baae693258c64b.png,第18张

输入以下代码,配置Java环境文件

gedit ~/.bashrc

在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出:

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

Hadoop伪分布式配置教程,a156f5a3273b4852ab57e0ba06527505.png,第19张

接下来,要让环境变量立即生效,请执行如下代码:

source ~/.bashrc 

 Hadoop伪分布式配置教程,5168f2760ef642a28ec569c4329eb076.png,第20张

执行上述命令后,可以检验一下是否设置正确:

echo $JAVA_HOME   
java -version
$JAVA_HOME/bin/java -version

Hadoop伪分布式配置教程,a86a22be78b3442ea6e2b821edcc6b72.png,第21张

四、安装 Hadoop 

1.下载Hadoop

使用Ubuntu系统内置的Firefix浏览器下载Hadoop-3.2.4

Hadoop下载地址:Index of /apache/hadoop/common/hadoop-3.2.4

Hadoop伪分布式配置教程,afe79310e2ac44ee857dce1aba4ab1f0.png,第22张

2.安装Hadoop

输入以下代码:(注意C要大写)

sudo tar -zxf ~/下载/hadoop-3.2.4.tar.gz -C /usr/local

将Hadoop解压安装到/usr/local文件夹内

输入以下代码:

cd /usr/local/
sudo mv ./hadoop-3.2.4/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop 

并将文件夹名改为hadoop,和修改文件权限

Hadoop伪分布式配置教程,1a4f1ddc49014d5f8dfaf1857e520726.png,第23张​输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

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

 Hadoop伪分布式配置教程,2c00cd35b6384ed5826944a312003896.png,第24张

五、Hadoop单机配置(非分布式)

Grep 例子

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

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

Hadoop伪分布式配置教程,14eb53907d83438cb3bd9744ecb02cac.png,第25张​ Hadoop伪分布式配置教程,8e5a772d0f0d47b186eb9403a02fe66a.png,第26张

 Hadoop伪分布式配置教程,3a0714c13ca244999efe3bbb3d65311c.png,第27张

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

rm -r ./output

六、Hadoop伪分布式配置

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml 

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

修改为以下配置,点击保存后退出:


    
        hadoop.tmp.dir
        file:/usr/local/hadoop/tmp
        Abase for other temporary directories.
    
    
        fs.defaultFS
        hdfs://localhost:9000
    

Hadoop伪分布式配置教程,1af986560b0c458ba2f78619db788ad9.png,第28张

修改配置文件 hdfs-site.xml

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

修改为以下配置,点击保存后退出:


    
        dfs.replication
        1
    
    
        dfs.namenode.name.dir
        file:/usr/local/hadoop/tmp/dfs/name
    
    
        dfs.datanode.data.dir
        file:/usr/local/hadoop/tmp/dfs/data
    

Hadoop伪分布式配置教程,a8216b1f33254af8945855888e9dfc0c.png,第29张

配置完成后,执行 NameNode 的格式化:

./bin/hdfs namenode -format

Hadoop伪分布式配置教程,8d460aee16d64176a6ca4bbe4da52cc2.png,第30张

接着开启 NameNode 和 DataNode 守护进程

./sbin/start-dfs.sh

Hadoop伪分布式配置教程,5c6d3cdada9f4026853d95291cd84a42.png,第31张

启动完成后,可以通过命令jps来判断是否成功启动

jps

Hadoop伪分布式配置教程,804de457c8084a0d81f4476d521db08d.png,第32张

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件 

Hadoop伪分布式配置教程,cf8ba580d2ae41caa765707e22c8ffcc.png,第33张

七、运行Hadoop伪分布式实例

要使用 HDFS,首先需要在 HDFS 中创建用户目录:

cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /user/hadoop

Hadoop伪分布式配置教程,b2b208058abb4c0c953665e16f918fc3.png,第34张

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中

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

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

./bin/hdfs dfs -ls input

 Hadoop伪分布式配置教程,5d735d5cea4d4fa2b39889c48835c471.png,第35张

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

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

Hadoop伪分布式配置教程,611e5da14be34317a796f6e4a80d1190.png,第36张

查看运行结果的命令(查看的是位于 HDFS 中的输出结果):

./bin/hdfs dfs -cat output/*

Hadoop伪分布式配置教程,7b5c9c74a5d745d6b1b2b99f519afdcc.png,第37张

 将运行结果取回到本地:

rm -r ./output
./bin/hdfs dfs -get output ./output
cat ./output/*

Hadoop 运行程序时,输出目录不能存在,否则会提示错误

因此若要再次执行,需要执行如下命令删除 output 文件夹:

./bin/hdfs dfs -rm -r output

若要关闭 Hadoop,则运行:

./sbin/stop-dfs.sh

 Hadoop伪分布式配置教程,9ccec17c26274cf58ba82076dfd09f15.png,第38张

参考文章:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04)_厦大数据库实验室博客