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

相關文章
相關標籤/搜索