部署Hadoop3.0高性能集群——伪分布式部署

目录

 介绍:

一、环境搭建

 (1)  进行实验前准备,在VMware上安装一台CentOS7虚拟机,虚拟机的IP及机器名称如下(安装了可以忽略这一步)

 (2) 机器上配置hosts文件,实现域名与IP地址的对应,具体如下:(真实生产系统中在DNS服务器上配置) 

(3)创建运行hadoop用户账号和Hadoop目录。

(4)安装Java环境JDK

(4)关闭防火墙并让防火墙不会再启动,如果要启动则使用费enable:

(5) 配置无密码访问(单台机器也需要设置无密码访问)

二、Hadoop安装配置

(1)将hadoop-3.0.0.tar.gz上传到服务器/home/hadoop/目录下

(2)创建hadoop相关的工作目录

(3)配置Hadoop:需要修改7个配置文件。

1)配置文件hadoop-env.sh,指定hadoop的java运行环境

2)配置文件yarn-env.sh,保存yarn框架的运行环境(仅查看,不需要修改)

3)配置文件core-site.xml,指定访问hadoop web界面访问路径

4)配置文件hdfs-site.xml

5)配置文件mapred-site.xml

6)配置节点yarn-site.xml

7)编辑datanode节点host,修改workers文件

三、在hadoop163上启动Hadoop

1)hadoop namenode的初始化,只需要第一次的时候初始化,之后就不需要了

2)启动hdfs: ./sbin/start-dfs.sh,即启动HDFS分布式存储

3)启动yarn: ./sbin/start-yarn.sh  即,启动分布式计算

4)在主节点上启动存储服务和资源管理主服务。

5)启动: jobhistory服务,查看mapreduce运行状态

四、在web上查看


 介绍:

Hadoop3.0可以实现分布式集群部署。但是有时受实验条件的限制,可以在一台服务器上进行伪分布式部署。本实验先在一台机器上进行伪分布式部署,然后再在伪分布式部署的基础上进行真正的分布式集群部署。

 

一、环境搭建

 (1)  进行实验前准备,在VMware上安装一台CentOS7虚拟机,虚拟机的IP及机器名称如下(安装了可以忽略这一步

        主机名            IP地址                   角色

hadoop163.cn    192.168.150.163    NameNode /DataNode

 

 (2) 机器上配置hosts文件,实现域名与IP地址的对应,具体如下:(真实生产系统中在DNS服务器上配置) 

  查看自己ip:ifconfig 

# vim  /etc/hosts

 

测试,可以ping通:

 

(3)创建运行hadoop用户账号和Hadoop目录。

创建hadoop账号:

#为了保障,在其它服务器上创建的hadoop用户ID保持一致,创建时,尽量把UID调大
[root@hadoop163 ~]# useradd -u 8000  hadoop  

#设置用户密码
[root@ hadoop163 ~]# echo 123456 | passwd --stdin hadoop

注:创建用户hadoop时,不能使用参数-s /sbin/nologin  ,因为稍后我们要su - hadoop 切换用户

 

 

(4)安装Java环境JDK

FileZilla上传JDK包在root文件夹下和hadoop包在hadoop文件夹下,并查看。

下载FileZilla,请查看:

使用FileZilla,请查看:

不能连接虚拟机,请查看:

下载两个包,请查看:

上传成功后,进入root目录查看JDK文件:

进入hadoop目录查看等一下用的压缩包:

安装jdk:

 rpm -ivh jdk-8u161-linux-x64.rpm

 

查看安装位置【通过查看jdk的信息可以知道jdk的安装目录在/usr/java】 (记下位置,等一下要用)

rpm -pql  /root/jdk-8u161-linux-x64.rpm  

 (不止图片上显示的那么一点)

查看JDK版本:发现版本不是刚才安装的版本,接下来配置java环境变量,让版本为刚才安装的版本

java -version

 

 

配置JAVA环境变量:

vim /etc/profile   

#在文件的最后添加以下内容:
#----------------------------------------------------------------------------------------

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

export JAVA_BIN=/usr/java/jdk1.8.0_161/bin

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

export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

#----------------------------------------------------------------------------------------

#使配置文件生效
source /etc/profile 

 

 

再次查看java版本,验证是否安装成功:

如果出现安装的对应版本,说明java运行环境已经安装成功。

注:这里只是升级了jdk的版本,因为在我安装的系统中已经安装了jdk。

 

(4)关闭防火墙并让防火墙不会再启动,如果要启动则使用费enable:

[root@ hadoop163 ~]# systemctl stop firewalld.service

[root@ hadoop163 ~]# systemctl disable firewalld.service

(5) 配置无密码访问(单台机器也需要设置无密码访问)

   首先,切换到hadoop账号下:

# 生成秘钥
[Hadoop@hadoop163 ~]$ ssh-keygen 


# 分发秘钥
[Hadoop@hadoop163 ~]$ ssh-copy-id  192.168.150.163  

生成密钥(一直回车,直到完成):

 

分发密钥

Ssh-copy-id后面需要跟上自己的ip地址(通过ifconfig可以查看),让继续的时候选择yes,让输入密码时,输入建立用户时设置的密码。

 

二、Hadoop安装配置

 

(1)将hadoop-3.0.0.tar.gz上传到服务器/home/hadoop/目录下

Hadoop安装目录:/home/hadoop/hadoop-3.0.0

注意:以下步骤使用hadoop账号操作

[root@hadoop163 ~]# su - hadoop     

#只要解压文件就可以,不需要编译安装
[hadoop@hadoop163 ~]$ tar zxvf hadoop-3.0.0.tar.gz   

 解压完成后会有目录:

(2)创建hadoop相关的工作目录

在hadoop下创建三个工作目录:

name  、data 、tmp

[hadoop@hadoop163 ~]$ mkdir -p  /home/hadoop/dfs/name  

[hadoop@hadoop163 ~]$ mkdir -p  /home/hadoop/dfs/data

[hadoop@hadoop163 ~]$ mkdir -p  /home/hadoop/tmp

[hadoop@hadoop163 ~]$ ls

 

 

(3)配置Hadoop:需要修改7个配置文件。

文件位置:/home/hadoop/hadoop-3.0.0/etc/hadoop/

文件名称:hadoop-env.sh、yarn-evn.sh、workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

 

1)配置文件hadoop-env.sh,指定hadoop的java运行环境

该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。

[hadoop@ hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/hadoop-env.sh

让文件显示行数,方便看,需要修改的位置是54行:注:指定java运行环境变量

2)配置文件yarn-env.sh,保存yarn框架的运行环境(仅查看,不需要修改)

该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。

yarn :Hadoop 的新 MapReduce 框架Yarn是Hadoop 自 0.23.0 版本后新的 map-reduce 框架(Yarn) 原理 。

[hadoop@hadoop163 hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/yarn-env.sh 

查看优先规则:

3)配置文件core-site.xml,指定访问hadoop web界面访问路径

这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的命名,位置为主机的9000端口;

hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统中没有的位置,所以要先用mkdir命令新建一下(我们已经在前面创建)。

[hadoop@ hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/core-site.xml

进入文件,在<configuration></configuration>之间添加代码:

<property>
      <name>fs.defaultFS</name>
          <value>hdfs://hadoop163.cn:9000</value>
 </property>

 <property>
     <name>io.file.buffer.size</name>
         <value>4096</value>
 </property>

 <property>
     <name>hadoop.tmp.dir</name>
         <value>file:/home/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
 </property>

如图:

 

说明:io.file.buffer.size 的默认值 4096 。这是读写 sequence file 的 buffer size, 可减少 I/O 次数。在大型的 Hadoop cluster,建议可设定为 65536

 

4)配置文件hdfs-site.xml

这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;

dfs.replication配置了文件块的副本数,一般不大于从机的个数。

[root@ hadoop163 hadoop]# vim /home/hadoop/hadoop-3.0.0/etc/hadoop/hdfs-site.xml

在<configuration>和</configuration>中间插入内容:

<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop163.cn:9001</value> 
  </property>

  <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/hadoop/dfs/name</value>
  </property>

 <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value>
 </property>

 <property>
    <name>dfs.replication</name>
    <value>1</value>   
 </property>

 <property>
    <name>dfs.webhdfs.enabled</name>
        <value>true</value>
 </property>

<property>
    <name>dfs.http.address</name>
    <value> hadoop163.cn:50070</value>
 </property>

 

5)配置文件mapred-site.xml

这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,同时指定:Hadoop的历史服务器historyserver

Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的。

[hadoop@hadoop hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/mapred-site.xml

在<configuration>和</configuration>中间插入内容:

 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>

 <property>
     <name>mapreduce.jobhistory.address</name>
     <value>0.0.0.0:10020</value>
 </property>

 <property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>0.0.0.0:19888</value>
 </property>

6)配置节点yarn-site.xml

该文件为yarn框架的配置,主要是一些任务的启动位置

[hadoop@hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/yarn-site.xml

在<configuration>和</configuration>中间插入内容:

<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
 </property>

 <property>
     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>

 <property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop163.cn:8032</value>
 </property>

 <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoop163.cn:8030</value>
 </property>

 <property>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <value>hadoop163.cn:8031</value>
 </property>

 <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoop163.cn:8033</value>
 </property>

 <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop163.cn:8088</value>
 </property>

<property>
    <name>yarn.application.classpath</name>
    <value>/home/hadoop/hadoop-3.0.0/etc/hadoop:/home/hadoop/hadoop-3.0.0/share/hadoop/common/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/common/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/*:/home/hadoop/hadoop-3.0.0/share/hadoop/mapreduce/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/* </value>
</property>

7)编辑datanode节点host,修改workers文件

[hadoop@hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/workers

修改为,因为是伪分布,所以添加机器本身

、在hadoop163上启动Hadoop

hadoop用户下操作:

1)hadoop namenode的初始化,只需要第一次的时候初始化,之后就不需要了

[hadoop@hadoop163 hadoop-3.0.0]$ /home/hadoop/hadoop-3.0.0/bin/hdfs namenode -format

 

查看是否有文件自动生成,有则说明成功:

 

2)启动hdfs: ./sbin/start-dfs.sh,即启动HDFS分布式存储

启动文件的路径为:/home/hadoop/hadoop-3.0.0/sbin/

[root@hadoop163 ~]# /home/hadoop/hadoop-3.0.0/sbin/start-dfs.sh

3)启动yarn: ./sbin/start-yarn.sh  即,启动分布式计算

[hadoop@ hadoop163 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/start-yarn.sh

注:start-dfs.sh  和 start-yarn.sh 这两个脚本可用start-all.sh代替。

开启:
[hadoop@hadoop163 ~]$ /home/hadoop/hadoop-3.0.0/sbin/start-all.sh

关闭:

[hadoop@hadoop163 ~]$ /home/hadoop/hadoop-3.0.0/sbin/stop-all.sh

启动了五个,成功。

用jps查看状态:

4)在主节点上启动存储服务和资源管理主服务。

使用命令:(使用start-all.sh启动后,这两个服务已经自动启动,不需要再次执行了)

#启动从存储服务
[hadoop@hadoop163 ~]$ /home/hadoop/hadoop-3.0.0/sbin/hadoop-daemon.sh start datanode                                

 #启动资源管理从服务
[hadoop@hadoop163 ~]$ /home/hadoop/hadoop-3.0.0/sbin/yarn-daemon.sh start nodemanager                           

5)启动: jobhistory服务,查看mapreduce运行状态

[hadoop@hadoop163 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/mr-jobhistory-daemon.sh start historyserver

 

四、在web上查看

在标题栏中输入:

http://hadoop163.cn:8088

可以查看,则表示已经成功。

 

发布了6 篇原创文章 · 获赞 3 · 访问量 1745

猜你喜欢

转载自blog.csdn.net/qq_41567921/article/details/105437960