【】【】【】【】【【【【集群只有在启动的时候才读取配置文件】】】】】】【【【【【【【【【【集群只有在启动的时候才读取配置文件】】】】】】只有名称节点由镜像,名称节点存放的是块信息,块经来后会向块索取名称列表


hosts的映射关系千万不要弄错,不然启动后,datanode也会有问题--------------初始化没问题,但是进入webui看datanode没有数据呢。


之前我配了 127.0.0.1 s100  -------------------------这个要删除,用下面那个。而且把这个自回环的配置删除后win7配置host映射后是能正常用浏览器s100:8088访问的

后面又配了 192.168.2.116 s100


】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】】

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


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页


老师是有停止集群的,然后重启的-------【【【【【【【【【【集群只有在启动的时候才读取配置文件】】】】】】----------实际是上面一刷新节点以后再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