脚本里面单独的 \ 是把一行换成多行,换行符node
通配0.0.0.0表示任意一个ip均可以访问、电脑有网卡,本地链接其余的web
2NN配置独立的主机----------如今是005的18分38秒ubuntu
--------------------bash
<property>ssh
<name>dfs.namenode.secondary.http-address</name>分布式
<value>0.0.0.0:50090</value> -----------在这里,上面的s500:50090 从jar包提取全部的配置项-小红本里面搜secondary里面搜的以及DFSUtil里面看源码找到的配置,ide
<description>oop
The secondary namenode http server address and port.测试
</description>ui
</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