hadoop第三天

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

相关文章
相关标签/搜索