您的位置:首页 > 运维架构 > Linux

linux下安装hadoop分布式文件系统hdfs

2017-09-10 14:35 429 查看
一、环境准备

服务器四台:node5
:192.168.13.135

        node6:192.168.13.136

                              node7:192.168.13.137

                            node8:192.168.13.138

二、基本介绍

1. 分布式存储系统HDFS (Hadoop Distributed File System )
• 分布式存储系统
• 提供了 高可靠性、高扩展性和高吞吐率的数据存储服务

2.HDFS优点:
– 高容错性
• 数据自动保存多个副本
• 副本丢失后,自动恢复
– 适合批处理
• 移动计算而非数据
• 数据位置暴露给计算框架
– 适合大数据处理
• GB 、TB 、甚至PB 级数据
• 百万规模以上的文件数量
• 10K+ 节点
– 可构建在廉价机器上
• 通过多副本提高可靠性
• 提供了容错和恢复 机制

  3.HDFS缺点:
– 低延迟数据访问
• 比如毫秒级
• 低延迟与高吞吐率
– 小文件存取
• 占用NameNode 大量内存
• 寻道时间超过读取时间
– 并发写入、文件随机修改
• 一个文件只能有一个写者
• 仅支持append

4.HDFS的架构

5.HDFS设计思想

三、节点介绍

1. NameNode(NN)
– NameNode主要功能:接受客户端的读写服务
– NameNode保存metadate信息包括
• 文件owership和permissions
• 文件包含哪些块
• Block保存在哪个DataNode(由DataNode启动时上报)
– NameNode的metadate信息在启动后会加载到内存
• metadata存储到磁盘文件名为”fsimage”
• Block的位置信息不会保存到fsimage
• edits记录对metadata的操作日志

2.SecondaryNameNode(SNN)

它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并editslog,减少NN启动时间。

– SNN执行合并时机

• 根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒

• 根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB  DataNode(DN)

– 存储数据(Block)

– 启动DN线程的时候会向NN汇报block信息

– 通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN

3. DataNode(DN)
– 存储数据(Block)
– 启动DN线程的时候会向NN汇报block信息
– 通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block
到其它DN

四、安装搭建

1.安装集群前,先统一各服务器时间和检查jdk
date
2.设置各服务器免密码登录本服务器(以node5为例)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa      //生成秘钥
会在家目录(~)下生成两个秘钥文件   cd  ~/.ssh/   
Id_dsa私钥(自己用)    id_dsa.pub(别人用)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys   //设置本机上免密码登录
此时本机输入ssh node5 发现可以免密码登录    exit(退出)
3.配置各服务器免密码登录另一台服务器(以node5免密码登录node7为例)
1)拷贝node5的公钥至node7(任意目录下)
      scp ~/.ssh/id_dsa.pub root@node7:/opt
2)在node7中把node5的公钥追加到本机的认证文件中
      cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys 
3)在node5中免秘钥登录node7
      ssh node7
注:虽然node7不设置免密码登录本服务器没影响
4.配置node5为namenode,node6为secondary namenode,node6 ,7, 8为datanode
1)将hadoop-2.5.1_x64.tar.gz拷贝至linux下home目录
      tar -zxvf hadoop-2.5.1_x64.tar.gz
2)修改配置文件
A)vi /home/hadoop-2.5.1/etc/hadoop/hadoop-env.sh
      修改为export JAVA_HOME=/usr/java/jdk1.7.0_79(jdk地址)
B)vi /home/hadoop-2.5.1/etc/hadoop/core-site.xml

<configuration>

    <property>

        //配置namenode主机和端口

        <name>fs.defaultFS</name>

        <value>hdfs://node5:9000</value>  //数据上传和下载的端口,不能通过浏览器访问(不是http和https端口协
                        //议,是RPC协议端口)

    </property>

    <property>

    //配置hadoop的临时文件目录以及fsimage文件目录,不能放在temp下

     <name>hadoop.tmp.dir</name>

     <value>/opt/hadoop-2.5</value>

    </property>

</configuration>

C)vi /home/hadoop-2.5.1/etc/hadoop/hdfs-site.xml
配置secondary namenode主机名和端口(可以通过浏览器访问)

<configuration>

     <property>

         <name>dfs.namenode.http-address</name>

         <value>node5:50070</value>

     </property>

     <property>

         <name>dfs.namenode.secondary.https-address</name>

         <value>node5:50090</value>

     </property>

 </configuration>
D)vi /home/hadoop-2.5.1/etc/hadoop/slaves
配置datanode的主机名(大于等于三台,这里以三台为例)
node6
node7
node8
E)vi /home/hadoop-2.5.1/etc/hadoop/masters(这个文件原本是没有的)
node5(只需输入这个,为namenode主机)
F)配置hadoop的环境变量
vi ~/.bash_profile
export HADOOP_HOME=/home/hadoop-2.5.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3)格式化hdfs,只能在namenode主机(node5)上执行
hdfs namenode -format
4)启动hdfs(在namenode上启动,已经配置免密码登录了)
start-dfs.sh   (stop-dfs.sh为关闭)
5)在浏览器登录查看
       
192.168.13.135:50070       //50070为namenode的http监控的端口
       
192.168.13.135:50090       //secondary namenode的监控端口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: