美文网首页大数据,机器学习,人工智能Mac学习大数据玩转大数据
【Mac大数据开发】第四篇-Hadoop安装和配置(伪分布式集群

【Mac大数据开发】第四篇-Hadoop安装和配置(伪分布式集群

作者: irving_yuan | 来源:发表于2019-06-26 11:24 被阅读0次

    1. Hadoop的安装

    下载Hadoop安装包,通过scp(或其他指令方式)发送到虚拟机上,并进行解压安装。修改环境变量

    vi /etc/profile
    export JAVA_HOME="/opt/jdk1.8.0_211"
    export HADOOP_HOME="/opt/hadoop-2.8.4" # hadoop安装目录
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    source /etc/profile
    

    使用hadoop命令检查是否安装成,如下则说明安装成功


    hadoop安装成功

    2. 伪集群配置

    Hadoop正常工作必须启动两个基础的服务-hadoop和yarn。伪集群模式即在单机上启动这些服务。包括主动启动nn,dn,sn、rm、nm等

    2.1 NameNode配置

    修改etc目录下的core-site.xml文件,在configuration标签中添加

    <!-- 指定NameNode的地址 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://主机名1:9000</value>
    </property>
    
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.X.X/data/tmp</value>
    </property>
    

    其中9000时hadoop中namenode的通信端口,此前版本时8200;
    对于文件目录,不指定时存放在用户的/tmp目录,系统会自动清理,影响使用

    2.2 HDFS配置

    修改同目录下的hdfs-site.xml,添加如下配置

    <!--数据冗余数-->
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    <!--secondary的地址-->
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>主机名1:50090</value>
    </property>
    <!--关闭权限-->
    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>
    

    对于replication数据副本的数量,在伪集群模式下,因为datanode只有一个,所以复制数量填1即可;
    关闭权限-一些非root用户在权限控制下无法提交文件到hdfs,便于学习,直接关闭

    2.3 Map-Reduce配置

    修改配置目录下mapred-site.xml文件(默认是template可自行创建)

    <!-- 指定mr运行在yarn上-->
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <!--历史服务器的地址-->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>主机名1:10020</value>
    </property>
    <!--历史服务器页面的地址-->
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>主机名1:19888</value>
    </property>
    

    该配置文件指定mr的获取任务的方式通过yarn调度

    2.4 配置env脚本

    Hadoop的脚本hadoop-env.sh、yarn-env.sh、mapred-env.sh中,都有使用到JAVA_HOME环境变量,但是很容易出现找不到的情况,因此要手动在其中添加配置

    export JAVA_HOME=/opt/jdk1.8.11_201 # jdk安装目录
    

    3. 启动测试

    3.1 执行格式化

    初次启动hdfs前,需要对nameNode进行格式化

    hdfs namenode -format
    

    为什么要格式化?

    NameNode用来管理HDFS的命名空间元数据,同时加入了操作日志,初始启动时,需要添加执行格式化初始化这些操作

    格式化执行了哪些操作?

    格式化时会清空tmp目录下dfs目录中的所有文件,并重新创建新的目录信息

    3.2 启动集群

    # 启动NameNode主节点
    sbin/start-dfs.sh
    # 启动yarn
    sbin/start-yarn.sh
    

    完全启动后看到一下5个进程


    进程列表

    hdfs web控制台:http://host:50070

    hdfs界面

    yarn web控制台:http://host:8088

    yarn界面

    3.3 文件系统测试

    使用指令

    hadoop fs -ls / # 查看hdfs系统根目录
    hadoop fs -mkdir /root # 创建root目录
    hadoop fs -put test.txt /root # 上传文件
    

    可以实现上传并查看文件,也可以通过web控制台查看


    上传的txt文件

    可以看到,hdfs中一个块的大小默认128M(理论最佳值,可配置),但文件实际大小只有35B。

    “块”相当于一个袋子,容量最大128M,一个袋子只放一个文件。把文件放进去,不充满也不会重复使用。新的文件放在新的袋子里。
    进入hdfs的文件目录,也可以看到块文件和meta文件

    /opt/hadoop-2.8.4/data/tmp/dfs/data/current/BP-1797775247-192.168.56.101-1561479286518/current/finalized/subdir0/subdir0
    

    4. 对于HDFS的目录说明

    在core-site.xml中配置的hadoop.tmp.dir路径/dfs即为hdfs的根路径,其结构分为data、name、nameSecondary

    /opt/hadoop-2.8.4/data/tmp/dfs
    
    • data目录是datanode创建,存放数据块和meta验证文件(验证数据完整性)


      block数据块
    • name目录是namenode创建,保存操作记录(edits),系统原属记录(fsimage)等


      namenode元数据
    • nameSecondary目录是secondarynamenode创建

    相关文章

      网友评论

        本文标题:【Mac大数据开发】第四篇-Hadoop安装和配置(伪分布式集群

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