【】【】【】【】【【【【集羣只有在啓動的時候纔讀取配置文件】】】】】】【【【【【【【【【【集羣只有在啓動的時候纔讀取配置文件】】】】】】只有名稱節點由鏡像,名稱節點存放的是塊信息,塊經來後會向塊索取名稱列表html
hosts的映射關係千萬不要弄錯,否則啓動後,datanode也會有問題--------------初始化沒問題,可是進入webui看datanode沒有數據呢。node
以前我配了 127.0.0.1 s100 -------------------------這個要刪除,用下面那個。並且把這個自迴環的配置刪除後win7配置host映射後是能正經常使用瀏覽器s100:8088訪問的web
後面又配了 192.168.2.116 s100shell
】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】編程
-------------------------------------------------ubuntu
commission | decommission瀏覽器
-------------------------安全
1.服役,退役bash
2.slaves:datanode服務器
dfs.hosts datanode是否能鏈namenode 相關
-----------
決定可以鏈接namenode
dfs.hosts.exclude 排他文件
-----------
決定不能鏈接namenode
1.dfs.hosts dfs.hosts.exclude
--------------------------------
00//不能連
01//不能連
10//能連
11//能連,但會退役
優先級:include > exclude
s200//能
s300//能 decommission但會退役.
s400//不能連
------------------------------------------、
【【要操做要操做要操做要操做【【【【【【【【【【【【【【【【【【【【要操做要操做要操做要操做要操做
考查dfs.hosts和dfs.hosts.exclude文件
------------------------------------
1.建立/soft/hadoop/etc/dfs-hosts-include.conf文件
s200
s300
2.建立/soft/hadoop/etc/dfs-hosts-exclude.conf文件
s300
s400
3.編輯配置文件----配置的是路徑
[hdfs-site.xml]
dfs.hosts=/soft/hadoop/etc/dfs-hosts-include.conf
dfs.hosts.exclude=/soft/hadoop/etc/dfs-hosts-exclude.conf
4.分發hdfs-sits.xml文件到全部節點
5.刷新節點
$>hdfs dfsadmin -refreshNodes ------003的--書中336頁
老師是有中止集羣的,而後重啓的-------【【【【【【【【【【集羣只有在啓動的時候纔讀取配置文件】】】】】】----------實際是上面一刷新節點之後再webui就能夠用了
------結果看圖片 【【另一個配置問題退役.png】】----------------------------】】】要操做要操做要操做要操做】】】】】】】】】】】】】】】】】】】】】】】
第3天的
netstat -plut 查看端口,這個不看ipv6的
netstat -ano|grep 8088 查看8088,直接上門的那個查不到, netstat -ano | more查看全部端口
-----------------------------------------------------
hdfs getconf 返回配置信息
hdfs getconf -namenodes 返回s100
/soft/hadoop/sbin$ hdfs getconf -secondarynamenodes 返回s500
----------------------------------------------------
--------------------------------
1.{hadoop}\libexec\hadoop-config.sh
HADOOP_CONF_DIR=...//--config參數
2.NAMENODE={hadoop_home}/bin/hdfs getconf -namenodes//提取名稱節點的主機名
3.{hadoop_home}/sbin/hadoop-daemons.sh --config ... --hostnames ... --script "{hadoop_home}/bin/hdfs" start namenode $dataStartOpt
4.{hadoop_home}/sbin/hadoop-daemons.sh --config ... --hostnames ... --script "{hadoop_home}/bin/hdfs" start datanode $dataStartOpt
5.{hadoop_home}/sbin/hadoop-daemons.sh --config ... --hostnames ... --script "{hadoop_home}/bin/hdfs" start secondarynamenode
【】【】【】【】按照{hadoop_home}/sbin/hadoop-daemons.sh的思想,寫腳本能單獨就只啓動namenode
hadoop-daemons.sh --config /soft/hadoop/etc/hadoop_cluster --hostnames s100 start namenode
【】【】【】【】按照{hadoop_home}/sbin/hadoop-daemons.sh的思想,寫腳本能單獨就只啓動datanode
hadoop-daemons.sh --config /soft/hadoop/etc/hadoop_cluster start datanode
【】【】【】【】按照{hadoop_home}/sbin/hadoop-daemons.sh的思想,寫腳本能單獨就只啓動secondarynamenode
hadoop-daemons.sh --config /soft/hadoop/etc/hadoop_cluster --hostnames s500 start secondarynamenode
【】【】【】
yarn層面的有/soft/hadoop/sbin$ yarn-daemons.sh start nodemanager
yarn-daemons.sh start resourcemanager
其實全部進程均可以用這個來作
--------------------------------------------------
hadoop
----------------
1.可靠、可伸縮、分佈式的計算框架,開源軟件。
四大模塊--D:\大數據軟件\hadoop-2.7.2\share\hadoop裏面
----------------
1.common
hadoop-common-xxx.jar
core-site.xml
core-default.xml
2.hdfs
hdfs-site.xml
hdfs-default.xml
3.mapreduce
mapred-site.xml
mapred-default.xml
4.yarn
yarn-site.xml
yarn-default.xml
hadoop徹底分佈式
----------------
1.hdfs
NameNode
DataNode
SecondaryNameNode
啓動腳本:start-all.sh(start-dfs.sh)
2.Yarn
ResourceManager
NodeManager
啓動腳本:start-all.sh(start-yarn.sh)
3.hadoop-deamons.sh 上面兩個腳本最終引用的實際上是這個腳本,管理的話實際上是使用這兩個腳本
hdfs.sh 文件系統操做
yarn.sh 對資源調度框架的使用
編寫/usr/local/sbin/xcall.sh
------------------------------
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
echo -----xcall $arg1 from localhost ------
$@
echo
#get first argument
for (( i=200;i<=500;i=i+100 )) ;
do
echo -----xcall $arg1 from s$i ------;
ssh s$i $@
echo
done
-------$@ (執行全部參數) 那裏,好比文件使用的是 xcall.sh jps 的話,後面jps實際上是還能夠用參數的,因此用$接收------------- xcall.sh touch /home/ubuntu/dd.txt 這樣記得要寫路徑,由於其餘的機器不必定是在這個地方----------------
----------------以前執行配置好後執行命令用start --config xxx之類的麻煩,仍是和原來同樣作個連接就行了
xcall.sh rm /soft/hadoop/etc/hadoop
xcall.sh ln -s /soft/hadoop/etc/hadoop_cluster/ /soft/hadoop/etc/hadoop
xcall.sh ls -al /soft/hadoop/etc/ 看是否創建快捷鍵是否成功
--------------------------------------------------------------------------
配置客戶機的靜態ip----第三天的01的18分鐘左右,是nat模式裏面的----我本身用橋接模式貌似每次開機的時候ip都沒變的
----------------------
要求:ip網段 | 網關 | 子網掩碼
1.查看網關
vmware虛擬機 --> 編輯菜單 --> 虛擬網絡編輯器 --> 打開窗口 --> 選中vmnet8虛擬網卡 --> nat設置 --> 查看網關(192.168.238.2)
2.查看可用的ip網段
vmware虛擬機 --> 編輯菜單 --> 虛擬網絡編輯器 --> 打開窗口 --> 選中vmnet8虛擬網卡 --> DHCP設置 --> 查看網段
3.挑選一個可用的ip,給當前的客戶機來設置
4.配置ubuntu的靜態ip
a.sudo nano /etc/network/interfaces
[/etc/network/interfaces]
# The loopback network interface
auto lo
iface lo inet loopback
#iface eth0 inet static
iface eth0 inet static
address 192.168.238.128
netmask 255.255.255.0
gateway 192.168.238.2
dns-nameservers 192.168.238.2
auto eth0
b.重啓網卡
$>sudo /etc/init.d/networking restart
------------------------------【】【】【】【】 上面配置好後要記得/etc/hosts裏面的ip 主機映射關係哦
---------------------------------------------------------
客戶機關機命令
---------------------
1.sudo poweroff
2.sudo shutdown -h 0
3.sudo halt
配置ubuntu文本啓動模式
----------------------
1.sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text"//改爲text
GRUB_TERMINAL=console//打開該註釋
2.讓改動生效
$>sudo update-grub
3.sudo reboot
4.在文本模式下,啓動圖形界面
$>sudo startx//
啓動全部的數據節點
--------------------
$>hadoop-daemon.sh start namenode//在名稱節點服務器上執行啓動名稱節點
$>hadoop-daemons.sh start datanode//在名稱節點服務器上執行,啓動全部的數據節點--單獨在s200上運行就是這個機器上運行了
$>hadoop-daemon.sh start secondarynamenode//啓動輔助名稱節點
yarn層面的有/soft/hadoop/sbin$ yarn-daemons.sh start nodemanager
查看全部端口
-------------------
$>netstat -ano | more//
---------【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【
配置win7的hosts文件
--------------------
[C:\Windows\System32\drivers\etc\hosts]
# Copyright (c) 1993-2009 Microsoft Corp.
127.0.0.1 localhost
192.168.238.128 s100
192.168.238.129 s200
192.168.238.130 s300
192.168.238.131 s400
192.168.238.132 s500
192.168.238.133 s600
192.168.238.134 s700
【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【
dfs.namenode.name.dir-------------------------那個pdf的297頁附近
---------------------------
1.名稱配置多個目錄在於更可靠。
2.每一個目錄存放的內容相同。
dfs.datanode.data.dir
---------------------------
1.數據節點配置多個目錄,不是副本。
2.每一個目錄存放的內容不一樣。
3.","號分割.
經常使用端口
---------------------
1.namenode
rpc//8020
webui//50070
2.datanode
rpc//8032
webui//50075
3.2nn
webui//50090
4.historyServer
webui//19888
8.resourcemanager
webui//8088
9.nodemanager
webui//8042
commission | decommission
-------------------------
1.服役,退役
2.slaves:datanode
dfs.hosts datanode是否能鏈namenode 相關
-----------
決定可以鏈接namenode
dfs.hosts.exclude 排他文件
-----------
決定不能鏈接namenode
1.dfs.hosts dfs.hosts.exclude
--------------------------------
00//不能連
01//不能連
10//能連
11//能連,但會退役
優先級:include > exclude
s200//能
s300//能 decommission.
s400//不能連
考查dfs.hosts和dfs.hosts.exclude文件
------------------------------------
1.建立/soft/hadoop/etc/dfs-hosts-include.conf文件
s200
s300
2.建立/soft/hadoop/etc/dfs-hosts-exclude.conf文件
s300
s400
3.編輯配置文件
[hdfs-site.xml]
dfs.hosts=/soft/hadoop/etc/dfs-hosts-include.conf
dfs.hosts.exclude=/soft/hadoop/etc/dfs-hosts-exclude.conf
4.分發hdfs-sits.xml文件到全部節點
5.刷新節點
$>hdfs dfsadmin -refreshNodes ------003的--書中336頁
VERSION----------------要升級的問題---------------------------------------[中文]Hadoop權威指南第二版.pdf 這本書裏面---------第10章294頁左右
--------------------------
1.clusterID=xxx(namenode === Datanode) 臨時目錄裏面的
2.storageID=xxx(DataNode)//
3.cTime:集羣建立時間//
4.acl//access control list,訪問控制列表
安全模式------------------看圖片安全模式.png 【】【只有名稱節點纔會進入安全模式,不通過名稱節點是不會訪問數據節點的】【】
-------------
1.namenode啓動時,合併p_w_picpath和edit成新的p_w_picpath,併產生新的edit log
2.整個過程出於safe模式下,客戶端只能【【【【讀取】】】。
3.namenode安全模式操做
$>hdfs dfsadmin -safemode get//查看,獲取安全模式狀態,老師在s100運行,默認查出來是Safe mode is OFF
$>hdfs dfsadmin -safemode enter//進入安全模式,返回Safe mode is ON
而後就只能讀取了,不能寫了 hadoop fs -put index.html / 寫會失敗,讀仍是能讀下載的
$>hdfs dfsadmin -safemode leave//離開安全模式
$>hdfs dfsadmin -safemode wait//等待--【他退出】
4.手動保存名字空間,查幫助 hdfs dfsadmin --help saveNamespace 老師的目錄是~/hadoop/dfs/name/current 看裏面的文件保存狀況
$>hdfs dfsadmin -saveNamespace 用以前先進入安全模式
【】【】【】
【老師給的問題】--先上傳一個文件,而後進入安全模式,而後手動保存名字空間,再看名字的變化
hdfs dfsadmin -report webui下面看到的內容
5.手動保存鏡像文件到本地
$>hdfs dfsadmin -fetchImage -----------~/hadoop/dfs/name/current在這個木下執行(不在這個文件下的也同樣) hdfs dfsadmin -fetchImage ~/ 到本地
6.保存元數據,保存在{hadoop_home}/logs/
$>hdfs dfsadmin -metasave xxx.metadata -------------------今天講的都屬於hadoop的管理工做
7.start-balancer.sh 也有中止均衡器
啓動均衡器,讓集羣在數據存儲上更加平均,提升整個集羣的
均衡器,在數據節點之上。保證數據在節點上均衡分配(知道集羣變均衡),避免新能上的瓶頸,如今看不到啥效果
8.查看目錄的統計信息
$>hadoop fs -count /x/x/x///目錄數量,文件數,字節數
9.hdfs fsck / 檢查文件的健康狀態
50075數據節點的端口號
hadoop文件系統操做,目錄默認不能建立快照,要開啓目錄快照功能,否則直接建立創不了
--------------------
0.開啓快照功能,hdfs dfsadmin
$>hdfs dfsadmin -allowSnapshot /user/ubuntu/data
1.快照,snapshot,針對目錄. 能夠建立多個快照
$>hadoop fs -createSnapshot /user/ubuntu/data snap-1
對哪一個目錄建立快照 快照名,名字不加會以虛擬機的時間戳命名快照
建立後能夠進入webui看,好比http://s100:50070/dfshealth.html#tab-snapshot
或者命令行查hadoop fs -ls -R /user/ubuntu/data/.snapshot/snap-1 有文件會顯示文件 直接hadoop fs -ls -R /查不了的哦。快照至關於給文件作了一個備份
刪除快照
hadoop fs -deleteSnapshot /user/ubuntu/data snap-1
重命名快照
hadoop fs -renameSnapshot /user/ubuntu/data snap-1 snap-1-2
追加文件,name.txt裏面的文件內容追加到hello.txt裏面這樣追加到原來的目錄 ------不過快照目錄裏面的文件是不會變化的
hadoop fs -appendToFile name.txt /user/ubuntu/data/hello.txt
禁用目錄快照功能,hdfs dfsadmin
$>hdfs dfsadmin -disallowSnapshot /user/ubuntu/data //若是以前這個有快照,就不能快照。要先把快照刪除再禁用
回收站---------------看老師的書是英文書308頁走哦有,可是我看個人沒有找到,搜hadoop fs -expunge找到那個頁
-----------------
1.默認是0秒,意味着禁用回收站。
2.設置文件在回收站的駐留時間.-----也是在小紅本里面搜那四個默認配置的 13分05秒的時候有講配置,[core-site.xml]裏面還有配置臨時目錄的 hadoop.tmp.dir=/home/ubuntu/hadoop
[core-site.xml]
fs.trash.interval=1//分鐘數計算
老師配置好後是分發給其餘機器後重啓的,不是刷新節點,能夠試一下本身刷新節點
配好後 hadoop fs -lsr /user/ubuntu/.Trash 直接插配好後直接插沒有的
刪除 hadoop fs -rm /user/ubuntu/data/Hadoop權威指南第二版.pdf
刪除後 hadoop fs -lsr /user/ubuntu/.Trash/ 查,是那個hadoop的目錄結構查出來了,過程當中查貌似會變成時間的名字,而後一分鐘後再去查的話就沒有了
要恢復回收站文件
【】【】 hadoop fs -mv /user/ubuntu/.Trash/xx/xx/x daa/
hadoop fs -expunge 這個貌似也是馬上刪除,不過貌似沒用
3.經過shell命令刪除的文件,會進入trash
4.每一個用戶都有本身的回收站(目錄)
$>/user/ubuntu/.Trash
[【【5.編程方式刪除不進入回收站,當即刪除,若是想編程方式進入回收站,能夠調用
moveToTrash()方法.返回false,說明禁用回收站或者已經在站中。】】】
hadoop fs -truncate -w 5 /user/ubuntu/data/hello.txt 好比hello.txt內容是helloworld 截斷出來打印的就是 hello了
配額:quota
---------------------
1.目錄配額
$>hdfs dfsadmin -setQuota N /dir//N > 0 ,目錄配額,1:表示空目錄,不能放置任何元素. 若是設置2,/dir下再放一個txt文件的話也就沒法繼續放文件或目錄了。這樣這個目錄下面就只能放有限的文件,防止目錄東西太多文件太大
2.空間配額hdfs dfsadmin -help setSpaceQuota 無論空間配額仍是目錄配額都是給文件夾配置的
$>hdfs dfsadmin -setSpaceQuota ---實際 hdfs dfsadmin -setSpaceQuota 20 /user/ubuntu/dataday 20字節 50t就是50tb,5m就是5Mb
若是放了20字節,放了超過他的文件就會報錯,The DiskSpace quota of /user/ubuntu is exceeded: quota = 20 B = 20 B but diskspace consumed = 402653184 B = 384 MB
3.清除配額
hdfs dfsadmin 幫助裏面有個 clrQuota和clrSpaceQuota
hdfs dfsadmin -clrQuota /user/ubuntu/data
hdfs dfsadmin -clrSpaceQuota /user/ubuntu/
-----------還有hadoop的一些其餘命令,看保存的圖片------------------------------
hadoop fs -rm -R /user/ubuntu/data/had*
hadoop fs -cat /user/ubuntu/data/hello.txt
hadoop fs -count /user/ubuntu/data/
目錄 文件 字節
kan 幫助
hadoop fs -help count
更多指令能夠看doc file:///D:/大數據軟件/hadoop-2.7.2/share/doc/hadoop/hadoop-project-dist/hadoop-common/FileSystemShell.html
-------------test.sh-------------
#老師在s500測試的 1.先測試腳本是否能正常上傳 2.而後去s100的命令行裏面啓動安全模式 3.而後s500裏面腳本里面裏面等待的命令再測,還有上傳的文件路徑看本身的狀況定哦
#!/bin/bash
echo starting put file
hdfs dfsadmin -safemode wait
hadoop fs -put ~/downloads/hadoop-2.7.2.tar.gz /user/ubuntu/data/
echo put over