温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hadoop第二天

发布时间:2020-07-24 16:30:20 来源:网络 阅读:433 作者:zhangqijun18 栏目:大数据

脚本里面单独的 \ 是把一行换成多行,换行符


通配0.0.0.0表示任意一个ip都可以访问、电脑有网卡,本地连接其他的




2NN配置独立的主机----------现在是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>




改辅助名称的节点  /etc/hadoop_cluster/hdfs-site.xml在这个文件里面  【增加】 下面的内容 -----为什么说是这个,因为上面搜出来的是hdfs-default里面的内容

<property>

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

 <value>s500:50090</value>     

</property>


配置好后把这个文件发给所有节点


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

取出来是s500



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






修改默认的hadoop临时目录-------------想修改的话可以到这里修改,搜配置的话,小红本里面搜local,在搜hadoop.tmp.dir

------------这些内容是追加的,追加后要发送到其他的主机----我是ubuntu用户,就放在自己家了,没有的话创建一下目录,每个机器上都创建一下---------

[core-site.xml]

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



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






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


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


s100 namenode名称节点

s200 datanode数据节点

s300 datanode数据节点

s400 datanode数据节点

s500 secondarynamenode 辅助名称节点在003的时候17分44秒左右提到了slaves不好用,让看源代码



slave配

s200 

s300 

s400 


etc/haoop_cluster发送到其他主机


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/



编写脚本,实现文件或者文件夹的在所有节点远程复制。


xcopy.sh   -记得修改一下所有人都能执行的权限-------------一般放到/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开始----我们经常要删除的是/soft/hadoop/logs目录 和 /tmp目录,没有格式化就不会产生这个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


---查看是否已经删除的脚本 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参数

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参数

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



hdfs getconf 






{hadoop_home}/sbin/hadoop-daemons.sh

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

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

HADOOP_CONF_DIR=...//--config参数

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参数

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参数

2.namenode|datanode|2namenode|..

bin/hdfs/xxxx


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

还有查看hdfs.sh的脚本





2NN配置独立的主机----------现在是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>




改辅助名称的节点  /etc/hadoop_cluster/hdfs-site.xml  在这个文件里面  【增加】 下面的内容 -----为什么说是这个,因为上面搜出来的是hdfs-default里面的内容

<property>

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

 <value>s500:50090</value>     

</property>


配置好后把这个文件发给所有节点





修改默认的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的状态  hadoop fsck  / -blocks

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


到临时目录里面去cat一下那个meta和块看看,每个节点都有同样的内容


到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问一下细节
推荐阅读:
  1. Hadoop
  2. python入门第二天

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI