zoukankan      html  css  js  c++  java
  • Hadoop学习笔记 -伪分布式

    伪分布式

    ps:写在前面的话 这是个人的学习笔记,仅用于自己归纳,其中可能会有些莫名其妙的东西

    准备工作

    • 环境

      • 设置 IP 和 主机名
      • 关闭防火墙和 selinux
      • 设置 hosts 映射
      • Hadoop
      • JAVA环境
      • ssh免密登录
    • ssh遇到的问题

      • root账户无法连接:

      • 修改/etc/ssh/sshd_config文件

      • PermitRootLogin Prohibit-password 修改为:PermitRootLogin yes

    • 重启ssh服务

    • 免密登录:

      • $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
        $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
        $ chmod 0600 ~/.ssh/authorized_keys
        
    • B 包含了 A 的公钥,A 就可以免密登录

    搭建Hadoop(配置Hadoop)

    1. 配置Hadoop环境变量 (hadoop-env.sh 中配置 JAVA_HOME)

    2. core-site.xml 中配置localhost为主机名

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://node01:9000</value>
          </property>
      </configuration>
      
    3. hdfs-site.xml

      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
      
          <property>
              <name>dfs.namenode.name.dir</name>
      	<value>/var/bigdata/hadoop/local/dfs/name</value>
          </property>
      
          <property>
              <name>dfs.datanode.data.dir</name>
      	<value>/var/bigdata/hadoop/local/dfs/data</value>
          </property>
      
          <property>
      	<name>dfs.namenode.secondary.http-address</name>
      	<value>node01:50090</value>
          </property>
          
          <property>
      	<name>dfs.namenode.checkpoint.dir</name>
      	<value>/var/bigdata/hadoop/local/dfs/secondary</value>
          </property>
      </configuration>
      
      
    4. slaves / workers 配置datanode在哪启动

    初始化和启动

    • 初始化

      • hdfs namenode -format
        • 创建目录
        • 初始化一个空的fsimage
        • VERSION: 存放集群ID
    • 成功标志

      2020-10-24 13:24:34,088 INFO common.Storage: Storage directory /var/bigdata/hadoop/local/dfs/name has been successfully formatted.
      2020-10-24 13:24:34,217 INFO namenode.FSImageFormatProtobuf: Saving image file /var/bigdata/hadoop/local/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression
      2020-10-24 13:24:34,440 INFO namenode.FSImageFormatProtobuf: Image file /var/bigdata/hadoop/local/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 399 bytes saved in 0 seconds .
      
    • 启动 (start-dfs.sh)

      • Starting namenodes on [node01]
        ERROR: Attempting to operate on hdfs namenode as root
        ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
        Starting datanodes
        ERROR: Attempting to operate on hdfs datanode as root
        ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
        Starting secondary namenodes [node01]
        ERROR: Attempting to operate on hdfs secondarynamenode as root
        ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
        
        
      • 解决 : 在hadoop-env.sh 中指定用户名

        export HDFS_NAMENODE_USER=root
        export HDFS_DATANODE_USER=root
        export HDFS_SECONDARYNAMENODE_USER=root
        
      • 第一次 start-dfs.sh : datanode和secondary角色会初始化创建自己的数据目录

      • 其中的VERSION中的clusterID是相同的

    Startup Progress

    1. 进入 name/current 观察 editlog 的 id 是否在 fsimage 的后面

      • hdfs dfs : 列出支持的文件操作命令
      • hdfs dfs -mkdir /bigdata
      • hdfs dfs -mkdir -p /user/root (递归创建目录)
    2. SecondaryNameNode 只需要从 NameNode 拷贝最后时点的 FSImage 和增量 EditLog

    3. /var/bigdata/hadoop/local/dfs/data/current/BP-1520940053-172.17.0.2-1603517073931/current/finalized/subdir0/subdir0

      • 文件被切割成四个块, 每个块伴随着校验和
    4. 自定义块大小

      for i in `seq 100000`;do echo "hello hadoop $i" >> data.txt;done hdfs dfs -D dfs.blocksize=1048576 -put data.txt /var/bigdata/hadoop/local/dfs/data/current/BP-1520940053-172.17.0.2-1603517073931/current/finalized/subdir0/subdir0

      检查被切割的块

  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/xun-/p/13880129.html
Copyright © 2011-2022 走看看