hc6538 发表于 2018-10-29 12:59:00

hadoop第三天

  【】【】【】【】【【【【集群只有在启动的时候才读取配置文件】】】】】】【【【【【【【【【【集群只有在启动的时候才读取配置文件】】】】】】只有名称节点由镜像,名称节点存放的是块信息,块经来后会向块索取名称列表
  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.编辑配置文件----配置的是路径
  
  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_clusterstart 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 编辑菜单 --> 虚拟网络编辑器 --> 打开窗口 --> 选中vmnet8虚拟网卡 --> nat设置 --> 查看网关(192.168.238.2)
  2.查看可用的ip网段
  vmware虚拟机 --> 编辑菜单 --> 虚拟网络编辑器 --> 打开窗口 --> 选中vmnet8虚拟网卡 --> DHCP设置 --> 查看网段
  3.挑选一个可用的ip,给当前的客户机来设置
  4.配置ubuntu的静态ip
  a.sudo nano /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文件
  --------------------
  
  # 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.编辑配置文件
  
  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启动时,合并image和edit成新的image,并产生新的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 -reportwebui下面看到的内容
  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秒的时候有讲配置,里面还有配置临时目录的hadoop.tmp.dir=/home/ubuntu/hadoop
  
  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

页: [1]
查看完整版本: hadoop第三天