hadoop2 java_虚拟机Ubuntu(18.04.2)下安装配置Hadoop(2.9.2)(伪分布式+Java8)

【本文结构】

【1】安装Hadoop前的准备工作

【1.1】 创建新用户

【1.2】 更新APT

【1.3】 安装SSH

【1.4】 安装Java环境

【2】安装和配置hadoop

【2.1】 Hadoop下载

【2.2】 Hadoop伪分布式配置

【踩过的坑】

【1】 需要在Java8上安装Hadoop,开始用Java11一直失败;

【2】 一定要再熟悉大致流程后再安装,专注于一篇笔记的同时参考其他笔记。

【所需下载的文件】

【其他知识点】

【1】 查看本机ip

sudo apt install net-tools

ifconfig # 查看虚拟机Ip

【2】 VIM命令

vi filename # 进入文件

insert键 # 编辑文本

esc键 # 退出编辑

:wq # 退出并保存

ctrl+s # 锁屏

ctrl+q # 解锁

fi # 文件结尾标识

【1】安装hadoop前的准备

【1.1】 创建Hadoop用户

为了方便以后的实验进行,推荐创建一个新的Hadoop用户,所有的实验内容都登录该用户进行,具体的shell代码和注释如下:

$ sudo useradd -m hadoop -s /bin/bash # 创建hadoop用户,并使用/bin/bash 作为shell

$ sudo passwd hadoop # 为hadoop用户设置密码,之后需要连续输入两次密码

$ sudo adduser hadoop sudo # 为hadoop用户添加管理员权限

$ su- hadoop # 切换当前用户为hadoop

【1.2】更新apt

APT是一款软件管理工具,Linux采用APT来安装和管理各种软件,安装成功Linux系统以后,需要及时更新APT软件,否则后序的一些软件可能无法正常安装,更新APT使用以下命令:

$ sudo apt-get update # 更新hadoop用户的apt,方便后面的安装

【1.3】安装SSH,设置SSH无密码登录

SSH是Secure Shell的缩写,

为什么安装hadoop之前需要配置SSH呢? 这是因为Hadoop名称节点(NameNode) 需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录集群中的每台机器,需要将所有机器配置为“名称节点可以无密码登录它们”

Ubuntu默认已安装SSH客户端,故只需要安装SSH服务器,在终端执行以下命令:

$ sudo apt-get install openssh-server # 安装ssh服务器

然后可以使用如下命令登录本机(因为是伪分布式集群,只有一台机器,同时作为名称节点和普通节点),如果提示输入密码,则表示安装成功了。

$ ssh localhost # 登录ssh,第一次登录输入yes 或者让输入密码直接两次回车

c72f834599a87183fd0fc9872f9df193.png

由于这样登录需要每次输入密码,所以,需要配置SSH为无密码登录,这样在hadoop集群中,名称节点要登录某台机器就不需要人工输入密码了。

$ cd ~/.ssh # 切换目录

$ ssh-keygen -t rsa # 会有提示,按enter即可(即不设置密码),这条语句生成公钥和私钥两个文件

$ cat ./id_rsa.pub >> ./authorized_keys # 加入授权,cat file1 >>file2 的含义是将file1的内容写到file2尾部

$ ssh localhost # 此次再登录ssh,无需输入密码即可。

5b63cb8cf281de429338b02f0a1117b2.png

807e815869a6aac7d88ac836cb4e4a64.png

【1.4安装Java环境】

Hadoop是基于Java环境开发的,同时Java语言也可以用来编写Hadoop应用程序,在Linux系统中安装Java环境有两种方式:Oracle的JDK和openJdk,本文采用第一种:

首先在Oracle官网下载JDK1.8,接下来安装并配置。这里选择的是(jdk-8u211-linux-x64.tar.gz)

注意是usr !!! 不是user

$ mkdir /usr/lib/jvm # 创建jvm文件夹

# 解压到/usr/lib/jvm目录下(因为压缩包在在桌面放着)

$ sudo tar zxvf/home/root123456/桌面/jdk-8u211-linux-x64.tar.gz -C /usr/lib/jvm

$ cd usr/lib/jvm # 进入usr/lib/jvm目录

$ mv jdk1.8.0_211 java # 将jdk1.8.0_211重命名为java 此步可能权限不够,在其前加上sudo

9d37a211c854521aec1e902e0865671d.png

38b6d4a1321101ff29872682dfaf32bc.png

$ vi ~/.bashrc # 给JDK配置环境变量

编辑.bashrc文件,添加如下指令:

export JAVA_HOME=/usr/lib/jvm/java

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

文件修改完毕后,输入以下代码:

$ source ~/.bashrc # 使新配置的环境变量生效

$ java-version # 检测是否安装成功,查看java版本

cb355addb801d87fac84475b1742ba25.png

java安装成功后,就可以进行Hadoop的安装了。

【2】安装配置Hadoop

【2.1】Hadoop的下载安装

我的虚拟机Ubuntu安装了VMWare Tools,可以在win10桌面和Ubuntu桌面之间直接交换文件。所以在apache hadoop上直接下载的文件之后拷贝到Ubuntu桌面上。

#解压到/usr/local目录下

$ sudo tar-zxvf /home/root123456/桌面/hadoop-2.9.2.tar.gz -C /usr/local

$ cd/usr/local # 切换目录值

$ sudo mv hadoop-2.9.2hadoop # 重命名为hadoop

$ sudo chown-R hadoop ./hadoop # 修改文件权限

给hadoop配置环境变量,

vi /.bashrc

将下面的代码添加到.bashrc文件中:

export HADOOP_HOME=/usr/local/hadoop

export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

配置完后,执行source ~/.bashrc使设置生效,并查看hadoop是否安装成功。

afcf15b1ed3c50fba21a7701f99c327e.png

【2.2】伪分布式配置

Hadoop的默认模式即为本地模式(即单机模式),无需配置就可以运行,值得注意的是,Hadoop的模式变更(单机模式、伪分布式、分布式)完全是通过修改配置文件实现的。

这里配置的是伪分布式模式,即只有一个节点(一台机器),这个节点既作为名称节点(NameNode),也作为数据节点(DataNode),伪分布式模式配置涉及三个配置文件: hadoop目录/etc/hadoop/下的hadoop-env.sh、core-site.xml 和 hdfs-site.xml :

【2.2.1】首先将jdk1.8的路径添加到/etc/hadoop/hadoop-env.sh文件中

export JAVA_HOME=/usr/lib/jvm/java

【2.2.2】在core-site.xml文件中增加

hadoop.tmp.dir

file:/usr/local/hadoop/tmp

Abase for other temporary directories.

fs.defaultFS

hdfs://localhost:9000

【2.2.3】在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

325a00ba29c3def4834fac5ae7406568.png

Hadoop的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件),因此如果需要从伪分布式切换为单机模式,需要删除core-site.xml中的配置项。

伪分布式虽然只需要配置fs.defaultFS和dfs.replication就可以运行,不过若没有配置hadoop.tmp.dir参数,则默认使用的临时目录为/temp/hadoop-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行format才行。同时我们也指定了dfs.namenode.name.dir和dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

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

$ ./bin/hdfs namenode -format

启动namanode和datanode进程

启动完后,可以通过jps来判断是否成功启动,若成功,则会出现以下四个进程“NameNode”、”DataNode” 和 “SecondaryNameNode”

$ ./sbin/start-dfs.sh

$ jps

325a00ba29c3def4834fac5ae7406568.png

8e02cb56fd245d2c12ecd764c547be32.png

286028b9fb0726fa5072badce72b5bde.png

成功启动后,可以通过web界面 http://localhost:50070 查看NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

42834f9bd1051724c763003505c959a3.png

至此,Hadoop的伪分布式部署已完成啦!需要使用YARN的话,还需要单独配置mapred-site.xml和yarn-site.xml文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值