zoukankan      html  css  js  c++  java
  • 【Hadoop基础教程】3、Hadoop之伪分布式环境搭建(转)

    伪分布式模式即单节点集群模式,所有的守护进程都运行在同一台机器上。这种模式下增加了代码调试功能,可以查看内存、HDFS文件系统的输入/输出,以及与其他守护进程交互。以hadoop用户远程登录K-Master服务器,在单机模式安装的基础上,我们增加对core-site.xml、hdfs-site.xml、mapred-site.xml核心文件的配置步骤。

    开发环境


    硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 
    软件环境:Java 1.7.0_45、hadoop-1.2.1

    1、 配置Hadoop


    1)配置core-site.xml

    修改Hadoop核心配置文件/usr/hadoop/conf/core-site.xml,通过fs.default.name指定 NameNode 的 IP 地址和端口号,通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。

    [hadoop@K-Master hadoop] vi conf/core-site.xml
    <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://K-Master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/hadoop/tmp</value>
        </property>
    </configuration>

    特别注意:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。

    2)配置hdfs-site.xml

    修改HDFS核心配置文件/usr/hadoop/conf/hdfs-site.xml,通过dfs.replication指定HDFS的备份因子为1,通过dfs.name.dir指定namenode节点的文件存储目录,通过dfs.data.dir指定datanode节点的文件存储目录。

    [hadoop@K-Master hadoop] vi conf/hdfs-site.xml
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.name.dir</name>
            <value>/usr/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.data.dir</name>
            <value>/usr/hadoop/hdfs/data</value>
        </property>
    </configuration>

    3)配置mapred-site.xml

    修改MapReduce核心配置文件/usr/hadoop/conf/mapred-site.xml,通过mapred.job.tracker属性指定JobTracker的地址和端口。

    [hadoop@K-Master hadoop] vi conf/mapred-site.xml
    <configuration>
        <property>
            <name>mapred.job.tracker</name>
            <value>http://K-Master:9001</value>
        </property>
    </configuration>

    这里原作者应该是落了个配置项:hadoop-env.sh,不然会出现localhost: Error: JAVA_HOME is not set.

    在/hadoop-1.2.1/conf/文件夹里有个hadoop-env.sh的文件,它的作用是配置与hadoop运行环境相关的变量

    找到:

    # The java implementation to use. Required.
    # export JAVA_HOME=/usr/lib/jvm/java-6-sun

    将#号去掉,变为:

    改成你本机的jdk路径,执行完退出

     :wq

    2、 格式化HDFS文件系统


    格式化HDFS文件系统需要在namenode节点上通过hadoop用户执行,而且只需要执行一次,下次启动时不需要再格式化,直接启动HDFS文件管理系统和MapReduce服务即可。

    [hadoop@K-Master ~]$ hadoop namenode -format
    14/07/24 16:37:57 INFO namenode.NameNode: STARTUP_MSG: 
    /************************************************************
    STARTUP_MSG: Starting NameNode
    STARTUP_MSG:   host = K-Master/192.168.100.147
    STARTUP_MSG:   args = [-format]
    STARTUP_MSG:   version = 1.2.1
    STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
    STARTUP_MSG:   java = 1.7.0_65
    ********************a****************************************/
    14/07/24 16:37:57 INFO util.GSet: Computing capacity for map BlocksMap
    14/07/24 16:37:57 INFO util.GSet: VM type   = 64-bit
    14/07/24 16:37:57 INFO util.GSet: 2.0% max memory = 932184064
    14/07/24 16:37:57 INFO util.GSet: capacity  = 2^21 = 2097152 entries
    14/07/24 16:37:57 INFO util.GSet: recommended=2097152, actual=2097152
    14/07/24 16:37:58 INFO namenode.FSNamesystem: fsOwner=hadoop
    14/07/24 16:37:58 INFO namenode.FSNamesystem: supergroup=supergroup
    14/07/24 16:37:58 INFO namenode.FSNamesystem: isPermissionEnabled=true
    14/07/24 16:37:58 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
    14/07/24 16:37:58 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
    14/07/24 16:37:58 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
    14/07/24 16:37:58 INFO namenode.NameNode: Caching file names occuring more than 10 times 
    14/07/24 16:37:58 INFO common.Storage: Image file /usr/hadoop/hdfs/name/current/fsimage of size 112 bytes saved in 0 seconds.
    14/07/24 16:37:59 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/usr/hadoop/hdfs/name/current/edits
    14/07/24 16:37:59 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/usr/hadoop/hdfs/name/current/edits
    14/07/24 16:37:59 INFO common.Storage: Storage directory /usr/hadoop/hdfs/name has been successfully formatted.
    14/07/24 16:37:59 INFO namenode.NameNode: SHUTDOWN_MSG: 
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at K-Master/192.168.100.147
    ************************************************************/

    3、 启动HDFS文件管理系统


    1)通过start-dfs.sh命令启动HDFS文件管理系统,启动后通过如下日志信息可以看到在K-Master服务器上分别启动了namenode、datanode和secondarynamenode。

    [hadoop@K-Master ~]$ start-dfs.sh
    starting namenode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-namenode-K-Master.out
    K-Master: starting datanode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-datanode- K-Master.out
    K-Master: starting secondarynamenode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-K-Master.out

    2)在K-Master节点上查看启动进程

    若打印如下日志信息,表明K-Master服务器上启动了NameNode、SecondaryNameNode2、DataNode服务进程,即K-Master服务器上HDFS文件管理系统启动成功。

    [hadoop@K-Master ~]$ jps
    6164 Jps
    5971 NameNode
    6108 SecondaryNameNode
    1265 DataNode

    4、 启动MapReduce


    1)通过start-mapred.sh命令启动MapReduce分布式计算服务,启动后通过以下日志信息可以看到在K-Master服务器上启动了jobtracker、tasktracker进程。

    [hadoop@K-Master ~]$ start-mapred.sh
    starting jobtracker, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-K-Master.out
    K-Master: starting tasktracker, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-tasktracker- K-Master.out

    2)K-Master节点上查看启动进程

    若打印如下日志信息,表明K-Master服务器上新启动了JobTracker、TaskTracker服务进程,即K-Master服务器上MapReduce启动成功。

    [hadoop@K-Master ~]$ jps
    1342 NameNode
    1726 Jps
    1619 JobTracker
    1480 SecondaryNameNode
    1549 TaskTracker
    1265 DataNode

    完成上述4步,表明我们成功的完成了Hadoop伪分布式环境的部署,伪分布式模式也叫单节点集群模式,所有的守护进程都运行在同一台机器上,上述实验也证明了这一点,NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker所有的守护进程全部运行在K-Master节点之上。

  • 相关阅读:
    调度算法的评价指标
    进程调度的时机 切换与过程调度方式
    处理机调度 概念和层次
    线程概念 多线程模型
    进程通信
    进程的状态与转换
    进程的定义
    系统调用
    面试题3
    第2章Arduino UNO板结构说明
  • 原文地址:https://www.cnblogs.com/shamo89/p/9276937.html
Copyright © 2011-2022 走看看