zoukankan      html  css  js  c++  java
  • 10-hdfs-hdfs搭建

    hdfs的优缺点比较:  

     

    架构图解分析: 

    nameNode的主要任务: 

     SNameNode的功能: (不是NN的备份, 主要用来合并fsimage)

    合并流程: 

     dataNode的主要功能: 

     HDFS上传文件思想: 

     

    hdfs用于一般用于处理离线数据文件, 存储方式为block副本, 集群规划使用完全式分部安装

    一台作为NameNode, 3台为DataNode, 其中hdfs-dnn1 为SecondNameNode: 

    NameNode: 192.168.208.106 wenbronk.hdfs.com
    DataNode: 192.168.208.107 hdfs-dnn1
    DataNode: 192.168.208.108 hdfs-dnn2
    DataNode: 192.168.208.109 hdfs-dnn3

    1, 为了方便NameNode直接启动DataNode, 不输入密码, 使用ssh的免密登录

    注意: 1. .ssh目录权限必须是700

       2 . .ssh/authorized_keys 文件权限必须是600

    (nameNode需要远程登陆Dnn中进行开启DNN), 不设置的话每次输入密码

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

    生成的公钥和私钥文件在  /root/.ssh 下

    将 自己 设置为免密码登录, 将生成的pub文件追加到认证文件下

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys将 NN的公钥放置到DNN中去, (详细可见 ssh 免密码登录 原理)
    scp ~/.ssh/id_rsa.pub root@hdfs-dnn1:/opt/ssh
    cat /opt/ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    scp ~/.ssh/id_rsa.pub root@hdfs-dnn2:/opt/ssh
    cat /opt/ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    scp ~/.ssh/id_dsa.pub root@hdfs-dnn3:/opt/ssh
    cat /opt/ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    2, 配置4台机器的jdk为1.7版本的, (使用hadoop2.x)

    配置好一台机器后, 使用scp拷贝

    scp -r jdk1.7.0_79/ root@hdfs-dnn1:/usr/opt/
    scp -r jdk1.7.0_79/ root@hdfs-dnn3:/usr/opt/

    之后, source /etc/profile

    3, 上传解压hadoop.2.5.1_x64.tar.gz 

    使用rz上传

    使用tar -zxvf had.. 解压

    4, 修改配置文件

    cd hadoop.2.5.1/etc/hadoop

    hadoop-env.sh

    export JAVA_HOME=/usr/opt/jdk1.7.0_79/

    core-site.xml, 配置NN所在的主机和数据传输端口(rpc协议)

        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.208.126:9000</value>
        </property>

        <!--配置缓存目录, 因为fsimage默认在此目录下, 所以更改-->

        <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/hadoop</value>
        </property>

    hdfs-site.xml, 配置的为secondNameNode

        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hdfs-dnn1:50090</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.https-address</name>
            <value>hdfs-dnn1:50091</value>
        </property>

    slaves

    hdfs-dnn1
    hdfs-dnn2
    hdfs-dnn3

    masters 自己创建, 配置SNN的主机名

    hdfs-dnn1

    之后, 将整个hadoop文件scp到DNN主机上

    5, 配置hadoop的环境变量 /etc/profile

    export JAVA_HOME=/usr/opt/jdk1.7.0_79
    export PATH=$PATH:$JAVA_HOME/bin
    
    export HADOOP_HOME=/usr/opt/hadoop-2.5.1
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    6, 启动

    6.1) 格式化NN, 在 HADOOP_HOME/dfs/name/current/ 下生成fsimage文件

    hdfs namenode -format

    6.2) 启动 

    start-dfs.sh

     然后通过浏览器可以访问监控页面,

     命令行示例: 

    1) 从本地磁盘拷贝文件

    hdfs dfs -put foo.txt foo.txt
    hdfs 没有当前目录的概念, 必须从用户的home路径下, /usr/username/foot.txt

    # 从hdfs拷贝
    hdfs dfs -get /user/fred/bar.txt baz.txt

    2) 获取用户home目录列表

    hdfs dfs -ls

    访问根目录, 直接 /

    3) 显示hdfs文件 /user/fred/bar.txt

    hdfs dfs -cat /user/fred/bar.txt

    4), 在用户目录下创建input目录

    hdfs dfs -mkdir input

    5) , 删除目录

    hdfs dfs -rm -r input-old

    系列来自尚学堂 

  • 相关阅读:
    【Android】给Android Studio设置代理
    Android studio如何使用SVN进行版本控制?
    Android studio
    nohup java -jar 启动java项目
    Linux命令发送Http GET/POST请求
    Java 读取配置文件的几种方式
    java -jar 报错 Error: A JNI error has occurred, please check your installation and try again
    java.net 发送http请求
    textarea高度自适应
    webrtc切换媒体设备
  • 原文地址:https://www.cnblogs.com/wenbronk/p/6628993.html
Copyright © 2011-2022 走看看