Ubuntu下搭建Hadoop的单机模式以及伪分布式模式

环境准备

创建Hadoop用户(可选)

1.如果安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为hadoop 的用户,首先按打开终端窗口(快捷键ctrl+alt+t),输入如下命令创建新用户 :创建hadoop用户

sudo useradd –m hadoop –s /bin/bash

2.上面这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell 接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

sudo passwd hadoop

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

sudo adduser hadoop sudo

SSH登录权限设置

1.SSH简介
SSH 为 Secure Shell 的缩写,是建立在应用层和传输层基础上的安全协议。 SSH 是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。 SSH是由客 户端和服务端的软件组成,服务端是一个守护进程(daemon),它在后台运 行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程拷 贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
2. 配置SSH的原因
Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过 程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为 了能够顺利登录每台机器,需要将所有机器配置为名称节点可以无密码登录它们。
3. 切换登录用户以hadoop登录(可选)
4. 更新(可选)

sudo apt-get update

在这里插入图片描述

5.(1) 配置SSH的无密码登录
安装openssh-server( 通常Linux系统会默认安装openssh的客户端软件openssh-client),所以需要自己安装一下服务端。

sudo apt-get install openssh-server

在这里插入图片描述

(2)输入 cd .ssh目录下,如果没有.ssh文件 输入 ssh localhost生成

cd ~/.ssh/

在这里插入图片描述

(3)生成秘钥

ssh-keygen -t rsa

在这里插入图片描述

(4)将Master中生成的密钥加入授权(authorized_keys)

cat id_rsa.pub                     # 查看生成的公钥

在这里插入图片描述

cat id_rsa.pub >> authorized_keys    # 加入授权
chmod 600 authorized_keys    # 修改文件权限,如果不修改文件权限那么其它用户就能查看该授权

(5)完成后,直接键入“ssh localhost”,能无密码登录即可
在这里插入图片描述
(6)键入“exit”退出,到此SSH无密码登录配置就成功了
在这里插入图片描述

安装Java环境

1.Windows与Ubuntu数据共享(可将Windows下的文件进行共享,可选)
(1)Windows系统操作
在这里插入图片描述
在这里插入图片描述
(2)Ubuntu系统操作(基于VirtualBox)
在这里插入图片描述
点击设备->安装增强功能
在这里插入图片描述
输入密码后直接回车
在这里插入图片描述
再次点击设备->共享文件夹->共享文件夹
在这里插入图片描述
在这里插入图片描述
桌面会增加两个盘,点击sf_盘输入密码,即可将改文件夹中的内容复制到ubuntu下(小编复制到了下载文件夹中)
在这里插入图片描述
在这里插入图片描述

移动完成后,即可删除两个盘
在这里插入图片描述
在这里插入图片描述

2.在Ubuntu将jdk移动到我们新建的java目录下(没建的新建一个就是),到此传输文件成功,可以开始配置Java环境了。

sudo mkdir java

在这里插入图片描述
注意根据自己的jdk版本号以及当前用户名执行

sudo mv /home/hadoop/下载/jdk-8u221-linux-x64.tar.gz usr/java

在这里插入图片描述

在java目录中,使用sudo tar命令解压jdk文件,解压成功后,java目录中会有对应的目录文件存在

sudo tar -zxvf jdk-8u221-linux-x64.tar.gz

在这里插入图片描述

3.配置java环境
(1) 使用命令“sudo gedit ~/.bashrc”打开配置文件,在末尾添加以下几行文字,注意自己的jdk版本号。
在这里插入图片描述

#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH

在这里插入图片描述
(2)使用命令“source ~/.bashrc”使环境变量生效(关闭配置文件并在当前目录即/usr/java目录下执行)。

source ~/.bashrc

(3)配置软连接,软连接相当于windows系统中的快捷键,部分软件可能会从/usr/bin目录下查找Java,因此添加该软连接防止其他软件查找不到的情况。

sudo update-alternatives --install /usr/bin/java  java  /usr/java/jdk1.8.0_221/bin/java 300
sudo update-alternatives --install /usr/bin/javac  javac  /usr/java/jdk1.8.0_221/bin/javac 300

在这里插入图片描述
(4)测试java是否安装成功

java -version

在这里插入图片描述

单机模式以及伪分布式模式的搭建

Hadoop单机安装配置

1.将我们下载的Hadoop解压到 /usr/local/ 中(与解压jdk类似)

sudo tar zxvf /home/hadoop/下载/hadoop-3.2.1.tar.gz -C /usr/local

2.利用cd /usr/local/ 命令切换操作空间,将文件夹名改为hadoop

sudo mv ./hadoop-3.2.1/ ./hadoop

在这里插入图片描述

3.修改文件权限

sudo chown -R hadoop:hadoop ./hadoop
sudo chown -R 当前用户名 /usr/local/hadoop

4.修改配置文件
Hadoop 解压后,在hadoop目录下的etc/hadoop/hadoop-env.sh文件中添加如下的 Java环境信息(可加到文本末尾,注意jdk版本号)

export JAVA_HOME=/usr/java/jdk1.8.0_221

在这里插入图片描述
在这里插入图片描述

5.然后,保存hadoop-env.sh文件,即完成单机模式的Hadoop基本安装。测试Hadoop是否安装成功,如出现如下图所示的版本信息,即可。

./bin/hadoop/ version

在这里插入图片描述

6.默认情况下,单机模式的Hadoop以Java进程的方式运行,可依次运行如下命令进行进一步测试。

sudo mkdir input
sudo cp etc/hadoop/*.xml input

7.执行下列命令,运行MapReduce程序,完成测试计算。

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

在这里插入图片描述
8. 执行下列命令,查看计算结果。

cat output/*

在这里插入图片描述
hadoop目录下,会有input和output两个新建的文件,output中有上述程序 的运算结果,到此hadoop单机安装配置成功。

Hadoop伪分布式安装配置

1.Hadoop伪分布式安装配置
(1)Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分 离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode, 同时,读取的是 HDFS 中的文件
(2)Hadoop的配置文件位于/usr/local/hadoop/etc/hadoop/中,伪分布式 需要修改2个配置文件 core-site.xml 和 hdfs-site.xml
(3)Hadoop的配置文件是xml格式,每个配置以声明property的name 和 value 的方式来实现
hadoop目录认识
2.hadoop下的目录
(1)修改配置文件之前,先看一下hadoop下的目录:
bin:hadoop最基本的管理脚本和使用脚本所在目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用hadoop
(2)etc:配置文件存放的目录,包括core-site.xml,hdfs-site.xml,mapred-site.xml等从hadoop1.x继承而来的配置文件和yarn-site.xml等hadoop2.x新增的配置文件
(3)include:对外提供的编程库头文件(具体动态库和静态库在lib目录中,这些头文件军事用c++定义的,通常用于c++程序访问hdfs或者编写mapreduce程序)
(4)Lib:该目录包含了hadoop对外提供的才变成动态库和静态库,与include目录中的头文件结合使用
(5)libexec:各个服务对应的shell配置文件所在目录,可用于配置日志输出目录、启动参数等信息
(6)sbin:hadoop管理脚本所在目录,主要包含hdfs和yarn中各类服务的启动、关闭脚本
(7)share:hadoop各个模块编译后的jar包所在目录。
3. 修改配置文件 core-site.xml

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

在这里插入图片描述
在这里插入图片描述
(1)hadoop.tmp.dir表示存放临时数据的目录,即包括NameNode的数据,也包 括DataNode的数据。该路径任意指定,只要实际存在该文件夹即可
(2)name为fs.defaultFS的值,表示hdfs路径的逻辑名称

4.修改配置文件 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>

在这里插入图片描述

在这里插入图片描述

(1)dfs.replication表示副本的数量,伪分布式要设置为1
(2)dfs.namenode.name.dir表示本地磁盘目录,是存储fsimage文件的地方
(3)dfs.datanode.data.dir表示本地磁盘目录,HDFS数据存放block的地方

5.至此,配置完毕,但是还不能启动,要对hdfs先进行格式化。类似以前的软盘,使用前要先格式化,执行如下命令,看到日志信息,即格式化成功。

sudo ./bin/hdfs namenode -format

在这里插入图片描述
在这里插入图片描述

6.在我们name目录(这个目录是我们自己配置的时候指定的)下也会出现映像文件(fsimage),用于将数据持久化 。
在这里插入图片描述
7.启动hadoop

sbin/start-dfs.sh

在这里插入图片描述

8.安装jps

sudo apt install openjdk-11-jdk-headless

在这里插入图片描述

9.安装好之后jps检查角色如果有多个角色,就启动成功。

jps

在这里插入图片描述

10.浏览器访问localhost:9870
在这里插入图片描述

11.关闭hadoop(使用完毕后一定要关闭,否则相当容易崩)

./sbin/stop-dfs.sh

在这里插入图片描述

Ubuntu下搭建Hadoop的单机模式以及伪分布式模式到此就结束了。小编经过疯狂的踩坑,熟悉了linux操作系统的部分命令。各位可爱们在搭建过程中一定要注意细节哦,配置文件这些可以不用自己手敲,通过复制代码,保存在文本文件中,再利用Windows和Ubuntu数据共享,很快就可以节省时间啦。最后,如果博客中有问题,希望各位大神们指点迷津。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值