【】【】【】【】【【【【集群只有在启动的时候才读取配置文件】】】】】】【【【【【【【【【【集群只有在启动的时候才读取配置文件】】】】】】只有名称节点由镜像,名称节点存放的是块信息,块经来后会向块索取名称列表html
hosts的映射关系千万不要弄错,否则启动后,datanode也会有问题--------------初始化没问题,可是进入webui看datanode没有数据呢。node
以前我配了 127.0.0.1 s100 -------------------------这个要删除,用下面那个。并且把这个自回环的配置删除后win7配置host映射后是能正经常使用浏览器s100:8088访问的web
后面又配了 192.168.2.116 s100shell
】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】编程
-------------------------------------------------ubuntu
commission | decommission浏览器
-------------------------安全
1.服役,退役bash
2.slaves:datanode服务器
dfs.hosts datanode是否能链namenode 相关
-----------
决定可以链接namenode
dfs.hosts.exclude 排他文件
-----------
决定不能链接namenode
1.dfs.hosts dfs.hosts.exclude
--------------------------------
00//不能连
01//不能连
10//能连
11//能连,但会退役
优先级:include > exclude
s200//能
s300//能 decommission但会退役.
s400//不能连
------------------------------------------、
【【要操做要操做要操做要操做【【【【【【【【【【【【【【【【【【【【要操做要操做要操做要操做要操做
考查dfs.hosts和dfs.hosts.exclude文件
------------------------------------
1.建立/soft/hadoop/etc/dfs-hosts-include.conf文件
s200
s300
2.建立/soft/hadoop/etc/dfs-hosts-exclude.conf文件
s300
s400
3.编辑配置文件----配置的是路径
[hdfs-site.xml]
dfs.hosts=/soft/hadoop/etc/dfs-hosts-include.conf
dfs.hosts.exclude=/soft/hadoop/etc/dfs-hosts-exclude.conf
4.分发hdfs-sits.xml文件到全部节点
5.刷新节点
$>hdfs dfsadmin -refreshNodes ------003的--书中336页
老师是有中止集群的,而后重启的-------【【【【【【【【【【集群只有在启动的时候才读取配置文件】】】】】】----------实际是上面一刷新节点之后再webui就能够用了
------结果看图片 【【另一个配置问题退役.png】】----------------------------】】】要操做要操做要操做要操做】】】】】】】】】】】】】】】】】】】】】】】
第3天的
netstat -plut 查看端口,这个不看ipv6的
netstat -ano|grep 8088 查看8088,直接上门的那个查不到, netstat -ano | more查看全部端口
-----------------------------------------------------
hdfs getconf 返回配置信息
hdfs getconf -namenodes 返回s100
/soft/hadoop/sbin$ hdfs getconf -secondarynamenodes 返回s500
----------------------------------------------------
--------------------------------
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
【】【】【】【】按照{hadoop_home}/sbin/hadoop-daemons.sh的思想,写脚本能单独就只启动secondarynamenode
hadoop-daemons.sh --config /soft/hadoop/etc/hadoop_cluster --hostnames s500 start secondarynamenode
【】【】【】
yarn层面的有/soft/hadoop/sbin$ yarn-daemons.sh start nodemanager
yarn-daemons.sh start resourcemanager
其实全部进程均可以用这个来作
--------------------------------------------------
hadoop
----------------
1.可靠、可伸缩、分布式的计算框架,开源软件。
四大模块--D:\大数据软件\hadoop-2.7.2\share\hadoop里面
----------------
1.common
hadoop-common-xxx.jar
core-site.xml
core-default.xml
2.hdfs
hdfs-site.xml
hdfs-default.xml
3.mapreduce
mapred-site.xml
mapred-default.xml
4.yarn
yarn-site.xml
yarn-default.xml
hadoop彻底分布式
----------------
1.hdfs
NameNode
DataNode
SecondaryNameNode
启动脚本:start-all.sh(start-dfs.sh)
2.Yarn
ResourceManager
NodeManager
启动脚本:start-all.sh(start-yarn.sh)
3.hadoop-deamons.sh 上面两个脚本最终引用的实际上是这个脚本,管理的话实际上是使用这两个脚本
hdfs.sh 文件系统操做
yarn.sh 对资源调度框架的使用
编写/usr/local/sbin/xcall.sh
------------------------------
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
echo -----xcall $arg1 from localhost ------
$@
echo
#get first argument
for (( i=200;i<=500;i=i+100 )) ;
do
echo -----xcall $arg1 from s$i ------;
ssh s$i $@
echo
done
-------$@ (执行全部参数) 那里,好比文件使用的是 xcall.sh jps 的话,后面jps实际上是还能够用参数的,因此用$接收------------- xcall.sh touch /home/ubuntu/dd.txt 这样记得要写路径,由于其余的机器不必定是在这个地方----------------
----------------以前执行配置好后执行命令用start --config xxx之类的麻烦,仍是和原来同样作个连接就行了
xcall.sh rm /soft/hadoop/etc/hadoop
xcall.sh ln -s /soft/hadoop/etc/hadoop_cluster/ /soft/hadoop/etc/hadoop
xcall.sh ls -al /soft/hadoop/etc/ 看是否创建快捷键是否成功
--------------------------------------------------------------------------
配置客户机的静态ip----第三天的01的18分钟左右,是nat模式里面的----我本身用桥接模式貌似每次开机的时候ip都没变的
----------------------
要求:ip网段 | 网关 | 子网掩码
1.查看网关
vmware虚拟机 --> 编辑菜单 --> 虚拟网络编辑器 --> 打开窗口 --> 选中vmnet8虚拟网卡 --> nat设置 --> 查看网关(192.168.238.2)
2.查看可用的ip网段
vmware虚拟机 --> 编辑菜单 --> 虚拟网络编辑器 --> 打开窗口 --> 选中vmnet8虚拟网卡 --> DHCP设置 --> 查看网段
3.挑选一个可用的ip,给当前的客户机来设置
4.配置ubuntu的静态ip
a.sudo nano /etc/network/interfaces
[/etc/network/interfaces]
# The loopback network interface
auto lo
iface lo inet loopback
#iface eth0 inet static
iface eth0 inet static
address 192.168.238.128
netmask 255.255.255.0
gateway 192.168.238.2
dns-nameservers 192.168.238.2
auto eth0
b.重启网卡
$>sudo /etc/init.d/networking restart
------------------------------【】【】【】【】 上面配置好后要记得/etc/hosts里面的ip 主机映射关系哦
---------------------------------------------------------
客户机关机命令
---------------------
1.sudo poweroff
2.sudo shutdown -h 0
3.sudo halt
配置ubuntu文本启动模式
----------------------
1.sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text"//改为text
GRUB_TERMINAL=console//打开该注释
2.让改动生效
$>sudo update-grub
3.sudo reboot
4.在文本模式下,启动图形界面
$>sudo startx//
启动全部的数据节点
--------------------
$>hadoop-daemon.sh start namenode//在名称节点服务器上执行启动名称节点
$>hadoop-daemons.sh start datanode//在名称节点服务器上执行,启动全部的数据节点--单独在s200上运行就是这个机器上运行了
$>hadoop-daemon.sh start secondarynamenode//启动辅助名称节点
yarn层面的有/soft/hadoop/sbin$ yarn-daemons.sh start nodemanager
查看全部端口
-------------------
$>netstat -ano | more//
---------【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【
配置win7的hosts文件
--------------------
[C:\Windows\System32\drivers\etc\hosts]
# Copyright (c) 1993-2009 Microsoft Corp.
127.0.0.1 localhost
192.168.238.128 s100
192.168.238.129 s200
192.168.238.130 s300
192.168.238.131 s400
192.168.238.132 s500
192.168.238.133 s600
192.168.238.134 s700
【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【【
dfs.namenode.name.dir-------------------------那个pdf的297页附近
---------------------------
1.名称配置多个目录在于更可靠。
2.每一个目录存放的内容相同。
dfs.datanode.data.dir
---------------------------
1.数据节点配置多个目录,不是副本。
2.每一个目录存放的内容不一样。
3.","号分割.
经常使用端口
---------------------
1.namenode
rpc//8020
webui//50070
2.datanode
rpc//8032
webui//50075
3.2nn
webui//50090
4.historyServer
webui//19888
8.resourcemanager
webui//8088
9.nodemanager
webui//8042
commission | decommission
-------------------------
1.服役,退役
2.slaves:datanode
dfs.hosts datanode是否能链namenode 相关
-----------
决定可以链接namenode
dfs.hosts.exclude 排他文件
-----------
决定不能链接namenode
1.dfs.hosts dfs.hosts.exclude
--------------------------------
00//不能连
01//不能连
10//能连
11//能连,但会退役
优先级:include > exclude
s200//能
s300//能 decommission.
s400//不能连
考查dfs.hosts和dfs.hosts.exclude文件
------------------------------------
1.建立/soft/hadoop/etc/dfs-hosts-include.conf文件
s200
s300
2.建立/soft/hadoop/etc/dfs-hosts-exclude.conf文件
s300
s400
3.编辑配置文件
[hdfs-site.xml]
dfs.hosts=/soft/hadoop/etc/dfs-hosts-include.conf
dfs.hosts.exclude=/soft/hadoop/etc/dfs-hosts-exclude.conf
4.分发hdfs-sits.xml文件到全部节点
5.刷新节点
$>hdfs dfsadmin -refreshNodes ------003的--书中336页
VERSION----------------要升级的问题---------------------------------------[中文]Hadoop权威指南第二版.pdf 这本书里面---------第10章294页左右
--------------------------
1.clusterID=xxx(namenode === Datanode) 临时目录里面的
2.storageID=xxx(DataNode)//
3.cTime:集群建立时间//
4.acl//access control list,访问控制列表
安全模式------------------看图片安全模式.png 【】【只有名称节点才会进入安全模式,不通过名称节点是不会访问数据节点的】【】
-------------
1.namenode启动时,合并p_w_picpath和edit成新的p_w_picpath,并产生新的edit log
2.整个过程出于safe模式下,客户端只能【【【【读取】】】。
3.namenode安全模式操做
$>hdfs dfsadmin -safemode get//查看,获取安全模式状态,老师在s100运行,默认查出来是Safe mode is OFF
$>hdfs dfsadmin -safemode enter//进入安全模式,返回Safe mode is ON
而后就只能读取了,不能写了 hadoop fs -put index.html / 写会失败,读仍是能读下载的
$>hdfs dfsadmin -safemode leave//离开安全模式
$>hdfs dfsadmin -safemode wait//等待--【他退出】
4.手动保存名字空间,查帮助 hdfs dfsadmin --help saveNamespace 老师的目录是~/hadoop/dfs/name/current 看里面的文件保存状况
$>hdfs dfsadmin -saveNamespace 用以前先进入安全模式
【】【】【】
【老师给的问题】--先上传一个文件,而后进入安全模式,而后手动保存名字空间,再看名字的变化
hdfs dfsadmin -report webui下面看到的内容
5.手动保存镜像文件到本地
$>hdfs dfsadmin -fetchImage -----------~/hadoop/dfs/name/current在这个木下执行(不在这个文件下的也同样) hdfs dfsadmin -fetchImage ~/ 到本地
6.保存元数据,保存在{hadoop_home}/logs/
$>hdfs dfsadmin -metasave xxx.metadata -------------------今天讲的都属于hadoop的管理工做
7.start-balancer.sh 也有中止均衡器
启动均衡器,让集群在数据存储上更加平均,提升整个集群的
均衡器,在数据节点之上。保证数据在节点上均衡分配(知道集群变均衡),避免新能上的瓶颈,如今看不到啥效果
8.查看目录的统计信息
$>hadoop fs -count /x/x/x///目录数量,文件数,字节数
9.hdfs fsck / 检查文件的健康状态
50075数据节点的端口号
hadoop文件系统操做,目录默认不能建立快照,要开启目录快照功能,否则直接建立创不了
--------------------
0.开启快照功能,hdfs dfsadmin
$>hdfs dfsadmin -allowSnapshot /user/ubuntu/data
1.快照,snapshot,针对目录. 能够建立多个快照
$>hadoop fs -createSnapshot /user/ubuntu/data snap-1
对哪一个目录建立快照 快照名,名字不加会以虚拟机的时间戳命名快照
建立后能够进入webui看,好比http://s100:50070/dfshealth.html#tab-snapshot
或者命令行查hadoop fs -ls -R /user/ubuntu/data/.snapshot/snap-1 有文件会显示文件 直接hadoop fs -ls -R /查不了的哦。快照至关于给文件作了一个备份
删除快照
hadoop fs -deleteSnapshot /user/ubuntu/data snap-1
重命名快照
hadoop fs -renameSnapshot /user/ubuntu/data snap-1 snap-1-2
追加文件,name.txt里面的文件内容追加到hello.txt里面这样追加到原来的目录 ------不过快照目录里面的文件是不会变化的
hadoop fs -appendToFile name.txt /user/ubuntu/data/hello.txt
禁用目录快照功能,hdfs dfsadmin
$>hdfs dfsadmin -disallowSnapshot /user/ubuntu/data //若是以前这个有快照,就不能快照。要先把快照删除再禁用
回收站---------------看老师的书是英文书308页走哦有,可是我看个人没有找到,搜hadoop fs -expunge找到那个页
-----------------
1.默认是0秒,意味着禁用回收站。
2.设置文件在回收站的驻留时间.-----也是在小红本里面搜那四个默认配置的 13分05秒的时候有讲配置,[core-site.xml]里面还有配置临时目录的 hadoop.tmp.dir=/home/ubuntu/hadoop
[core-site.xml]
fs.trash.interval=1//分钟数计算
老师配置好后是分发给其余机器后重启的,不是刷新节点,能够试一下本身刷新节点
配好后 hadoop fs -lsr /user/ubuntu/.Trash 直接插配好后直接插没有的
删除 hadoop fs -rm /user/ubuntu/data/Hadoop权威指南第二版.pdf
删除后 hadoop fs -lsr /user/ubuntu/.Trash/ 查,是那个hadoop的目录结构查出来了,过程当中查貌似会变成时间的名字,而后一分钟后再去查的话就没有了
要恢复回收站文件
【】【】 hadoop fs -mv /user/ubuntu/.Trash/xx/xx/x daa/
hadoop fs -expunge 这个貌似也是马上删除,不过貌似没用
3.经过shell命令删除的文件,会进入trash
4.每一个用户都有本身的回收站(目录)
$>/user/ubuntu/.Trash
[【【5.编程方式删除不进入回收站,当即删除,若是想编程方式进入回收站,能够调用
moveToTrash()方法.返回false,说明禁用回收站或者已经在站中。】】】
hadoop fs -truncate -w 5 /user/ubuntu/data/hello.txt 好比hello.txt内容是helloworld 截断出来打印的就是 hello了
配额:quota
---------------------
1.目录配额
$>hdfs dfsadmin -setQuota N /dir//N > 0 ,目录配额,1:表示空目录,不能放置任何元素. 若是设置2,/dir下再放一个txt文件的话也就没法继续放文件或目录了。这样这个目录下面就只能放有限的文件,防止目录东西太多文件太大
2.空间配额hdfs dfsadmin -help setSpaceQuota 无论空间配额仍是目录配额都是给文件夹配置的
$>hdfs dfsadmin -setSpaceQuota ---实际 hdfs dfsadmin -setSpaceQuota 20 /user/ubuntu/dataday 20字节 50t就是50tb,5m就是5Mb
若是放了20字节,放了超过他的文件就会报错,The DiskSpace quota of /user/ubuntu is exceeded: quota = 20 B = 20 B but diskspace consumed = 402653184 B = 384 MB
3.清除配额
hdfs dfsadmin 帮助里面有个 clrQuota和clrSpaceQuota
hdfs dfsadmin -clrQuota /user/ubuntu/data
hdfs dfsadmin -clrSpaceQuota /user/ubuntu/
-----------还有hadoop的一些其余命令,看保存的图片------------------------------
hadoop fs -rm -R /user/ubuntu/data/had*
hadoop fs -cat /user/ubuntu/data/hello.txt
hadoop fs -count /user/ubuntu/data/
目录 文件 字节
kan 帮助
hadoop fs -help count
更多指令能够看doc file:///D:/大数据软件/hadoop-2.7.2/share/doc/hadoop/hadoop-project-dist/hadoop-common/FileSystemShell.html
-------------test.sh-------------
#老师在s500测试的 1.先测试脚本是否能正常上传 2.而后去s100的命令行里面启动安全模式 3.而后s500里面脚本里面里面等待的命令再测,还有上传的文件路径看本身的状况定哦
#!/bin/bash
echo starting put file
hdfs dfsadmin -safemode wait
hadoop fs -put ~/downloads/hadoop-2.7.2.tar.gz /user/ubuntu/data/
echo put over