搭建Hadoop的环境

安装Hadoop环境之前需要做一些准备工作,比如:安装Linux、JDK、关闭防火墙、配置主机名、配置免密码登录、了解Hadoop目录结构等。搭建Hadoop环境有三种模式:本地模式、伪分布模式和全分布模式。

一、准备工作

1.安装Linux、JDK、关闭防火墙、配置主机名

安装Linux参考这篇文章:https://www.chenchuan.net/doc/1539.html
安装JDK参考这篇文章:https://www.chenchuan.net/doc/1541.html
关闭防火墙:

  • systemctl status firewalld.service
  • systemctl stop firewalld.service ---> 如果重启,会重启防火墙
  • systemctl disable firewalld.service ---> 永久关闭防火墙

输入systemctl status firewalld.service查看防火墙状态


查看防火墙状态

这里显示inactive说明防火墙关闭成功
配置主机名和IP的对应关系:
编辑配置文件vi /etc/hosts添加192.168.0.111 bigdata111
输入more /etc/hosts命令查看配置


查看配置

2.Hadoop的目录结构

首先下载Hadoop安装包,Hadoop安装包可以从官网下载,官网下载地址:http://hadoop.apache.org/releases.html,本站提供一个hadoop-2.7.3.tar.gz下载,下载地址:更新中。。。
然后将下载下来的安装包上传到Linux的tools目录,使用tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/解压
Hadoop的目录结构如下:


Hadoop的目录结构

3.设置Hadoop环境变量

解压好Hadoop后需设置环境变量才可以使用,使用命令vi ~/.bash_profile进入环境变量设置

HADOOP_HOME=/root/training/hadoop-2.7.3
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

使用source ~/.bash_profile命令让Hadoop环境变量生效,start后连续按两次tab键,出现如下界面表示Hadoop环境变量设置成功


设置Hadoop环境变量

二、本地模式

1.特点

没有HDFS、只能测试MapReduce程序,因为本地模式没有HDFS,所以MapReduce处理的是本地Linux的文件数据

2.本地模式配置参数

配置本地模式

在hadoop-env.sh中配置JDK的根目录,输入vi hadoop-env.sh命令进入编辑export JAVA_HOME=/root/training/jdk1.8.0_144,如果是haddop-2.7.3默认在第25行。

3.测试MapReduce程序

创建目录:mkdir ~/input
在~/input目录中创建一个data.txt文件,输入文本

I love Beijing
I love China
Beijing is the capital of China

运行:
首先进入cd ~/training/hadoop-2.7.3/share/hadoop/mapreduce/目录
然后输入hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/input/data.txt /output运行,这个/output输出目录不能事先存在
进入cd ~/output/目录查看目录下的part-r-00000文件,如果出现如下结果表示MapReduce程序测试成功

测试MapReduce程序

三、伪分布模式

1.特点

是在单机上,模拟一个分布式的环境,具备Hadoop的主要功能,安装好伪分布模式后由HDFS和Yarn两部分组成,HDFS:namenode+datanode+secondarynamenode,Yarn: resourcemanager + nodemanager`

2.伪分布模式配置参数

伪分布模式配置参数

3.配置

hdfs-site.xml



   dfs.replication
   1




   dfs.permissions
   false

core-site.xml



   fs.defaultFS
   hdfs://bigdata111:9000




   hadoop.tmp.dir
   /root/training/hadoop-2.7.3/tmp

mapred-site.xml:默认没有这个文件,可以复制同目录下的mapred-site.xml.template,命令:cp mapred-site.xml.template mapred-site.xml



   mapreduce.framework.name
   yarn

yarn-site.xml



   yarn.resourcemanager.hostname
   bigdata111




   yarn.nodemanager.aux-services
   mapreduce_shuffle

4.格式化HDFS(NameNode)

使用hdfs namenode -format命令格式化HDFS(NameNode)
输出如下日志说明格式化成功:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.


格式化HDFS(NameNode)

5.启动与停止

启动:start-all.sh
停止:stop-all.sh
启动和停止的时候都会提示让输入四次密码


Hadoop启动与停止

启动成功后通过jps查看到这五部分安装到一台主机上的


伪分布模式五部分

6.访问

通过Web界面访问

  • HDFS: http://192.168.0.111:50070
  • Yarn: http://192.168.0.111:8088

若访问出现如下界面表示Hadoop伪分布模式配置成功


HDFS

Yarn

四、配置免密码登录

1.原理

基本原理:采用不对称加密的算法,如果Server A要登录到Server B上,由Server A产生一个密钥对,其中包含公钥和私钥,把Server A产生的公钥给Server B。当Server A登录到Server B的时候由Server B随机产生一个字符串,使用Server A给的公钥进行加密生成一个加密字符串,然后把这个加密字符串发送给Server A,当Server A收到Server B发来的加密字符串的时候使用自己的私钥进行解密得到Server B加密之前的字符串发回给Server B。Server B收到Server A发来的解密字符串进行对比,如果一样就直接登录,否则让输入密码。
原理图:

免密码登录原理

2.配置

比如有一个主机(myhost01)要登录到bigdata111上要配置免密码登录,

  • 在myhost01上使用ssh-keygen -t rsa生成密钥对,
  • 使用命令ssh-copy-id -i .ssh/id_rsa.pub root@bigdata111把myhost01上产生的公钥拷贝到bigdata111

这样就配置完成了,在myhost01上使用命令ssh bigdata111连接


免密码连接

发现不用密码就可以连接,这样上面伪分布模式启动和停止都需要输入密码,现在配置了免密码登录就不需要输入密码了。


免密码启动Hadoop

从上图可以看出不需要密码就可以启动Hadoop了。

五、全分布模式

1.特点

真正的分布式环境,用于生产,至少需要三台主机

2.规划及准备工作

搭建Hadoop全分布模式需要三台主机,这里用bigdata112/bigdata113/bigdata114这三台,bigdata112做主节点,bigdata113和bigdata114做从节点
规划示意图

Hadoop全分布模式

搭建Hadoop全分布模式跟为分布模式一样需要关闭防火墙、安装JDK、配置主机名和配置免密码登录,三台主机时间同步。关闭防火墙和安装JDK跟第一点的准备工作一样,不同的是这里配置主机名和免密码登录需要写上每一台主机的IP和私钥
配置主机名
在每台主机输入vi /etx/hosts命令添加三台主机ip及名称

192.168.0.112 bigdata112
192.168.0.113 bigdata113
192.168.0.114 bigdata114

配置免密码登录
三台主机配置免密码登录需要两两之间的免密码登录,所以每台主机都要拷贝公钥,每台主机都要使用ssh-keygen -t rsa产生自己的公钥和私钥。每台机器都要把自己的公钥拷贝给这三台每一台主机

ssh-copy-id -i .ssh/id_rsa.pub root@bigdata112
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114

三台主机时间同步
做全分布模式需要三台主机时间同步,不然执行MapReduce可能会出错。要保证三台主机时间同步方法有很多,比如:搭建一台时间服务器、跟互联网时间同步、用工具执行同时修改时间等。

3.安装

在主节点上(bigdata112)安装,然后复制到bigdata113和bigdata114
解压设置环境变量
使用命令tar -zxvf hadoop-2.7.3.tar.gz -C /training/解压Hadoop安装包,在/.bash_profile中设置192.168.0.112/113/114环境变量

HADOOP_HOME=/root/training/hadoop-2.7.3
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

使用source ~/.bash_profile命令让Hadoop环境变量生效
修改配置文件
全分布模式需要修改如下配置

全分布模式配置参数

hadoop-env.sh
在hadoop-env.sh中配置JDK的根目录,输入vi hadoop-env.sh命令进入编辑export JAVA_HOME=/root/training/jdk1.8.0_144,如果是haddop-2.7.3默认在第25行。
hdfs-site.xml



   dfs.replication
   2

core-site.xml



   fs.defaultFS
   hdfs://bigdata112:9000




   hadoop.tmp.dir
   /root/training/hadoop-2.7.3/tmp

mapred-site.xml
默认没有mapred-site.xml需要通过cp mapred-site.xml.template mapred-site.xml命令复制一个



   mapreduce.framework.name
   yarn

yarn-site.xml



   yarn.resourcemanager.hostname
   bigdata112




   yarn.nodemanager.aux-services
   mapreduce_shuffle

slaves

bigdata113
bigdata114

格式化NameNode
在使用之前需要先格式化NameNode,使用命令hdfs namenode -format格式化
复制到从节点上
把主节点上配置好的hadoop复制到从节点上

scp -r hadoop-2.7.3/ root@bigdata113:/root/training
scp -r hadoop-2.7.3/ root@bigdata114:/root/training

启动
在主节点上启动start-all.sh
验证
启动成功后在浏览器中输入

  • http://192.168.0.112:50070
  • http://192.168.0.112:8088

如果都能访问说明环境搭建成功。

原文地址:https://www.chenchuan.net/doc/1545.html

你可能感兴趣的:(搭建Hadoop的环境)