hadoop第二天

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

成都创新互联成立与2013年,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元麦积做网站,已为上家服务,为麦积各地企业和个人服务,联系电话:028-86922220

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

2NN配置独立的主机----------现在是005的18分38秒

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

 dfs.namenode.secondary.http-address

 0.0.0.0:50090                                -----------在这里,上面的s500:50090 从jar包提取所有的配置项-小红本里面搜secondary里面搜的以及DFSUtil里面看源码找到的配置,

 

The secondary namenode http server address and port.

 

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

 dfs.namenode.secondary.http-address

 s500:50090     

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

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秒

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

 dfs.namenode.secondary.http-address

 0.0.0.0:50090                           -----------在这里,上面的s500:50090 从jar包提取所有的配置项-小红本里面搜secondary里面搜的以及DFSUtil里面看源码找到的配置,

 

The secondary namenode http server address and port.

 

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

 dfs.namenode.secondary.http-address

 s500:50090     

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

修改默认的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

  


分享名称:hadoop第二天
文章起源:http://scjbc.cn/article/gspiph.html

其他资讯