zoukankan      html  css  js  c++  java
  • 【转】Hadoop HDFS分布式环境搭建

    原文地址  http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html

    Hadoop HDFS分布式环境搭建

    最近选择给大家介绍Hadoop HDFS系统,因此研究了一下如何在Linux 下配置一个HDFS Clust。小记一下,以备将来进一步研究和记忆。

    HDFS简介

    全称 Hadoop Distributed File System, Hadoop分布式文件系统。 根据Google的GFS论文,由Doug Cutting使用JAVA开发的开源项目。HDFS是Hadoop项目的一部分。为Hadoop提供底层的数据存储,满足上次各种实际应用使用(如Map/Reduce)。HDFS是典型的的Master/Slave集群架构,由一个NameNode和多个DateNode组成,NameName只能有一个,扮演Master角色,负责对具体的存储块的元数据进行保存,比如控制某个存储块具体保存在哪个DataNode上;DataNode可以为多个,扮演着Slave的角色,负责对具体的存储块进行保存,一个相同的存储块根据配置可以保存到多个DataNode上,以保持数据的高可用性。

    环境介绍

    三台主机,一台NameNode, 2台DataNode

    Role

    IP

    Host

    Type

    Version

    NameNode

    10.34.64.222

    NC-VM-PL-DEV-26

    Master

    CentOS 6.4

    DataNode

    10.34.64.223

    NC-VM-PL-DEV-27

    Slave

    CentOS 6.4

    DataNode

    10.34.64.224

    NC-VM-PL-DEV-28

    Slave

    CentOS 6.4

    配置流程

    原则:三台机器的配置保持一致就可以,下面具体描述NameNode主机的过程

    1.       安装JDK1.6 (略)

    2.       创建HDFS账号,最好这样,便于管理

    [root@NC-VM-PL-DEV-26 ~]# useradd hdfs

    [root@NC-VM-PL-DEV-26 ~]# passwd hdfs

    3.       配置免密码的SSH访问机制

    通常Centos系统都默认安装SSH, 如果没有安装,请单独安装,yum install ssh

    a)         切换至hdfs登录.

    b)         [hdfs@NC-VM-PL-DEV-26 ~]$ cd ~

    c)         [hdfs@NC-VM-PL-DEV-26 ~]$ ls -a

    d)         [hdfs@NC-VM-PL-DEV-26 ~]$ cd .ssh

    e)         [hdfs@NC-VM-PL-DEV-26 ~]$ ssh-keygen –t rsa

    f)          [hdfs@NC-VM-PL-DEV-26 ~]$ cat id_rsa.pub > authorized_keys

    g)         至此可以测试一下ssh 本机IP是否需要密码,如果成功,说明本机配置成功。

    h)         然后将authorized_keys文件复制到所有DataNode节点,[hdfs@NC-VM-PL-DEV-26 ~]$ scp authorized_keys hdfs@10.34.64.223:/home/hdfs/.ssh

    i)           给另一个DataNode节点相同的操作,至此免密码登录配置完毕,可以通过本机ssh 各个节点IP来测试是否需要密码登录

    4.       下载Hadoop软件包,官方下载地址

    a)        http://mirrors.cnnic.cn/apache/hadoop/common/stable/

    b)        http://hadoop.apache.org/releases.html#Download

    切换至hdfs账号,解压至/home/hdfs/hadoop

    [hdfs@NC-VM-PL-DEV-26 ~]$ tar zxf hadoop-2.2.0.tar.gz

    [hdfs@NC-VM-PL-DEV-26 ~]$ mv hadoop-2.2.0  hadoop

    5.       配置环境变量

    a)         [hdfs@NC-VM-PL-DEV-26 ~]$ vim ~/.bash_profile

    b)         HADOOP_HOME=/home/hdfs/hadoop

    export HADOOP_HOME

    export  JRE_HOME=$JAVA_HOME/jre

    export  CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    export  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HADOOP_HOME/bin

    6.       在NameNode上修改hadoop配置文件

    主要修改/home/hdfs/hadoop/etc/hadoop/目录下的配置文件

    Hadoop-env.sh:         Hadoop环境变量设置

    Core-site.xml:            NameNode  IP和端口设置

    Hdfs-site.xml:            HDFS数据块副本等参数设置

    Mapred-site.xml:      MapReduce 完成JobTracker  IP和端口设置

    Slaves:                          完成datanode节点IP设置

    6.1 配置core-site.xml

        fs.default.name

        hdfs://10.34.64.222:9000/

    6.2 配置 hdfs-site.xml

         dfs.name.dir

         /home/hdfs/hadoop-2.2.0/data/dfs.name.dir

         dfs.data.dir

         /home/hdfs/hadoop-2.2.0/data/dfs.data.dir

         dfs.permissions

         false

        dfs.replication

        2

    6.3 配置 mapred-site.xml

         mapred.job.tracker

         Master:9001

    6.4 配置 hadoop-env.sh

               将JAVA_HOME的值修改为真实有效的地址,如果不知道,请执行echo $JAVA_HOME 查看。export JAVA_HOME=/usr/java/jdk1.6.0_27

    6.5 配置 slaves

    NC-VM-PL-DEV-27

    NC-VM-PL-DEV-28

    7.       复制hadoop系统到所有DataNode节点

    将主NameNode节点安装好的Hadoop系统目录复制到每一个从DataNode节点上.

    [hdfs@NC-VM-PL-DEV-26 hadoop]$ scp –r /home/hdfs/hadoop 10.34.64.223: /home/hdfs/hadoop

    [hdfs@NC-VM-PL-DEV-26 hadoop]$ scp –r /home/hdfs/hadoop 10.34.64.224: /home/hdfs/hadoop

    8.       在每一个主机上修改Hosts文件,以便于主机名和IP地址解析

    修改每台机器上的/etc/hosts文件

    a)         如果是NameNode,需要在hosts文件中添加集群中所有节点的IP地址及对应的主机名。示例:

    10.34.64.224 NC-VM-PL-DEV-28

    10.34.64.223 NC-VM-PL-DEV-27

    10.34.64.222 NC-VM-PL-DEV-26

    b) 如果是DataNode,只需要在文件中添加本机和NameNode的Ip地址和主机名。

    为了方便都填上也挺好。

    9.       格式化NameNode

    执行如下命令做格式化操作,每次如果有修改conf,最好做一次格式化命令

    [hdfs@NC-VM-PL-DEV-26 ~]$ hadoop namenode –format

             如果格式化成功,会返回一堆有关NameNode的启动信息,其中会有一句“…. has been successfully formatted.”

    10.   启动HDFS

    [hdfs@NC-VM-PL-DEV-26 ~]$./home/hdfs/hadoop/bin/start-dfs.sh

    如果启动遇到问题,请对NameNode或DataNode的日志进行查看,路径为/home/hdfs/hadoop/logs,看看是否有Exception抛出。

    11.   简单对HDFS进行试用

    [hdfs@NC-VM-PL-DEV-26 ~]$ hadoop fs –mkdir /newdir

    [hdfs@NC-VM-PL-DEV-26 ~]$ hadoop fs –ls

    用jps命令检查一下是否正常启动:

    [hdfs@NC-VM-PL-DEV-26 ~]$ jps

    9193 SecondaryNameNode

    8914 NameNode

    9615 Jps

             查看集群状态

             [hdfs@NC-VM-PL-DEV-26 ~]$ hadoop dfsadmin -report

    DEPRECATED: Use of this script to execute hdfs command is deprecated.

    Instead use the hdfs command for it.

    13/12/04 15:46:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    Configured Capacity: 0 (0 B)

    Present Capacity: 0 (0 B)

    DFS Remaining: 0 (0 B)

    DFS Used: 0 (0 B)

    DFS Used%: NaN%

    Under replicated blocks: 0

    Blocks with corrupt replicas: 0

    Missing blocks: 0

    -------------------------------------------------

    Datanodes available: 0 (0 total, 0 dead)

    浏览器方式:在WEB页面下查看Hadoop工作情况

    输入部署Hadoop服务器的IPhttp://IP:50070http://IP:50030.

  • 相关阅读:
    开启和禁用Wifi热点命令
    C# IE代理操作
    Asp.net QueryString批量插入和更新
    Asp.net 插入或更改查询字符串
    C#如何判断线程池中所有的线程是否已经完成之Demo
    mysql 安装及设置密码
    c# iis回收应用程序池
    判断是否为移动端
    rtmp,m3u8 直播地址
    byte数组转换为字符串
  • 原文地址:https://www.cnblogs.com/lyqf365/p/4572702.html
Copyright © 2011-2022 走看看