hadoop环境搭建
young / / / 阅读量

Hadoop的分布式模型

Hadoop通常有三种运行模式:本地(独立)模式、伪分布式(Pseudo-distributed)模式和完全分布式(Fully distributed)模式。
安装完成后,Hadoop的默认配置即为本地模式,此时Hadoop使用本地文件系统而非分布式文件系统,而且其也不会启动任何Hadoop守护进程,Map和Reduce任务都作为同一进程的不同部分来执行。

因此,本地模式下的Hadoop仅运行于本机。此模式仅用于开发或调试MapReduce应用程序但却避免了复杂的后续操作。伪分布式模式下,Hadoop将所有进程运行于同一台主机上,但此时Hadoop将使用分布式文件系统,而且各jobs也是由JobTracker服务管理的独立进程。
同时,由于伪分布式的Hadoop集群只有一个节点,因此HDFS的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并非真正意义的分布式之外,其程序执行逻辑完全类似于完全分布式,因此,常用于开发人员测试程序执行。要真正发挥Hadoop的威力,就得使用完全分布式模式。
由于ZooKeeper实现高可用等依赖于奇数法定数目(an odd-numbered quorum),因此,完全分布式环境需要至少三个节点

环境准备

部署环境
|主机名称| IP | 系统|
|—-|—-|—-|
|Master | 192.168.129.79 | centos6.5|
|Slave | 192168.129.78 | cenros6.5|
|Slave1 | 192168.129.77 | cenros6.5|
域名解析和开放防火墙端口 (所有机器上)

/etc/hosts

192.168.129.79 master
192.168.129.78 slave
192.168.129.77 slave1

关闭 selinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0

防火墙开放iptables

-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -p tcp -s 192.168.129.0/24 -j ACCEPT

配置所有机器ssh互信

# 创建密匙(每台都配置)
[root@master ~]# ssh-keygen -t  rsa
# 复制密匙(每台都配置)
[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub master
[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub slave
[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub slave1

安装jdk和配置环境变量(三台同样配置)

[root@master ~]#  rpm -ivh jdk-8u91-linux-x64.rpm   #安装jdk
Preparing...                ########################################### [100%]
   1:jdk1.8.0_91            ########################################### [100%]
Unpacking JAR files...
    rt.jar...
    jsse.jar...
    charsets.jar...
    tools.jar...
    localedata.jar...
    jfxrt.jar...
[root@master ~]# vim /etc/profile  #设置java环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_91
export JRE_HOME=/usr/java/jdk1.8.0_91/jre 
export PATH=$PATH:$JAVA_HOME:$JRE_HOME
 [root@master ~]# java -version     #查看java变量是否配置成功
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

hadoop安装配置

安装并配置hadoop(使用普通用户hadoop(创建用户省略))
创建hadoop数据目录(三台同样配置)

[hadoop@master ~]# mkdir -p /web/data/hdfs/name /web/data/hdfs/data /web/data/hdfs/tmp

安装Hadoop并配置环境变量(master上)

[hadoop@master ~]# mkdir -p /web/soft
#上传hadoop压缩包到此文件夹
[hadoop@master ~]# cd /web/soft/     
[hadoop@master ~]# tar xf hadoop-2.6.5.tar.gz && mv hadoop-2.6.5 hadoop
#增加环境变量
[hadoop@master ~]# vim /    etc/profile  
export PATH=$PATH:/web/soft/hadoop/bin

修改以下配置文件(所有文件均位于/web/soft/hadoop/etc/hadoop路径下)
hadoop-env.sh

# The java implementation to use.
 export JAVA_HOME=/usr/java/jdk1.8.0_91 #将JAVA_HOME改为固定路径
 export HADOOP_CONF_DIR=/web/soft/hadoop/etc/hadoop

core-site.xml


    
    
        fs.defaultFS
        hdfs://master:9000
    
    
    
        hadoop.tmp.dir
        /web/data/hdfs/tmp
    
        
        dfs.permissions
        false
    
    
        hadoop.security.authorization
        true
    
    
        security.job.submission.protocol.acl
        hadoop hadoop
    

hdfs-site.xml


    
    
       dfs.namenode.http-address
       master:50070
    
    
    
       dfs.namenode.secondary.http-address
       slave:50090
    
     
    
       dfs.namenode.name.dir
       /web/data/hdfs/name
    
    
    
       dfs.replication
       2
    
    
    
        dfs.datanode.data.dir
        /web/data/hdfs/data
        

mapred-site.xml


    
    
       mapreduce.framework.name
       yarn
    

yarn-site.xml


    
    
        yarn.resourcemanager.hostname
        master
    

    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
        yarn.nodemanager.aux-services.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
    

masters

#这里指定的是secondary namenode 的主机
slave  

slaves

slave
slave1

3.复制Hadoop安装目录及环境配置文件到其他主机
master上:

[hadoop@master ~]# cd /web/soft
[hadoop@master ~]# scp -r /web/soft/hadoop slave:/web/soft
[hadoop@master ~]# scp -r /web/soft/hadoop slave1:/web/soft

启动Hadoop

1.格式化名称节点(master)

[hadoop@master local]# hdfs namenode -format
18/03/28 16:34:23 INFO common.Storage: Storage directory /Hadoop/name has been successfully formatted.  #这行信息表明对应的存储已经格式化成功。
18/03/28 16:34:23 INFO namenode.FSImageFormatProtobuf: Saving image file /Hadoop/name/current/fsimage.ckpt_0000000000000000000 using no compression
18/03/28 16:34:24 INFO namenode.FSImageFormatProtobuf: Image file /Hadoop/name/current/fsimage.ckpt_0000000000000000000 of size 321 bytes saved in 0 seconds.
18/03/28 16:34:24 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
18/03/28 16:34:24 INFO util.ExitUtil: Exiting with status 0
18/03/28 16:34:24 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.1.250
************************************************************/

2.启动

[hadoop@master ~# cd /web/soft/hadoop/sbin
[hadoop@master ~# ./start-all.sh

查看结果
master上

[hadoop@master sbin]# jps|grep -v Jps
3746 ResourceManager
3496 NameNode

slave上

[hadoop@slave1 ~]#  jps|grep -v Jps
3906 DataNode
4060 NodeManager
3996 SecondaryNameNode

Slave1上

[hadoop@slave2 ~]# jps|grep -v Jps
3446 NodeManager
3351 DataNode

测试

1.查看集群状态

[hadoop@master sbin]# hdfs dfsadmin -report

2.测试YARN
可以访问YARN的管理界面,验证YARN,如下图所示:

http://ip:8088/cluster

3测试向hadoop集群系统创建一个目录并上传一个文件

[hadoop@master ~#  hdfs dfs -mkdir -p /Hadoop/test
[hadoop@master ~]#  hdfs dfs -put install.log /Hadoop/test
[hadoop@master ~]# hdfs dfs -ls  /Hadoop/test 
Found 1 items
-rw-r--r--   2 hadoop supergroup      28207 2018-03-28 16:48 /Hadoop/test/install.log

可以看到一切正常,至此我们的三台hadoop集群搭建完毕。

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章