Hadoop伪分布式部署

1.实验环境准备:
(1) 进行实验前准备,在VMware上安装一台CentOS7虚拟机,虚拟机的IP及机器名称如下

   主机名              IP地址               角色
hadoop163.cn     192.168.150.163    NameNode /DataNode

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

[root@hadoop163 ~]# vim  /etc/hosts
192.168.150.163   hadoop163.cn

(3)创建运行hadoop用户账号和Hadoop目录。
创建hadoop账号:
[root@hadoop163 ~]# useradd -u 8000 hadoop
#为了保障,在其它服务器上创建的hadoop用户ID保持一致,创建时,尽量把UID调大
[root@ hadoop163 ~]# echo 123456 | passwd --stdin hadoop
注:创建用户hadoop时,不能使用参数-s /sbin/nologin ,因为稍后我们要su - hadoop 切换用户
(4)配置Hadoop环境,安装Java环境JDK
1.安装jdk ,上传jdk-8u161-linux-x64.rpm软件包到hadoop163服务器
安装及配置Java运行环境—jdk。升级了jdk的版本

[root@ hadoop163 ~]# rpm –ivh jdk-8u161-linux-x64.rpm 
[root@ hadoop163 ~]#rpm -pql  /root/jdk-8u161-linux-x64.rpm  

#通过查看jdk的信息可以知道jdk的安装目录在/usr/java
2.配置JAVA环境变量
[root@Hadoop163 ~]#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

[root@hadoop163 ~]#source /etc/profile#使配置文件生效
验证java运行环境是否安装成功:
[root@ hadoop163 ~]# java –version
显示如下信息表示配置正确:

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

如果出现安装的对应版本,说明java运行环境已经安装成功。
注:这里只是升级了jdk的版本,因为在我安装的系统中已经安装了jdk。

(4)关闭防火墙:

[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  //分发秘钥

2、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@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
dfs  hadoop-3.0.0  hadoop-3.0.0.tar.gz  tmp

(3)配置Hadoop:需要修改7个配置文件。
文件位置:/home/hadoop/hadoop-3.0.0/etc/hadoop/
文件名称:hadoop-env.shyarn-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 # export JAVA_HOME=
为:export JAVA_HOME=/usr/java/jdk1.8.0_161
注:指定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
查看优先规则:

## Precedence rules:
##
## yarn-env.sh > hadoop-env.sh > hard-coded defaults

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
改:
19 <configuration>
20 </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>

</configuration>

说明: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
改:19 <configuration>
 20 
 21 </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>
</configuration>

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历史服务器是没有启动的。
修改mapred-site.xml

[hadoop@hadoop hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/mapred-site.xml
改:19 <configuration>
 20 
 21 </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>

</configuration>

6)配置节点yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置

[hadoop@hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/yarn-site.xml 
# 修改configuration内容如下: 
改:
<configuration>

<!-- Site specific YARN configuration properties -->

</configuration>
<configuration>

<!-- Site specific YARN configuration properties -->
 <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>

</configuration>

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

[hadoop@hadoop163 hadoop]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/workers 
修改为,因为是伪分布,所以添加机器本身
hadoop163.cn

3、在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.shstart-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

------------------------------以下服务可以不启动--------------------------------------------------
4)启动: jobhistory服务,查看mapreduce运行状态

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

5)在主节点上启动存储服务和资源管理主服务。使用命令:

[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

#启动资源管理从服务

4、查看服务器状态
1)通过Web查看hadoop集群状态: http://hadoop163.cn:8088
在这里插入图片描述
(2)查看JobHistory的内容:(前提是任务历史服务器已经启动)
http://hadoop163.cn:19888/jobhistory
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值