美文网首页
Hadoop | Hadoop伪分布式模式部署

Hadoop | Hadoop伪分布式模式部署

作者: Ada54 | 来源:发表于2018-09-03 23:42 被阅读0次

    伪分布模式

    设备: 一台 linux

    特点: 在单机上模拟分布式环境,拥有Hadoop所有功能

    配置文件:hadoop-env.sh,  mapred-env.sh、yarn-env.sh、core-site.xml,  hdfs-site.xml,   mapred-site.xml, yarn-site.xml

    一、 设置Hadoop用户

    二、 Hadoop安装&配置

    三 、启动HDFS & YARN

    四、 测试MapReduce Job

    五 、总结


    一、 设置Hadoop用户

    step1: 创建新的普通用户hadoop

    创建hadoop用户出于保障 hdfs 的数据安全性,给不同的用户赋予不同权限

    输入: su  -                         切换root用户

    输入: useradd hadoop       添加hadoop用户

    输入: passwd hadoop       输入hadoop用户的登陆密码

    step2:赋予hadoop用户sudo权限

     一般root用户无权修改sudoers, 先手动为root用户添加写权限

    输入:chmod  u+w  /etc/sudoers          为root用户添加写权限

    输入: vim /etc/sudoers          打开sudoers文件

    输入: i 键 进入编辑模式
    输入:hadoop   ALL=(root)   NOPASSWD:ALL         添加hadoop权限

    输入: Esc 键,输入 :wq  保存并退出

    在学习环境可将hadoop用户的权限设置的大一些,但实际生产环境一定要注意普通用户的权限限制

    step3:切换到hadoop用户

    输入: su  -   hadoop

    二、 Hadoop安装&配置

    step4:解压hadoop

    hadoop下载教程:https://www.jianshu.com/p/a28e2305a48c

    输入: sudo  mkdir  /opt/modules        创建目录,存放hadoop文件

    输入: sudo  chown  -R    hadoop:hadoop     /opt/modules         将存放hadoop的目录指定为hadoop用户,避免hadoop运行过程存在的权限问题

    chown    命令用来修改目录的权限

    -R     递归,就是从当前目录到子目录

    hadoop:hadoop   将目录和文件的owner和group都设成 hadoop

    本人已将hadoop压缩包放在 /opt /software

    输入: cp   hadoop-2.2.0.tar.gz   /opt / modules       将hadoop压缩包复制到 /opt / modules目录下

    输入: tar   -zxvf    hadoop-2.2.0.tar.gz        解压hadop压缩包,直接用

    step5:配置hadoop环境变量

    输入: sudo  vim   /etc/profile        打开profile目录配置环境变量

    输入: i 键 进入编辑模式

    输入: export   HADOOP_HOME = /opt /modules / hadoop-2.2.0

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

    输入: Esc 键,输入 :wq  保存并退出

    step6:配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件JAVA_HOME参数

    输入: sudo   vim   hadoop-env.sh      打开 hadoop-env.sh文件

    输入: i 键 进入编辑模式

    输入: export   JAVA_HOME = /usr / local / java / jdk.1.8.0_181 

    添加JAVA_HOME路径 

    输入: Esc 键,输入 :wq  保存并退出

    (可输入  echo  $JAVA_HOME  查看  JAVA_HOME  环境变量

    输入: source  /etc/profile        重新执行profile 文件使其生效

    配置mapred-env.sh、yarn-env.sh文件JAVA_HOME参数,同理

    step7:配置 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 文件

    这几个配置文件放置在 hadoop安装目录下   /hadoop-2.2.0/etc/hadoop/

    若发现没有存在mapred-site.xml, 但存在mapred-site.xml.template

    直接复制,重命名一个mapred-site.xml就可以

    输入 : cp   mapred-site.xml.template    mapred-site.xml

    接下来,逐个来配置这几个文件

    (1)  配置 core-site.xml

    配置参数 :   fs.defaultFS   配置HDFS的NameNode的地址

                          hadoop.temp.dir     配置HDFS数据保存的目录。默认是Linux的tmp目录,由于系统启动,会清空默认的tmp目录,导致NameNode数据丢失,所以需要创建新的tmp目录

    输入:   sudo   mkdir   -p   /opt /modules/hadoop-2.2.0/tmp  本人在hadoop安装目录下创建tmp目录,来存放HDFS数据,你可自行创建别处目录进行存放

    输入: sudo   vim   core-site.xml      打开core-site.xml文件

    配置core-site.xml参数信息

    fs.defaultFS ,hdfs的 ip,默认端口号 8020

    (2)  配置 hdfs-site.xml

    配置参数 :   dfs.replication     HDFS存储时的备份数量,默认是3, 伪分布设为1         

    输入: sudo   vim   hdfs-site.xml   打开 hdfs-site.xml文件

    配置 hdfs-site.xml 参数信息

    (3)  配置 mapred-site.xml

    配置参数 :   mapredure.framework.name   配置mapredure程序运行的容器是Yarn

    输入: sudo   vim   mapred-site.xml   打开mapred-site.xml文件

    配置mapred-site.xml参数信息

    (4)  配置 yarn-site.xml

    配置参数 :   yarn.resourcemanager.hostname      配置ResourceManager的主机地址

                          yarn.nodemanager.aux-services       配置NodeManager运行mapredure任务的方式

    输入: sudo   vim   yarn-site.xml   打开yarn-site.xml文件

    配置mapred-site.xml参数信息

    三 、启动HDFS & YARN

    step8: 格式化 HDFS

    格式化是对HDFS中的DataNode进行分块,并将分块后的原始元数据存于NameNode中。

    输入: bin/hdfs  namenode   -format          格式化NameNode

    格式化成功后,可在 temp 目录中生成 dfs 目录

    输入:  ll   temp/dfs/name/current       查看NamaNode格式化后的目录

    fsimage    NameNode在元数据内存满了后的持久化文件

    fsimage*.md5       校验文件,校验fsimage的完整性

    seen_txid       hadoop的版本

    vession      保存namesopaceID(NameNode的唯一ID)和 clusterID(集群ID) 

    输入: cat    tmp/dfs/name/current/VERSION      可查看vession中内容

    step8: 启动 HDFS & YARN

    方法 1     同时全部启动

    输入:  start-all.sh       同时全部启动

    启动都命令存放于  hadoop-2.2.0 / sbin / 目录下

    输入:  jps        查看是否启动成功

    方法 2       逐个启动

    输入: hadoop-daemon.sh   start   namenode                    启动NameNode 

    输入: hadoop-daemon.sh   start   datanode                      启动DataNode 

    输入: hadoop-daemon.sh   start  secondarynamenode    启动SecondaryNameNode  

    输入: yarn-daemon.sh   start   resourcemanager              启动ResourceManager      

    输入: hadoop-daemon.sh   start   nodemanager               启动NodeManager

    输入:  jps        可查看是否启动成功  

    通过 http://192.168.100.10:8088/ 可以查看YARN的Web页面,YARN  Web端的端口号是8088

    停止 hadoop的命令,对应的使用 stop

    四、 测试MapReduce Job

    Hadoop 自带的 WordCount 程序 hadoop-mapreduce-examples-2.2.0.jar,存放于hadoop安装目录的 share/hadoop/mapreduce/ 路径下, 可用该程序来进行测试

    Hadoop 自带的 WordCount程序,单词统计的功能,因此先创建一个文本作为输入文件

    step9:创建输入文件

    输入: sudo   vim   /opt/data/wc.input       创建wc.input文件

    打开文件后, 按 i 键进入编辑模式,输入单词(it's up to you)

    输入完成后,按 Esc 键退出编辑模式,按 :wq  保存并退出

    输入: hdfs  dfs  -put   /opt/data/wc.input      /wordcountdemo/input          将wc.input文件上传到HDFS的/wordcountdemo/input目录下

    输入: yarn   jar   share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar    wordcount    /wordcountdemo/input      /wordcountdemo/output

    运行功能的 .jar 包,wordcount是 jar包 需要运行的主类,wc.input 为输入的文本参数,输出结果保存到output目录下

    Hadoop Job的运行记录中,可知输入文件有1个(Total input paths to process:1)

    这个Job被赋予了一个ID号:job_1535711820644_0001

    同时还可以看到map和reduce的job记录

    输入: hdfs  dfs  -ls   /wordcountdemo/output       查看输出结果目录

    _SUCCESS文件  说明运行成功

    part-r-00000  是输出结果文件,-r- 说明这个文件是Reduce阶段产生的结果。mapreduce程序执行中,可以没有reduce阶段,但是肯定有map阶段,如果没有reduce阶段则显示是-m-

    一个reduce会产生一个 part-r-开头的文件

    输入:  hdfs  dfs  -cat    /wordcountdemo/output/part - r -0000     查看输出文件的内容,结果按照键值排序而成

    五 、总结

    Hadoop各模块的学习理解

    1、HDFS 模块

    HDFS 数据存储功能,负责大数据的存储,将大文件分块后进行分布式存储,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题。HDFS是个相对独立的模块,可以为YARN提供服务和HBase等其他模块提供服务

    运行的节点

    NameNode,  DataNode,  JobTracker,  TaskTracker,  SecondaryNameNode

    节点的区别

    从分布式存储的角度,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份

    从分布式应用的角度,集群中的结点由一个JobTracker 和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算

    JobTracker和NameNode无须在同一台机器上

    2、YARN 模块

    YARN是通用的资源协同和任务调度框架,为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题

    YARN是通用框架,可运行MapReduce,还可运行Spark、Storm等其他计算框架

    3、MapReduce 模块

    MapReduce是并行计算框架,通过Map阶段、Reduce阶段来分布式地流式处理数据。它适用于大数据的离线处理,不适用于实时性要求很高的应用

    相关文章

      网友评论

          本文标题:Hadoop | Hadoop伪分布式模式部署

          本文链接:https://www.haomeiwen.com/subject/nthrwftx.html