HDFS

  1. HDFS安装
  2. HDFS架构

HDFS安装

  • 下载jdk和hadoop放到/software目录下,然后解压到/app目录下
1
tar -zxvf 压缩包名字 -C ~/app/
  • 配置环境变量
1
2
3
4
5
6
7
8
vim ~/.bash_profile
# 添加内容
export JAVA_HOME=/root/bigdata/jdk
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/root/bigdata/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
#保存后
source ~/.bash_profile
  • 进入解压后的Hadoop目录,修改配置文件

    • 配置文件的作用
      • core-site.xml:指定HDFS的访问方式
      • hdfs-site.xml:指定namenode和datanode的数据存储位置
      • mapred-site.xml:配置MapReduce
      • yarn-site.xml:配置yarn
    • 修改hadoop-env.sh
    1
    2
    3
    4
    cd ect/hadoop
    vim hadoop-env.sh
    #添加内容
    export_JAVA_HOME=/root/bigdata/jdk
    • 修改core-site.xml 在节点中添加
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/root/bigdata/hadoop/tmp</value>
    </property>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop-master:9000</value>
    </property>
    </configuration>
    • 修改hdfs-site.xml 在 configuration节点中添加
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/root/bigdata/hadoop/hdfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/bigdata/hadoop/hdfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    • 修改 mapred-site.xml
    • 默认没有这个 从模板文件复制
    1
    cp mapred-site.xml.template mapred-site.xml
    • 在mapred-site.xml 的configuration 节点中添加
    1
    2
    3
    4
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    • 修改yarn-site.xml configuration 节点中添加
    1
    2
    3
    4
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    • 来到hadoop的bin目录
    1
    ./hadoop namenode -format (这个命令只运行一次)
    • 启动hdfs 进入到 sbin
    1
    ./start-dfs.sh
    • 启动启动yarn 在sbin中

HDFS架构

  • 1个NameNode(Master)带DataNode(Slaves)结构
  • 1个文件会被拆分成多个Block
  • NameNode(NN)
    • 负责客户端请求的响应
    • 负责元数据(文件名称、副本系数、Block存放的DN)的管理
      • 元数据是文件的描述数据
    • 监控DataNode健康状况,10分钟没有收到DataNode报告认为DataNode死掉了
  • DataNode(ND)
    • 存储用户的文件对应的数据块(Block)
    • 定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况
  • 分布式集群NameNode和DataNode部署在不同机器上
  • img
  • HDFS优缺点
    • 优点
      • 数据冗余、硬件容错
      • 适合存储大文件
      • 处理流式数据
      • 可构建在廉价机器上
    • 缺点
      • 数据访问延时高
      • 不适合小文件存储

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zoubinbf@163.com

×

喜欢就点赞,疼爱就打赏