hadoop第二天
脚本里面单独的 \ 是把一行换成多行,换行符
通配0.0.0.0表示任意一个ip都可以访问、电脑有网卡,本地连接其他的
2NN配置独立的主机----------现在是005的18分38秒
--------------------
The secondary namenode http server address and port.
改辅助名称的节点 /etc/hadoop_cluster/hdfs-site.xml在这个文件里面 【增加】 下面的内容 -----为什么说是这个,因为上面搜出来的是hdfs-default里面的内容
配置好后把这个文件发给所有节点
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秒
--------------------
The secondary namenode http server address and port.
改辅助名称的节点 /etc/hadoop_cluster/hdfs-site.xml 在这个文件里面 【增加】 下面的内容 -----为什么说是这个,因为上面搜出来的是hdfs-default里面的内容
配置好后把这个文件发给所有节点
修改默认的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