Centos 7 安装 Hadoop3.1.3 详细教程

  • 前言
    • 00 需准备
    • 01 需掌握
  • 一、准备工作
    • 00 环境
    • 01 创建 hadoop 用户
    • 02 修改 hadoop 用户权限
    • 03 切换为 hadoop 用户
    • 04 更新源
    • 05 检查 SSH 服务
    • 06 配置 SSH 无密码登录
    • 07 安装 Java 环境
    • 08 安装 Hadoop 3.1.3
  • 二、Hadoop 单机配置(非分布式)
    • 00 测试运行实例
  • 三、Hadoop 伪分布式配置
    • 00 修改配置文件
      • ① 修改 core-site.xml 文件
      • ② 修改 hdfs-site.xml 文件
      • ③ 修改 hadoop-env.sh 配置文件
      • ④ NameNode 格式化
      • ⑤ 开启 NameNode 和 DataNode
    • 01 测试运行伪分布式实例
  • 四、小结

前言

工欲善其事必先利其器,在学习新的技术之前,我们必须搭建好一个适合的环境,但万事开头难,搭建环境的各种错误劝退了不少人,Pola 安装的过程中真的是错误百出,一度想放弃,但是Pola坚持下来了,并基于参考文章写出来这篇教程,本篇教程就是Pola在配置一台虚拟机的hadoop时写的,所以每一步都经过Pola测试,Pola有理由相信,你按照以下步骤去认真的进行Hadoop的单机配置或者伪分布式配置,是绝对不会出错的!!!

Pola在解决安装过程中的错误的时候没有怎么记录(错误太多了),所以如果你出现错误了可以评论或私信,因为你的问题Pola一定遇见过,不要怀疑Pola这个只要配置环境就必踩坑的天选之子!!!

00 需准备

  • 一台配置好网络连接(可ping通宿主机和外网)的CentOS 7系统的虚拟机
  • 连接宿主机和虚拟机的Xftp
  • JDK 1.8版本或1.8版本以上的安装包
  • hadoop 3.1.3 版本的安装包

01 需掌握

  • Linux 操作系统命令
  • Xftp 的使用

一、准备工作

00 环境

本教程基于 CentOS 7 64位 作为系统环境(其他系统也可以,因为安装步骤是一样的,但是需要切换成你对应系统的命令和文件)

01 创建 hadoop 用户

我们安装系统后登录使用的多是 root 用户,但其实这样并不安全。因此,在安装Hadoop前,我们要创建一个 hadoop 用户:

  • 以root用户登录打开终端窗口,输入以下命令创建 hadoop 用户并设置密码:
useradd hadoop # 创建hadoop用户
passwd hadoop # 设置hadoop用户的密码,按提示输入两次密码

⭐ 注意:密码需要输两次,如果提示无效,说明你的密码等级过低不安全,但是你不想换密码也可以继续输入密码进行确定

02 修改 hadoop 用户权限

hadoop 用户是我们创建的普通用户,系统为了安全,会对普通用户的一些操作做限制,但这对我们配置环境来说不是很方便,因此我们需要为 hadoop 用户增加管理员的权限,之后便可以使用 sudo 命令进行一些限制操作:

  • 以root用户登录打开终端窗口,输入以下命令为hadoop用户增加管理员的权限:
vi /etc/sudoers

打开 sudoers文件,找到 root ALL=(ALL) ALL,在其下面一行添加普通用户,我们的普通用户是 hadoop,则添加 hadoop ALL=(ALL) ALL,如下所示:

⭐ 注意:退出关闭时使用 wq! 强制保存并退出,否则会提示 E45:'readonly' option is set(add ! to override)

03 切换为 hadoop 用户

之前的操作我们一直是以 root 用户的身份在登录,但是之后的操作我们需要切换为 hadoop 用户,输入以下命令切换用户:

su hadoop # 切换为hadoop用户登录

切换成功后,@localhost 前会显示当前登录的用户名

04 更新源

我们在下载软件时,可能会因为网络原因而下载失败,因此我们选择更新软件源,输入以下命令更新软件源:

sudo yum -y update # 更新源

⭐ 注意,我们现在登录的用户是hadoop,因此需要使用 sudo 命令来进行需要 root 权限的操作

05 检查 SSH 服务

集群、单机模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),在使用 SSH 登陆服务之前,我们需要先输入 yum list installed | grep openssh-server 命令检测 openssh-server 是否安装:

  • 如果已安装,则有以下输出:
  • 如果未安装,则无任何输出,安装 openssh-server 命令为:sudo yum install openssh-server

06 配置 SSH 无密码登录

确定 openssh-server 已安装后,我们就可以愉快的使用 SSH 服务了,输入 ssh localhost 命令登陆本机:

按照以上的登陆方式:每次登陆都需要输入密码,很不方便,因此我们需要配置成SSH无密码登陆,更方便一点。具体操作如下:

  • 输入 exit 命令退出之前的 ssh,回到我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit                           # 退出之前的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,一直按回车即可
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
chmod 600 authorized_keys      # 更改文件权限


之后再输入 ssh localhost 命令登陆时,就无需再输入密码,如下所示:

07 安装 Java 环境

⭐ 注意:Hadoop3.1.3 需要 JDK 版本在 1.8 及以上

第一步,通过 Xftp 将下载好的 jdk 文件上传到 hadoop 用户的工作目录(即 /home/hadoop )下,如下图所示:

第二步,执行以下命令解压缩JDK文件(注意:当前登录用户名是hadoop),如下所示:

cd /home/hadoop # 进入用户家目录
sudo mkdir -p /usr/lib/jvm # 创建/usr/lib/jvm目录用来存放JDK文件
sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm # 把JDK文件解压到/usr/lib/jvm目录下


JDK 文件解压成功后,可以执行以下命令进行查看:

cd /usr/lib/jvm # 进入/usr/lib/jvm目录下
ls #查看当前目录(即/usr/lib/jvm)的文件


可以看到,/usr/lib/jvm 目录下有一个 jdk1.8.0_131 目录

第三步,执行以下命令配置环境变量(注意:当前登录用户名是 hadoop),如下所示:

cd ~ # 进入用户家目录,注意:~ 等价于 /home/hadoop
sudo vi ~/.bash_profile # 编辑当前hadoop用户的环境变量配置文件(该文件只影响当前用户)

打开文件后,在文件末尾处添加以下内容( jdk 版本根据个人安装版本进行填写),保存并退出:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH



继续执行以下命令使环境变量配置生效:

source ~/.bash_profile

然后可以执行以下命令查看是否安装成功:

java -version

如果屏幕上返回如下信息,则说明安装成功:

08 安装 Hadoop 3.1.3

⭐ 注意:我们安装的是 Hadoop3.1.3

第一步,通过 Xftp 将下载好的 Hadoop3.1.3 文件上传到 hadoop 用户的工作目录(即 /home/hadoop )下,如下图所示:

第二步,执行以下命令解压缩 hadoop3.1.3 文件(注意:当前登录用户名是 hadoop),如下所示:

sudo tar -zxf ~/hadoop-3.1.3.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/ # 进入/usr/local目录下
sudo mv ./hadoop-3.1.3/ ./hadoop # 将hadoop-3.1.3文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限


Hadoop 解压后即可使用,输入以下命令检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop # 进入/usr/local/hadoop目录
./bin/hadoop version # 查看hadoop版本信息

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

00 测试运行实例

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。即 Hadoop 安装成功后即可使用。我们可以执行一些例子来感受一下 Hadoop 的运行。Hadoop 附带了丰富的例子,运行以下命令可以看到所有例子,包括 wordcount、terasort、join、grep 等:

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar

我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选其中符合正则表达式 dfs[a-z.]+ 的单词并统计单词出现的次数,然后将结果输出到 output 文件夹中,具体执行命令如下:

cd /usr/local/hadoop # 进入/usr/local/hadoop目录
mkdir ./input # 在当前目录下,创建input目录
cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入复制到input目录下
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+' # 运行grep实例
cat ./output/* # 查看运行结果


三、Hadoop 伪分布式配置

00 修改配置文件

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,其读取的是 HDFS 中的文件。

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

① 修改 core-site.xml 文件

执行以下命令修改 core-site.xml 文件:

cd /usr/local/hadoop/etc/hadoop/ # 进入/usr/local/hadoop/etc/hadoop/目录
sudo vi core-site.xml # 编辑 core-site.xml 文件


打开 core-site.xml 文件后,将其中的

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

② 修改 hdfs-site.xml 文件

执行以下命令修改 hdfs-site.xml 文件:

# 注意当前目录是/usr/local/hadoop/etc/hadoop/目录
sudo vi hdfs-site.xml # 编辑 hdfs-site.xml 文件

打开 hdfs-site.xml 文件后,将其中的

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


③ 修改 hadoop-env.sh 配置文件

执行以下命令修改 hadoop-env.sh 文件:

# 注意当前目录是/usr/local/hadoop/etc/hadoop/目录
sudo vi hadoop-env.sh # 编辑 hadoop-env.sh 文件

在 hadoop-env.sh 文件里找到 # export JAVA_HOME= 这行,如下所示:

将其修改为JAVA安装路径的具体地址,如下所示:

④ NameNode 格式化

以上配置完成后,执行以下命令进行 NameNode 的格式化:

cd /usr/local/hadoop # 进入/usr/local/hadoop目录
./bin/hdfs namenode -format # 执行 NameNode 的格式化


成功的话,会看到 successfully formatted 的提示,具体返回信息类似以下内容:

⑤ 开启 NameNode 和 DataNode

NameNode 格式化后,接着执行以下命令开启 NameNode 和 DataNode 守护进程:

cd /usr/local/hadoop # 进入/usr/local/hadoop目录
./sbin/start-dfs.sh # 注意:start-dfs.sh 是个完整的可执行文件,中间没有空格


然后执行以下 jps 命令判断是否成功启动,若成功启动则会列出以下进程:NameNodeDataNodeSecondaryNameNode
成功启动后,可以在虚拟机的浏览器上访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件,也可以将localhost替换为虚拟机的IP地址,在本机的浏览器上访问 Web 界面,例如我的虚拟机的IP地址是192.168.91.150,我就可以将http://localhost:9870替换为http://192.168.91.150:9870,然后在我本机上进行访问,如下所示:

01 测试运行伪分布式实例

之前的单机模式,grep 例子里读取的是本地数据,而伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录,接着将./etc/hadoop中的xml文件作为输入文件复制到分布式文件系统中,即将/usr/local/hadoop/etc/hadoop复制到分布式文件系统中的/user/hadoop/input中。我们使用的是 hadoop 用户,并且已创建相应的用户目录/user/hadoop,因此在命令中就可以使用相对路径如input,其对应的绝对路径就是/user/hadoop/input,具体执行命令如下:

cd /usr/local/hadoop # 进入/usr/local/hadoop目录
./bin/hdfs dfs -mkdir -p /user/hadoop # 在 HDFS 中创建用户目录
./bin/hdfs dfs -mkdir input # 在用户目录下创建input目录
./bin/hdfs dfs -put ./etc/hadoop/*.xml input # 将`./etc/hadoop`中的`xml`文件作为输入文件复制到input目录


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

./bin/hdfs dfs -ls input # 查看input目录的文件列表


测试实例我们仍旧选择 grep 例子,伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是 HDFS 中的文件,创建的也是 HDFS 中的文件(可以将单机步骤中创建的本地 input 文件夹和输出结果 output 文件夹都删掉来验证这一点),测试运行完 grep 实例后查看运行结果(查看的是位于 HDFS 中的输出结果),具体执行命令如下:

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+' # 运行测试实例,注意当前目录是/usr/local/hadoop目录
./bin/hdfs dfs -cat output/* # 查看位于 HDFS 中的输出结果

⭐注意:我们更改了一些配置文件,所以运行结果与单机的运行结果不同

四、小结

至此,我们完成了CentOS的Hadoop3.1.3 版本的单机配置和伪分布式配置,总结起来安装步骤就是文章开头显示的目录内容,但是需要注意,配置过程中一定要细心大胆,特别是用户身份切换、目录切换这些小细节,千万不要直接使用root用户直接进行操作,如果配置出错,不要着急,回过头看看你之前的配置是不是漏掉了哪些细节,真的解决不了的话,评论或者私信Pola,Pola帮你一起解决!

[参考文章:Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)]

大数据-安装 Hadoop3.1.3 详细教程-单机/伪分布式配置(Centos)相关推荐

  1. Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置

    Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 文章目录 Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 前言 详细流程 创建Hadoop用户 安装Java 配 ...

  2. Ubuntu安装HBase2.2.4并进行单机/伪分布式配置

    Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 文章目录 Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 前言 版本兼容性 详细流程 安装HBase2.2.4 HBase单 ...

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

    厦门大学(林子雨老师)Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

  4. Ubuntu16.04/Hadoop3.1.3安装教程_单机/伪分布式配置

    Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu16.04.6 为了方便学习本教程,请读者们利用Linux系统中自带的firefox浏览器打开本指南进行学习. ...

  5. Hadoop安装教程_伪分布式配置-Ubuntu-CentOS6(究极详细、厦门大学数据库实验室)

    Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04) 林 ...

  6. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...

  7. Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0

    Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到 ...

  8. Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

    本 Hadoop 教程由厦门大学数据库实验室出品,转载请注明.本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6.0 等版本 ...

  9. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置

    环境: 本教程使用 Ubuntu 18.04 64位 作为系统环境(或者Ubuntu 14.04,Ubuntu16.04 也行,32位.64位均可),请自行安装系统 装好了 Ubuntu 系统之后,在 ...

最新文章

  1. linux怎么用jconsole_jconsole监控上Linux上的JVM
  2. mybatis+spring+c3p0+maven+ehcache
  3. JS-[IIFE闭包]
  4. 技术实践丨React Native 项目 Web 端同构
  5. 群晖218 当文件服务器,群晖218 家庭云服务器
  6. PHP设计模式之----观察者模式
  7. SpringMVC form:form的一个错误(没有传到前台绑定类)
  8. CodeVs天梯青铜Bronze题解
  9. VS2015自带的LocalDB数据库的用法
  10. LC-130 被环绕区域
  11. [游戏制作]-C语言实现井字棋(三子棋)游戏简单版
  12. 什么是A*(Astar)算法?(简单叙述)
  13. 如何解锁PDF的打印限制
  14. G711 G723 G729线路占多少带宽问题
  15. 测试用户名字 陈一王二张三李四钱五赵六钱七张八周九吴十
  16. MNE-Python | 开源生理信号分析神器(一)
  17. L8梯度消失、梯度爆炸
  18. 鹏业四川CJZ整体解决方案
  19. 妙赞大讲糖:糖尿病患者什么情况别手术
  20. Office 365 函数之Concatenate 字符连接函数

热门文章

  1. winwebmail轻松搭建邮件服务器
  2. 数据库改造:怎样用MySQL对10亿级订单量进行分库分表?
  3. 银行转账java mysql_如何编写一个银行转账案例?
  4. 安搭Share:苹果首款自研芯片Mac来了:11月11日秋季第三场发布会
  5. H.266/VVC技术学习之环路滤波:去块滤波(Deblock)技术
  6. 编写一个函数,计算两个数字的和,差,积,商
  7. 东莞惠州楼盘又来深抢客 推盘量居历史高位 2012.5.12
  8. 搜狗输入法 rpm包_搜狗输入法手把手交你怎么聊天,斗图王者、AI帮写统统都有!...
  9. Pepper/Nao初级教程:第二章 Pepper的使用方法
  10. UEFI 基础教程 (十七) - SMM的简单使用