hadoop块理论配置Secondarynamenod

hdfs数据块切割理论

hdfs中全部的文件都是以块为单位进行存储,一个块最大128Mnode


块大小:数据寻道时间占用传输时间的1%windows


廉价硬件:普通的硬盘,普通的cpu等等
使用软件级别高可用替代硬件级别的高可用centos

去IOE活动:I:IBM小型机 33万人民币
O:Oracle 1核10W美圆
E:EMC共享存储 昂贵api

RAID:磁盘冗余阵列
RAID1:硬件级别同步安全


大数据的4个V:
  variety:多样化
  velocity:快速化
  volumn: 体量大
  value: 价值密度低ssh

hdfs数据存放位置:

  namenode数据:数据索引 包括权限、目录、类型等等信息ide

  datanode数据:真实数据函数

  hadoop将大于块大小的文件进行物理切割而后存放到各个datanodeoop


namenode数据:

  edits文件 编辑日志,存放的是hdfs所进行的全部操做
  edits_inprogress文件
  fsimage文件 镜像文件,存放的是hdfs中的文件索引,权限,大小,名称,目录,文件类型等等大数据

查看编辑日志:
  hdfs oev -i edits_0000000000000000012-0000000000000000028 -p xml -o ~/edit.xml

查看镜像文件:
  hdfs oiv -i fsimage_0000000000000000028 -p XML -o ~/fsimage.xml


在当前会话下(hadoop运行时),所作的一切修改,会被edits_inprogress文件所捕捉
在hadoop关闭以后,两个文件均不进行操做
在hadoop启动的时候: 一、edits_inprogress文件实例化为编辑日志(edits)
二、镜像文件(fsimage)会和它数字以后的编辑日志(edits)进行融合,成为一个新的镜像文件

 


hadoop的2nn:

secondarynamenode //辅助名称节点(检查点)

做为namenode的检查点,按期备份数据 //建立检查点周期3600s

属于namenode的冷备份,须要人为操做


配置2nn到另一个节点:

0、修改hdfs-site.xml,添加(s101) //soft/hadoop/etc/hadoop

<property>

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

<value>s105:50090</value>

</property>

一、修改hosts:(s101) // /etc/hosts
添加192.168.23.105 s105

二、修改xcall.sh和xsync.sh(s101) // /usr/local/bin
将脚本文件中104改成105

三、配置s105的ssh(s101) //root和centos
centos:ssh-copy-id centos@s105
root: ssh-copy-id root@s105

四、安装rsync(s105)
sudo yum install -y rsync

五、将配置文件和hosts文件同步(s101)
xsync.sh /soft/hadoop/etc
su root
xsync.sh /etc/hosts


对编辑日志和镜像文件进行操做:
  hdfs dfsadmin -rollEdits //手动滚动编辑日志
  hdfs dfsadmin -saveNamespace //手动保存镜像文件


安全模式:
  在该模式下,hadoop文件系统只可读,不可写
  在启动的时候,namenode会处于30秒的安全模式下,以便进行fsimage文件的融合

  hdfs dfsadmin -safemode <enter | leave | get | wait>


使用HDFS的api对文件进行增删改查
winutils.exe不存在问题

  将hadoop2.7.3.zip文件解压到一个没有中文没有空格的路径下
  而后在windows上配置此hadoop环境变量

  变量名:HADOOP_HOME
  变量值:路径

  修改PATH,添加条目,将%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin添加进去便可

  完成以后重启idea


装饰流,在构造函数中传的参数是他的父类,因此能够当作是父类功能的添加,仍然保留父类特性

  因此FSDataInputStream是InputStream的装饰流,因此能够以操做InputStream的方式操纵FSDataInputStream


使用HDFS的API递归列出全部文件以及文件夹:
  FileStatus[] fileStatuses = fs.listStatus(new Path("/"));


hdfs的家目录: /user/centos

<property>
<name>dfs.user.home.dir.prefix</name>
<value>/user</value>
</property>

/user:经过hdfs-site.xml文件制定前缀
/centos: 经过Linux格式化文件系统的时候所用的用户名决定

须要建立hdfs家目录: hdfs dfs -mkdir -p /user/centos

相关文章
相关标签/搜索