• Hadoop环境安装(三)基于伪分布式系统的Hadoop配置


    Hadoop是基于分布式的系统应用,但很多时候我们只是进行简单的测试,没有必要做集群。所谓的伪分布式本质上就是进行单机版的Hadoop配置。

    1.在Hadoop中不允许IP地址变更,所以要保证从项目的开发到运行结束状态,都要求IP地址是同一个,如果变更了就要重头来过

    (编辑-虚拟网络编辑器)

    2.为了保证配置的方便,那么一定要为每台电脑设置主机名称

    #vim /etc/hostname

    将里面的localhost修改为hadoopm

    3.修改主机的映射配置

    在里面追加IP地址与hadoopm主机名称的映射

    #ifconfig

    #vim /etc/hosts

     

    4.为了使配置生效,我们重启系统,输入reboot

    5.在电脑上配置ssh免登陆处理

    在整个Hadoop的处理过程中,都是使用ssh实现通讯(就算在本机也一样)

    • 由于电脑上可能已经出现过SSH的相关配置,所以建议删除在根路径下的“.ssh”文件夹

      如图所示,并未存在已有配置,故不需要删除。

      如果存在ssh配置,则

      #rm -rf ~/.ssh

    • 在hadoop主机上生成ssh 

      # ssh-keygen -t rsa

      接下来所有出现的配置信息都使用默认的方式进行处理

    • 将公钥信息保存在授权认证的文件之中,“authorized_keys” 文件里面

      root@hadoopm:~# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

       那么以后就可以进行免登陆处理

    • 测试登录

      #ssh root@hadoopm

      登录之后变成了远程连接,那么此时可以使用exit退出当前连接

    6.实现Hadoop的相关配置,需要配置如下几个配置(/home/shawnee/local/hadoop/etc/hadoop)

    • 配置“core-site.xml”,确定Hadoop的核心信息,包括临时目录、访问地址
    • 配置“yarn-site.xml”,可以理解为配置相关job的处理
    • 配置“hdfs-site.xml”,可以确定文件的备份个数以及数据文件夹的路径

    7.配置“core-site.xml”文件

    <configuration>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/home/root/hadoop_tmp</value>
                    <description>Abase for other temporary directories.</description>
            </property>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://hadoopm:9000</value>
            </property>
    </configuration> 

    本文件配置的“hdfs://hadoopm:9000”信息,描述的是日后打开的页面管理器的路径
    本配置中最重要的:“/home/root/hadoop_tmp”配置的是临时文件信息,如果不配置,就会在hadoop的文件夹里生成“tmp”文件(“/home/shawnee/local/hadoop/tmp/”)
    如果这样配置,一旦重新启动,所有信息都会被清空,也就是说此时Hadoop的环境就失效了
    由于本次用的Hadoop2.x开发版本,一般而言默认端口是9000,如果是1.x开发版本,默认为8020

    为了保证整体的运行不出错,可以直接建立一个“/home/root/hadoop_tmp”

    #cd ~
    #mkdir hadoop_tmp
    

      

    8.修改“hdfs-site.xml”文件

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:///usr/local/hadoop/dfs/name</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:///usr/local/hadoop/dfs/data</value>
            </property>
            <property>
                    <name>dfs.namenode.http-address</name>
                    <value>hadoopm:50070</value>
            </property>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>hadoopm:50090</value>
            </property>
            <property>
                    <name>dfs.permissions</name>
                    <value>false</value>
            </property>
    </configuration>

    在以上的配置中有如下的意义:

    “dfs.replication”表示文件的副本数,一般情况下,一个文件会备份3份

    “dfs.namenode.name.dir”定义名称结点路径

    “dfs.datanode.data.dir”定义数据文件结点路径

    “dfs.namenode.http-address”名称服务的http路径访问

    “dfs.namenode.secondary.http-address”第二名称结点

    “dfs.permissions”权限认证问题,如果设置了,以后可能无法进行文件处理访问

    9.配置“yarn-site.xml”文件

    <configuration>
            <property>
                    <name>yarn.resourcemanager.admin.address</name>
                    <value>hadoopm:8033</value>
            </property>
            <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.resource-tracker.address</name>
                    <value>hadoopm:8025</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.scheduler.address</name>
                    <value>hadoopm:8030</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.address</name>
                    <value>hadoopm:8050</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.scheduler.address</name>
                    <value>hadoopm:8030</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.webapp.address</name>
                    <value>hadoopm:8088</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.webapp.https.address</name>
                    <value>hadoopm:8090</value>
            </property>
    </configuration>
    

      

    10.创建一个masters文件,里面写上主机名称

    由于Hadoop属于分布式开发环境,考虑到日后要进行集群的搭建

    建议在“/home/shawnee/local/hadoop/etc/hadoop/”目录中创建一个masters文件,里面写上主机名称,内容就是hadoopm(之前在hosts文件里面定义的主机名称)(如果是单机环境不写也可以,这里会写上)

    root@hadoopm:/home/shawnee/local/hadoop/etc/hadoop# vim masters

    11.修改从节点文件"slaves",增加hadoopm

    root@hadoopm:/home/shawnee/local/hadoop/etc/hadoop# vim slaves

    12.由于此时是将所有的namenode、datanode保存路径设置在hadoop目录中,如果为了保险起见,可以自己创建

    root@hadoopm:/home/shawnee/local/hadoop# mkdir dfs dfs/name dfs/data

    如果hadoop出现了问题之后并需要重新配置,请把这两个文件夹彻底清除

    13.格式化文件系统

    此处由于开始环境变量配置错误,所以添加了路径bin/,正常的命令为:#hdfs namenode -format

     root@hadoopm:/home/shawnee/local/hadoop# bin/hdfs namenode -format

    如果此时格式化正常,状态码返回0

    建议:只需要一次格式化,多次格式化会出错 
          如果出错需要删除 data/tmp 下的 dfs 目录

    14.随后可以使用最简单的处理,启动Hadoop:

    root@hadoopm:/home/shawnee/local/hadoop# start-all.sh

    15.随后可以使用JDK提供的jps命令查看,所有的java进程,如果输入之后返回如下内容:

     

    如果发现有这6个进程,那么表示配置成功

     16.随后可以进行测试,现在只能测试HDFS是否可以正常使用:

    可以直接使用ip地址访问:http://192.168.203.129:50070

    如果觉得ip地址比较麻烦,也可以使用hadoopm名称,那么需要修改hosts文件

    路径: C:WindowsSystem32driversetc ,追加如下内容:

    192.168.203.129 hadoopm

     访问控制台:(Utilities / Browse the file system)

     17.如果需要关闭服务,stop-all.sh命令即可

    root@hadoopm:/home/shawnee/local/hadoop# stop-all.sh

    参考博客:linux下jps command not found(可以了解报错命令找不到的基本处理方法)

  • 相关阅读:
    程序员版孔乙己
    痛!痛!痛!我们的好兄弟Git,一路走好!
    谈谈中台架构之交易中台
    一个单例还能写出花来吗?
    为什么数据库字段要使用NOT NULL?
    阿里二面:什么是mmap?
    退税不完全操作指南,我这样操作省了2000块!
    开源组件编排引擎LiteFlow发布里程碑版本2.5.0
    开源框架TLog核心原理架构解析
    对乱糟糟的日志说再见
  • 原文地址:https://www.cnblogs.com/exciting/p/9108914.html
Copyright © 2020-2023  润新知