文档章节

HDFS安装

Porco
 Porco
发布于 2014/11/23 22:48
字数 1289
阅读 21
收藏 0
点赞 0
评论 0

1.系统环境

  1. 安装java(大于1.6版本)

  2. 安装ssh和rsync,并且启动ssh服务

  3. 下载hadoop包,用编译后的包,地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/

    

环境说明:

  1. Linux发行版:centos6.5(64位,hadoop新版的只提供了64位包)

  2. Hadoop版本:2.5.1

  3. Java版本:1.7.0.67

  4. 设置了3个虚拟机,host为namenode(192.168.59.103),datanode1(192.168.59.104)和datanode2(192.168.59.105)

2.配置SSH

    1.生成ssh key(namenode机器和datanode机器都是需要进行下面配置)

  1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    $ chmod 644 authorized_keys #该步骤在centos需要,在ubuntu是可以不用的

    2.通过下面命令,如果可以直接登陆,说明免密码登录已经设置成功。

  1. $ ssh localhost

    3.在2台datanode机器同样生成自动登陆的ssh key,并将namenode的id_dsa.pub到datanode1和datanode2的.ssh的目录下面

  1. # 在namenode的机器,根目录下面的.ssh
    $ scp id_dsa.pub hadoop@datanode1:~/.ssh/id_dsa.pub.namenode
    $ scp id_dsa.pub hadoop@datanode2:~/.ssh/id_dsa.pub.namenode
    # 在datanode1和datanode2的.ssh目录下面
    $ cat id_dsa.pub.namenode >> authorized_keys

    4.验证是否能通过ssh无密码登录到dataname1和datanode2,出现标红的说明配置成功。

  1. [hadoop@namenode .ssh]$ ssh datanode1
    Last login: Sun Nov 30 11:03:52 2014 from 192.168.59.103
    [hadoop@datanode1 ~]$ exit
    logout
    Connection to datanode1 closed.
    [hadoop@namenode .ssh]$ ssh datanode2
    Last login: Sun Nov 30 11:03:15 2014 from localhost.localdomain
    [hadoop@datanode2 ~]$ exit
    logout
    Connection to datanode2 closed.


3.配置基础环境变量

     分别在namenode,datanode1和datanode2根目录下面的.bash_profile配置下面内容:

  1. # java环境变量
    export JAVA_HOME=/home/hadoop/local/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    # hadoop环境变量
    export HADOOP_DEV_HOME=/home/hadoop/local/hadoop
    export PATH=$PATH:$HADOOP_DEV_HOME/bin
    export PATH=$PATH:$HADOOP_DEV_HOME/sbin
    export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
    export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
    export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
    export YARN_HOME=${HADOOP_DEV_HOME}
    export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    配置完成之后,需要重新登陆来加载环境变量(或者通过source ~/.bash_profile);通过下面的命令可以查看环境变量是否配置正常。

  1. [hadoop@namenode ~]$ java -version
    java version "1.7.0_67"
    Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
    [hadoop@namenode ~]$ hadoop
    Usage: hadoop [--config confdir] COMMAND
    where COMMAND is one of:
    fs run a generic filesystem user client
    version print the version
    jar <jar> run a jar file
    checknative [-a|-h] check native hadoop and compression libraries availability
    distcp <srcurl> <desturl> copy file or directories recursively
    archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
    classpath prints the class path needed to get the
    Hadoop jar and the required libraries
    daemonlog get/set the log level for each daemon
    or
    CLASSNAME run the class named CLASSNAME
    Most commands print help when invoked w/o parameters.

4.配置hadoop

  在namenode配置完成之后直接scp到其他datanode即可,这样可以保证机器配置的一致性。

  1. $ cd ~/local/hadoop/etc/hadoop

   所有的配置文件都在这里。

   打开hadoop-env.sh,配置jdk环境变量:

  1. # 将export JAVA_HOME=${JAVA_HOME}替换为
    export JAVA_HOME=/home/hadoop/local/jdk

    配置yarn-env.sh:

  1. # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 去掉注释,并且替换为下面内容
    export JAVA_HOME=/home/hadoop/local/jdk

    配置slave文件(hdfs的datanode机器配置):

  1. [hadoop@namenode hadoop]$ cat slaves
    namenode
    datanode1
    datanode2

    配置core-site.xml(hadoop的核心策略配置文件)

  1. [hadoop@namenode hadoop]$ cat core-site.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://namenode:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
    </property>
    </configuration>

    配置hdfs-site.xml(hdfs的策略配置文件):

  1. <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>namenode:9001</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/hadoop/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>  
            <value>file:/home/hadoop/hadoop/data</value>
    </property>  
        <property>
    <name>dfs.replication</name>  
            <value>2</value>
    <description>storage copy number</description>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>

到此,整个hdfs的分布式文件系统就配置完成,把上面的hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml同步到datanode的机器上面。

5.启动服务

通过下面命令进行操作

  1. [hadoop@namenode hadoop]$ cd /home/hadoop/local/hadoop
    [hadoop@namenode hadoop]$ bin/hdfs namenode -format
    [hadoop@namenode hadoop]$ sbin/start-dfs.sh

第二个命令是为格式化整个hdfs的namenode节点,格式化之后会在配置的hadoop的name下面出现下面目录结构

  1. [hadoop@namenode hadoop]$ tree name
    name
    ├── current
    │   ├── edits_inprogress_0000000000000000001
    │   ├── fsimage_0000000000000000000
    │   ├── fsimage_0000000000000000000.md5
    │   ├── seen_txid
    │   └── VERSION
    └── in_use.lock

在这个目录中,有2个重要的文件:fsimage和edits。

    其中fsimage镜像文件包含了整个HDFS文件系统的所有目录和文件的indoe信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组等)等。

    另外,edit文件主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到edit文件中。

启动dfs之后,从我们配置的data目录可以看见下面目录结果

[hadoop@namenode hadoop]$ tree data
data
├── current
│   ├── BP-441758184-192.168.59.103-1417330891399
│   │   ├── current
│   │   │   ├── finalized
│   │   │   ├── rbw
│   │   │   └── VERSION
│   │   ├── dncp_block_verification.log.curr
│   │   └── tmp
│   └── VERSION
└── in_use.lock

执行put命令之后,可以看到一个文件在data中是如何存储的。如下:

  1. $ hadoop fs -put etc/hadoop/core-site.xml /data/input
    [hadoop@namenode hadoop]$ tree data
    data
    ├── current
    │   ├── BP-441758184-192.168.59.103-1417330891399
    │   │   ├── current
    │   │   │   ├── finalized
    │   │   │   │   ├── blk_1073741827
    │   │   │   │   └── blk_1073741827_1003.meta
    │   │   │   ├── rbw
    │   │   │   │   ├── blk_1073741825
    │   │   │   │   ├── blk_1073741825_1001.meta
    │   │   │   │   ├── blk_1073741826
    │   │   │   │   └── blk_1073741826_1002.meta
    │   │   │   └── VERSION
    │   │   ├── dncp_block_verification.log.curr
    │   │   ├── dncp_block_verification.log.prev
    │   │   └── tmp
    │   └── VERSION
    └── in_use.lock

Finalized:完成状态

Rbw(Replica Being Written to): 等待写入状态

    


© 著作权归作者所有

共有 人打赏支持
Porco
粉丝 3
博文 2
码字总数 1680
作品 0
广州
程序员
Ranger-Hdfs插件安装

Ranger-Hdfs插件ranger-0.6.0-hdfs-plugin安装到Hdfs的所有NameNode节点, 其他的DataNode节点不需要安装。 1. 登陆hdfs安装的用户,hdfs/zdh1234(用户组hadoop),获取安装包解压安装 tar –z...

木木与呆呆
04/26
0
0
Hadoop集群(二) HDFS搭建

HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的。所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始。 安装Hadoop集群,首先需要有Zookeeper才可以完成安...

hsbxxl
2017/10/11
0
0
第 4 章 Hypertable

目录 4.1. Hypertable 安装 4.2. Code examples 4.3. HQL 4.4. FAQ http://hypertable.org/ 单机:安装于单机,采用本地文件系统 Hadoop:分布式安装,使用Hadoop(HDFS)作为存储 MapR:分布式...

玄学酱
01/05
0
0
第 37 章 Hypertable

目录 37.1. Hypertable 安装 37.2. Code examples 37.3. HQL 37.4. FAQ http://hypertable.org/ 单机:安装于单机,采用本地文件系统 Hadoop:分布式安装,使用Hadoop(HDFS)作为存储 MapR:分...

玄学酱
01/04
0
0
将Elasticsearch的快照备份到HDFS

1、安装Elasticsearch插件repository-hdfs 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-hdfs/repository-hdfs-6.2.3.zip 将zip包放在/usr/local下 ......

缤纷世界wb
03/21
0
0
八步教你在笔记本电脑创建Hadoop本地实例!

  【IT168 评论】要想进入大数据领域,Hadoop是一件非常重要的事情,它具有复杂的安装过程,大量的集群,数百台机器以及TB(或者PB)级别的数据等。但实际上,用户可以下载简单的JAR并在个人...

it168网站
05/25
0
0
hadoop安装配置

一、安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:192.168.1.100 主机名:admin 安装用户:root 二、安装JDK 安装JDK1.7或者以上版本。这里安装jdk1.7.079。 下载地址:http://www....

shangshanyang
2017/07/08
0
0
Hadoop 在Centos7上的伪分布式搭建

安装 SSH 客户端 安装SSH: 安装完成后,可以使用下面命令进行测试: 输入root账户的密码,如果可以正常登录,则说明SSH安装没有问题。测试正常后使用exit命令退出ssh。 安装 JAVA 环境 安装...

Menzel3
2017/11/03
0
0
Hadoop集群(三) Hbase搭建

前面已经完成Zookeeper和HDFS的安装,本文会详细介绍Hbase的安装步骤。以及安装过程中遇到问题的汇总。 系列文章: Hadoop集群(一) Zookeeper搭建 Hadoop集群(二) HDFS搭建 Hadoop集群(四) H...

hsbxxl
2017/10/11
0
0
HAWQ技术解析(九) —— 外部数据

HAWQ不但可以读写自身系统中的表,而且能够访问HDFS、Hive、HBase等外部系统的数据。这是通过一个名为PXF的扩展框架实现的。大部分外部数据是以HAWQ外部表的形式进行访问的,但对于Hive,除外...

wzy0623
2017/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
3
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部