大数据-安装 Hadoop3.1.3 详细教程-单机/伪分布式配置(Centos)
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
命令判断是否成功启动,若成功启动则会列出以下进程:NameNode
、DataNode
、SecondaryNameNode
成功启动后,可以在虚拟机的浏览器上访问 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)相关推荐
- Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置
Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 文章目录 Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 前言 详细流程 创建Hadoop用户 安装Java 配 ...
- Ubuntu安装HBase2.2.4并进行单机/伪分布式配置
Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 文章目录 Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 前言 版本兼容性 详细流程 安装HBase2.2.4 HBase单 ...
- Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
厦门大学(林子雨老师)Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
- Ubuntu16.04/Hadoop3.1.3安装教程_单机/伪分布式配置
Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu16.04.6 为了方便学习本教程,请读者们利用Linux系统中自带的firefox浏览器打开本指南进行学习. ...
- Hadoop安装教程_伪分布式配置-Ubuntu-CentOS6(究极详细、厦门大学数据库实验室)
Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04) 林 ...
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...
- Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0
Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到 ...
- Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0
本 Hadoop 教程由厦门大学数据库实验室出品,转载请注明.本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6.0 等版本 ...
- ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
环境: 本教程使用 Ubuntu 18.04 64位 作为系统环境(或者Ubuntu 14.04,Ubuntu16.04 也行,32位.64位均可),请自行安装系统 装好了 Ubuntu 系统之后,在 ...
最新文章
- linux怎么用jconsole_jconsole监控上Linux上的JVM
- mybatis+spring+c3p0+maven+ehcache
- JS-[IIFE闭包]
- 技术实践丨React Native 项目 Web 端同构
- 群晖218 当文件服务器,群晖218 家庭云服务器
- PHP设计模式之----观察者模式
- SpringMVC form:form的一个错误(没有传到前台绑定类)
- CodeVs天梯青铜Bronze题解
- VS2015自带的LocalDB数据库的用法
- LC-130 被环绕区域
- [游戏制作]-C语言实现井字棋(三子棋)游戏简单版
- 什么是A*(Astar)算法?(简单叙述)
- 如何解锁PDF的打印限制
- G711 G723 G729线路占多少带宽问题
- 测试用户名字 陈一王二张三李四钱五赵六钱七张八周九吴十
- MNE-Python | 开源生理信号分析神器(一)
- L8梯度消失、梯度爆炸
- 鹏业四川CJZ整体解决方案
- 妙赞大讲糖:糖尿病患者什么情况别手术
- Office 365 函数之Concatenate 字符连接函数
热门文章
- winwebmail轻松搭建邮件服务器
- 数据库改造:怎样用MySQL对10亿级订单量进行分库分表?
- 银行转账java mysql_如何编写一个银行转账案例?
- 安搭Share:苹果首款自研芯片Mac来了:11月11日秋季第三场发布会
- H.266/VVC技术学习之环路滤波:去块滤波(Deblock)技术
- 编写一个函数,计算两个数字的和,差,积,商
- 东莞惠州楼盘又来深抢客 推盘量居历史高位 2012.5.12
- 搜狗输入法 rpm包_搜狗输入法手把手交你怎么聊天,斗图王者、AI帮写统统都有!...
- Pepper/Nao初级教程:第二章 Pepper的使用方法
- UEFI 基础教程 (十七) - SMM的简单使用