搭建部署Hadoop 之 HDFS

HDFS  Hadoop 分布式文件系统

分布式文件系统

分布式文件系统可以有效解决数据的存储和管理难题

– 将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统

– 众多的节点组成一个文件系统网络

– 每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输

– 人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据

HDFS 角色及概念

? 是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,用于在低成本的通用硬件上运行。

? 角色和概念

– Client

– Namenode

– Secondarynode

– Datanode

? NameNode

– Master节点,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理所有客户端请求。

? Secondary NameNode

– 定期合并 fsimage 和fsedits,推送给NameNode

– 紧急情况下,可辅助恢复NameNode,

? 但Secondary NameNode并非NameNode的热备。

? DataNode

– 数据存储节点,存储实际的数据

– 汇报存储信息给NameNode。

? Client

– 切分文件

– 访问HDFS

– 与NameNode交互,获取文件位置信息

– 与DataNode交互,读取和写入数据。

? Block

– 每块缺省64MB大小

– 每块可以多个副本

搭建部署 HDFS 分布式文件系统

实验环境准备:

# vim /etc/hosts

.. ..

192.168.4.1master

192.168.4.2node1

192.168.4.3node2

192.168.4.4node3

# sed -ri  "/Host */aStrictHostKeyChecking no" /etc/ssh/ssh_config

# ssh-keygen

# for i in {1..4}

> do

> ssh-copy-id 192.168.4.${i}

> done

# for i in {1..4}        //同步本地域名

> do

> rsync -a /etc/hosts 192.168.4.${i}:/etc/hosts

> done

# rm -rf /etc/yum.repos.d/*

# vim /etc/yum.repos.d/yum.repo   //配置网络yum

[yum]

name=yum

baseurl=http://192.168.4.254/rhel7

gpgcheck=0

# for i in {2..4}

> do

> ssh 192.168.4.${i} "rm -rf /etc/yum.repos.d/*"

> rsync -a /etc/yum.repos.d/yum.repo 192.168.4.${i}:/etc/yum.repos.d/

> done

# for i in {1..4}

> do

> ssh 192.168.4.${i} 'sed -ri "s/^(SELINUX=).*/\1disabled/" /etc/selinux/config ; yum -y remove firewalld'

> done

//所有机器重启

搭建完全分布式

系统规划:

主机                                            角色                                                            软件

192.168.4.1    master             NameNode  SecondaryNameNode        HDFS

192.168.4.2     node1             DataNode                                                    HDFS

192.168.4.3     node2             DataNode                                                    HDFS

192.168.4.4     node3             DataNode                                                    HDFS

在所有系统上安装java 环境和调试工具jtarps

# for i in {1..4}

> do

> ssh 192.168.4.${i} "yum -y install java-1.8.0-openjdk-devel.x86_64"

> done

# which java

/usr/bin/java

# readlink -f /usr/bin/java

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/bin/java

安装 hadoop

# tar -xf hadoop-2.7.3.tar.gz

# mv hadoop-2.7.3 /usr/local/hadoop

修改配置

# cd /usr/local/hadoop/

# sed -ri "s;(export JAVA_HOME=).*;\1/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre;" etc/hadoop/hadoop-env.sh

# sed -ri "s;(export HADOOP_CONF_DIR=).*;\1/usr/local/hadoop/etc/hadoop;" etc/hadoop/hadoop-env.sh

# sed -n "25p;33p" etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

//配置参数说明 网站http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-common/core-default.xml

# vim etc/hadoop/core-site.xml

.. ..

<configuration>

<property>

<name>fs.defaultFS</name>                    //默认的文件系统

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>                //所有程序存放位置 hadoop根目录

<value>/var/hadoop</value>

</property>

</configuration>

//所有机器上创建 根目录

# for i in {1..4}

> do

> ssh 192.168.4.${i} "mkdir /var/hadoop"

> done

//配置参数说明 网站http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

# vim etc/hadoop/hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.http-address</name>        //配置namenode 地址

<value>master:50070</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>        //配置 secondarynamenode 地址

<value>master:50090</value>

</property>

<property>

<name>dfs.replication</name>                //配置数据存储几份

<value>2</value>

</property>

</configuration>

# vim etc/hadoop/slaves         //配置去那些主机上寻找 DataNode

node1

node2

node3

配置完成以后,把 hadoop 的文件夹拷贝到所有机器

# for i in {2..4}

> do

> rsync -azSH --delete /usr/local/hadoop 192.168.4.${i}:/usr/local/ -e "ssh"

> done

//在 NameNode 下执行格式化 Hadoop

# ./bin/hdfs namenode -format

看见 successfully formatted.   说明 格式化成功了

//在没有报错的情况下 启动集群

# ./sbin/start-dfs.sh

启动以后分别在 namenode 和 datanode执行命令

# for i in master node{1..3}

> do

> echo $i

> ssh ${i} "jps"

> done

master

4562 SecondaryNameNode

4827 NameNode

5149 Jps

node1

3959 DataNode

4105 Jps

node2

3957 Jps

3803 DataNode

node3

3956 Jps

3803 DataNode

# ./bin/hdfs dfsadmin -report                //查看注册成功的节点

Configured Capacity: 160982630400 (149.93 GB)

Present Capacity: 150644051968 (140.30 GB)

DFS Remaining: 150644039680 (140.30 GB)

DFS Used: 12288 (12 KB)

DFS Used%: 0.00%

Under replicated blocks: 0

Blocks with corrupt replicas: 0

Missing blocks: 0

Missing blocks (with replication factor 1): 0

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

Live datanodes (3):

Name: 192.168.4.2:50010 (node1)

Hostname: node1

Decommission Status : Normal

Configured Capacity: 53660876800 (49.98 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 3446755328 (3.21 GB)

DFS Remaining: 50214117376 (46.77 GB)

DFS Used%: 0.00%

DFS Remaining%: 93.58%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact: Mon Jan 29 21:17:39 EST 2018

Name: 192.168.4.4:50010 (node3)

Hostname: node3

Decommission Status : Normal

Configured Capacity: 53660876800 (49.98 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 3445944320 (3.21 GB)

DFS Remaining: 50214928384 (46.77 GB)

DFS Used%: 0.00%

DFS Remaining%: 93.58%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact: Mon Jan 29 21:17:39 EST 2018

Name: 192.168.4.3:50010 (node2)

Hostname: node2

Decommission Status : Normal

Configured Capacity: 53660876800 (49.98 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 3445878784 (3.21 GB)

DFS Remaining: 50214993920 (46.77 GB)

DFS Used%: 0.00%

DFS Remaining%: 93.58%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact: Mon Jan 29 21:17:39 EST 2018

HDFS 基本使用

HDFS 基本命令 几乎和shell命令相同

# ./bin/hadoop fs -ls hdfs://master:9000/

# ./bin/hadoop fs -mkdir /test

# ./bin/hadoop fs -ls /

Found 1 items

drwxr-xr-x   - root supergroup          0 2018-01-29 21:35 /test

# ./bin/hadoop fs -rmdir /test

# ./bin/hadoop fs -mkdir /input

# ./bin/hadoop fs -put *.txt /input                    //上传文件

# ./bin/hadoop fs -ls /input

Found 3 items

-rw-r--r--   2 root supergroup      84854 2018-01-29 21:37 /input/LICENSE.txt

-rw-r--r--   2 root supergroup      14978 2018-01-29 21:37 /input/NOTICE.txt

-rw-r--r--   2 root supergroup       1366 2018-01-29 21:37 /input/README.txt

# ./bin/hadoop fs -get /input/README.txt /root/            //下载文件

# ls /root/README.txt

/root/README.txt

原文地址:http://blog.51cto.com/13558754/2066708

时间: 2024-11-02 13:47:28

搭建部署Hadoop 之 HDFS的相关文章

搭建部署Hadoop 之Yarn

Yarn 集群资源管理系统 Yarn 角色及概念 ?Yarn 是 Hadoop 的一个通用的资源管理系统 ? Yarn 角色 – Resourcemanager – Nodemanager – ApplicationMaster – Container – Client ? ResourceManager – 处理客户端请求 – 启动 / 监控 ApplicationMaster – 监控 NodeManager – 资源分配与调度 ? NodeManager – 单个节点上的资源管理 – 处理

hadoop和hdfs环境搭建

参考链接:http://blog.csdn.net/zolalad/article/details/11470449 环境:ubuntu14.04 hadoop1.0.1 下面以3台机器为例,讲解安装过程 1) 准备3台机器,一台作为nameNode,命名为master,两台作为dataNode,命名为slave01, slave02.强调命名是为了方便管理,其实命名无所谓.如果已命名为其它名称,可通过编辑/etc/hostname进行更改. 2) 为所有主从节点配置静态ip,因为主从节点间需要

阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里云ECS服务器:master, slave1, slave2 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz ZooKeeper: zookeeper-3.4.14.tar.gz 1.2 各节点角色

Spark 1.0.0 横空出世 Spark on yarn 部署(hadoop 2.4)

就在昨天,北京时间5月30日20点多.Spark 1.0.0终于发布了:Spark 1.0.0 released 根据官网描述,Spark 1.0.0支持SQL编写:Spark SQL Programming Guide 个人觉得这个功能对Hive的市场的影响很小,但对Shark冲击很大,就像win7和winXP的关系,自相残杀嘛? 这么着急的发布1.x 版是商业行为还是货真价实的体现,让我们拭目以待吧~~~~ 本文是CSDN-撸大湿原创,如要转载请注明出处,谢谢:http://blog.csd

部署Hadoop高性能集群

部署Hadoop高性能集群 服务器概述 1)Hadoop是什么 Hadoop是Lucene创始人Doug Cutting,根据Google的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统,其中包含MapReduce程序,hdfs系统等. Hadoop包括两大核心,分布式存储系统和分布式计算系统. 2)分布式存储 为什么数据需要存储在分布式的系统中哪,难道单一的计算机存储不了吗,难道现在的几个TB的硬盘装不下这些数据吗?事实上,确实装不下.比如,很多的电信通话记彔就存储在很

Spark 1.0.0 部署Hadoop 2.2.0上

源码编译 我的测试环境: 系统:Centos 6.4 - 64位 Java:1.7.45 Scala:2.10.4 Hadoop:2.2.0 Spark 1.0.0 源码地址:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0.tgz 解压源码,在根去根目录下执行以下命令(sbt编译我没尝试) ./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz --with-hive 几个重要参数 --ha

搭建hadoop2.6.0 HDFS HA及YARN HA

最终结果:[[email protected] ~]$ jps12723 ResourceManager12995 Jps12513 NameNode12605 DFSZKFailoverController [[email protected] ~]$ jps12137 ResourceManager12233 Jps12009 DFSZKFailoverController11930 NameNode [[email protected] ~]$ jps12196 DataNode12322

阿里云ECS服务器部署HADOOP集群(五):Pig 安装

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz Pig: pig-0.17.0.tar.gz 2 Pig 下载 下载 pig-0.17.0.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为: /usr/local 将解压得到的目录改

阿里云ECS服务器部署HADOOP集群(四):Hive本地模式的安装

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 本地模式需要采用MySQL数据库存储数据. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz Hive:apache-hive-2.3.6-bin.tar.gz Mysql: Mysql 5.7 MySQL Connector-J:mysql-