溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hadoop第二天

發(fā)布時間:2020-07-24 16:30:20 來源:網(wǎng)絡 閱讀:431 作者:zhangqijun18 欄目:大數(shù)據(jù)

腳本里面單獨的 \ 是把一行換成多行,換行符


通配0.0.0.0表示任意一個ip都可以訪問、電腦有網(wǎng)卡,本地連接其他的




2NN配置獨立的主機----------現(xiàn)在是005的18分38秒

--------------------

<property>

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

 <value>0.0.0.0:50090</value>                                -----------在這里,上面的s500:50090 從jar包提取所有的配置項-小紅本里面搜secondary里面搜的以及DFSUtil里面看源碼找到的配置,

 <description>

The secondary namenode http server address and port.

 </description>

</property>




改輔助名稱的節(jié)點  /etc/hadoop_cluster/hdfs-site.xml在這個文件里面  【增加】 下面的內(nèi)容 -----為什么說是這個,因為上面搜出來的是hdfs-default里面的內(nèi)容

<property>

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

 <value>s500:50090</value>     

</property>


配置好后把這個文件發(fā)給所有節(jié)點


hdfs --config /soft/hadoop/etc/hadoop_cluster getconf -secondarynamenodes  

取出來是s500



配置好新的集群,重新格式化一下






修改默認的hadoop臨時目錄-------------想修改的話可以到這里修改,搜配置的話,小紅本里面搜local,在搜hadoop.tmp.dir

------------這些內(nèi)容是追加的,追加后要發(fā)送到其他的主機----我是ubuntu用戶,就放在自己家了,沒有的話創(chuàng)建一下目錄,每個機器上都創(chuàng)建一下---------

[core-site.xml]

hadoop.tmp.dir=/home/ubuntu/hadoop/



============================================






克隆之前最好把soft/hadoop/logs里面的日志刪除


配置完全分布式的xxx-site.xml


s100 namenode名稱節(jié)點

s200 datanode數(shù)據(jù)節(jié)點

s300 datanode數(shù)據(jù)節(jié)點

s400 datanode數(shù)據(jù)節(jié)點

s500 secondarynamenode 輔助名稱節(jié)點在003的時候17分44秒左右提到了slaves不好用,讓看源代碼



slave配

s200 

s300 

s400 


etc/haoop_cluster發(fā)送到其他主機


hdfs --config /soft/hadoop/etc/hadoop_cluster namenode -format格式化的時候也有提到相關的配置

格式化后可以到/tmp/hadoop-ubuntu/dfs/里面看


start-dfs.sh --config /soft/hadoop/etc/hadoop_cluster

start-yarn.sh --config /soft/hadoop/etc/hadoop_cluster


也是完全分布式相關操作





hadoop端口

----------------

1.namenode 50070

http://namenode:50070/

2.resourcemanager:8088

http://localhost:8088/

3.historyServer

http://hs:19888/

4.name rpc(remote procedure call,遠程過程調用)---第一個

hdfs://namenode:8020/   主機名稱:端口號


ssh指令結合操作命令

---------------------

$>ssh s300 rm -rf /xx/x/x  強制刪除目錄,遞歸干掉


ssh s300 rm -rf a b 刪除a目錄,b目錄


通過scp遠程復制

--------------------

$>scp -r /xxx/x ubuntu@s200:/path  目錄遞歸拷貝

scp -r hadoop_cluster ubuntu@s200:/soft/hadoop/etc/



編寫腳本,實現(xiàn)文件或者文件夾的在所有節(jié)點遠程復制。


xcopy.sh   -記得修改一下所有人都能執(zhí)行的權限-------------一般放到/usr/local/sbin下path【/usr/local/sbin:/usr/local/bin】里面有這個目錄,而且我們不用陪了

--------------------

1.

2.

3.

4.


scp -r path ubuntu@s200:/path 


刪除

------

xrm.sh a.txt

ssh s200 rm -rf path

----------------------刪除腳本---003開始----我們經(jīng)常要刪除的是/soft/hadoop/logs目錄 和 /tmp目錄,沒有格式化就不會產(chǎn)生這個tmp目錄----

#!/bin/bash

if [ $# -lt 1 ] ;then

  echo no args

  exit;

fi


#get first argument

arg1=$1;

cuser=`whoami`

fname=`basename $arg1`


dir=`dirname $arg1`

if [ "$dir" = "." ]; then

  dir=`pwd`

fi


for (( i=100;i<=500;i=i+100)) ;

do

  echo -----rming $arg1 from s$i ------;

  ssh s$i rm -rf $dir/$fname

  echo

done


---查看是否已經(jīng)刪除的腳本 xls.sh .  ---  xargs 是把 ls  查看的放在一行去顯示- -   ls |xargs 對比一下就知道了

#!/bin/bash

if [ $# -lt 1 ] ;then

  echo no args

  exit;

fi


#get first argument

arg1=$1;

cuser=`whoami`

fname=`basename $arg1`


dir=`dirname $arg1`

if [ "$dir" = "." ]; then

  dir=`pwd`

fi


for (( i=100;i<=500;i=i+100)) ;

do

  echo -----ls $arg1 from s$i ------;

  ssh s$i ls $dir/$fname | xargs

done




-----------------------------



遠程復制文件------做好以后xcp.sh a.txt        xcp.sh /usr/a

[/usr/local/sbin/xcp.sh]

#!/bin/bash

if [ $# -lt 1 ] ;then

  echo no args

  exit;

fi


#get first argument

arg1=$1;

cuser=`whoami`

fname=`basename $arg1`


dir=`dirname $arg1`

if [ "$dir" = "." ]; then

  dir=`pwd`

fi

for (( i=200;i<=500;i=i+100)) ;

do

  echo -----coping $arg1 to $i ------;

  if [ -d $arg1 ] ;then

    scp -r $arg1 $cuser@s$i:$dir 

  else

    scp $arg1 $cuser@s$i:$dir 

  fi

  echo

done 





------s上面是前面二個小結-----




----再寫個程序清理集群的腳本clean.sh-------005的30分左右講到----------

#!/bin/bash

stop-all.sh --config /soft/hadoop/etc/hadoop_cluster

xrm.sh /tmp/hadoop-ubuntu

xrm.sh /soft/hadoop/logs

echo clean done!

------------------------------------------------------




----再寫個初始化集群的腳本ini.sh-------005的34分左右講到--------------------

#!/bin/bash

hdfs --config /soft/hadoop/etc/hadoop_cluster namenode -format

start-dfs.sh --config /soft/hadoop/etc/hadoop_cluster

start-yarn.sh --config /soft/hadoop/etc/hadoop_cluster

hadoop --config /soft/hadoop/etc/hadoop_cluster fs -mkdir -p /user/ubuntu/data

hadoop --config /soft/hadoop/etc/hadoop_cluster fs -ls -R /



-------------------------------------










---------------------------------------------------------





slaves

----------

master

masters  都不靠譜老師說,看有沒有好使的看源代碼


hadoop2.7.2源代碼處理

-----------------------

1.下載并加壓hadoop.2.7.2-tar.gz文件

2.

3.

4.

5.


從jar包提取所有的配置項-小紅本里面搜defaultFS,secondary------------------------------004開頭講的

------------------------

1.core-default.xml

D:\downloads\bigdata\hadoop-2.7.2\_libs\hadoop-common-2.7.2.jar

2.hdfs-default.xml

D:\downloads\bigdata\hadoop-2.7.2\_libs\hadoop-hdfs-2.7.2.jar

3.mapred-default.xml

D:\downloads\bigdata\hadoop-2.7.2\_libs\hadoop-mapreduce-client-core-2.7.2.jar

4.yarn-default.xml

D:\downloads\bigdata\hadoop-2.7.2\_libs\hadoop-yarn-common-2.7.2.jar


master node == NameNode

------------------------


啟動腳本分析004


{hadoop}/sbin/start-all.sh

--------------------------------------

1.{hadoop}\libexec\hadoop-config.sh

HADOOP_CONF_DIR=...//--config參數(shù)

2./sbin/start-dfs.sh --config $HADOOP_CONF_DIR

3./sbin/start-yarn.sh --config $HADOOP_CONF_DIR


{hadoop_home}/sbin/start-dfs.sh

--------------------------------

1.{hadoop}\libexec\hadoop-config.sh

HADOOP_CONF_DIR=...//--config參數(shù)

2.NAMENODE={hadoop_home}/bin/hdfs getconf -namenodes//提取名稱節(jié)點的主機名

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



hdfs getconf 






{hadoop_home}/sbin/hadoop-daemons.sh

---------------------------------------

1.{hadoop}\libexec\hadoop-config.sh

HADOOP_CONF_DIR=...//--config參數(shù)

2.exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_PREFIX" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"



{hadoop_home}/sbin/slaves.sh

-----------------------------

1.{hadoop}\libexec\hadoop-config.sh

HADOOP_CONF_DIR=...//--config參數(shù)

2."${HADOOP_CONF_DIR}/hadoop-env.sh"

3.提取slaves文件的所有主機名-->SLAVE_NAMES

4.for SLAVE_NAMES --> ssh @hostname ...


"$bin/hadoop-daemon.sh"

-----------------------------

1.{hadoop}\libexec\hadoop-config.sh

HADOOP_CONF_DIR=...//--config參數(shù)

2.namenode|datanode|2namenode|..

bin/hdfs/xxxx


---------------------

還有查看hdfs.sh的腳本





2NN配置獨立的主機----------現(xiàn)在是005的18分38秒

--------------------

<property>

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

 <value>0.0.0.0:50090</value>                           -----------在這里,上面的s500:50090 從jar包提取所有的配置項-小紅本里面搜secondary里面搜的以及DFSUtil里面看源碼找到的配置,

 <description>

The secondary namenode http server address and port.

 </description>

</property>




改輔助名稱的節(jié)點  /etc/hadoop_cluster/hdfs-site.xml  在這個文件里面  【增加】 下面的內(nèi)容 -----為什么說是這個,因為上面搜出來的是hdfs-default里面的內(nèi)容

<property>

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

 <value>s500:50090</value>     

</property>


配置好后把這個文件發(fā)給所有節(jié)點





修改默認的hadoop臨時目錄

-------------------------

[core-site.xml]

hadoop.tmp.dir=/home/ubuntu/hadoop/


修改blocksize大小,默認是128m----保存下來的默認配置里面搜小紅本里面搜dfs.blocksize

-----------------------------

[hdfs-site.xml]

dfs.blocksize=8m






1.測試方式

put 文件 > 8m,通過webui查看塊大小

hadoop --config /soft/hadoop/etc/hadoop_cluster fs -put /mnt/hgfs/downloads/bigdata/hadoop-2.7.2.tar.gz /usr/ubuntu/data/

其他s200,s300等主機也可以放文件

hadoop --config /soft/hadoop/etc/hadoop_cluster fs -chmod 改權限




檢查文件block的狀態(tài)  hadoop fsck  / -blocks

老師打的是 hdfs --config /soft/hadoop/etc/hadoop_cluster fsck /user/ubuntu/data/hello.txt  查看文件的健康狀況


到臨時目錄里面去cat一下那個meta和塊看看,每個節(jié)點都有同樣的內(nèi)容


到webui里面看多少塊超過128的文件






[ip]  hosts里面的映射配置,看自己主機ip情況而定

s100 --> 132

s200 --> 130

s300 --> 131

s400 --> 128

s500 --> 133


127.0.0.1localhost

192.168.238.132 s100

192.168.238.130 s200

192.168.238.131 s300

192.168.238.128 s400

192.168.238.133 s500


  


向AI問一下細節(jié)
推薦閱讀:
  1. Hadoop
  2. python入門第二天

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI