1. 从jar包中提取默认配置
  • core-default.xml
    hadoop-common-< ver >.jar
  • hdfs-default.xml
    hadoop-hdfs-< ver >.jar
  • mapred-default.xml
    hadoop-mapreduce-client-core-< ver >.jar
  • yarn-default.xml
    hadoop-yarn-common-< ver >.jar
  1. master node就是name node
    master node会通过ssh将命令发送到其他data node。
  2. 分离启动SecondaryNameNode
    配置文件hdfs-site.xml,在node3上启动SecondaryNameNode进程。
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http.address</name>
<value>node3:50090</value>
</property>
</configuration>

将hdfs-site.xml从master node发送到其他所有data node。

  1. 重启hadoop需要清理
stop-all.sh --config /path/to/hadoop_cluster
删除所有节点的/tmp/hadoop-$USER
删除所有节点的$HADOOP_HOME/logs
  1. 修改hadoop默认的本地目录
    core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
</property>
</configuration>
  1. HDFS设计

适用于

  • 超大文件
  • streaming访问
  • 商业硬件

不适用于

  • 低延迟访问
  • 大量小文件
  • 多用户写入多次修改


默认128M
查看block的状态

hadoop fsck

配置文件hdfs-site.xml(源码中为hdfs-default.xml)

<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>默认单位byte,
k(kilo),m(mega),g(giga),t(tera),p(peta),e(exa),
如:128k,30m,40g
且大小写不敏感
</description>
</property>
  • namenode
    镜像文件+编辑日志,存放于本地磁盘,以及数据节点信息,不含block信息。block信息在集群启动时由datanode重建。
  • datanode
    work节点,存储检索block,定期向namenode发送block list。

​向HDFS put文件在namenode和datanode上都时可以的。​

  1. 启动的进程
  • hdfs
    NameNode
    SecondaryNode
    DataNode
    启动脚本:start-all.sh(start-dfs.sh)
  • yarn (资源调度框架)
    ResourceManager
    DataManager
    启动脚本:start-yarn.sh
  • hadoop-daemon.sh
    hdfs.sh
    yarn.sh
# 在NameNode节点上执行下述命令则效果是启动所有节点的DataNode进程
# 在DataNode节点上执行下述命令则效果是只启动该节点的DataNode进程
hadoop-daemon.sh start datanode

#当然还可以如下使用来单独启动相应的进程
  1. ubuntu设置静态IP
  • 在Vmware虚拟机中通过VMnet8的NAT模式网卡一块网卡即可同时实现本地访问及上网。
  • 获得VMnet8网卡的网关及掩码
  • Hadoop学习笔记-3_xml


  • Hadoop学习笔记-3_xml_02


  • Hadoop学习笔记-3_hadoop_03

  • 获得可用IP(DHCP地址池)
  • Hadoop学习笔记-3_hadoop_04


  • Hadoop学习笔记-3_hdfs_05

  • 编辑ubuntu的/etc/network/interfaces文件
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# iface eth0 inet dhcp
$ sudo

虚拟机静态配置IP后将不向Vmware发送DHCP offer报文,但可以被本地访问且可以上网。

  1. ubuntu切换到字符界面
sudo vim /etc/default/grub
-------------------------------------
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_TERMINAL=console
-------------------------------------
sudo update-grub
sudo reboot
# 进入图形界面
  1. 获得配置信息
hdfs getconf -namenodes
hdfs getconf -secondarynamenodes
  1. 四大模块及配置文件
  • common
    hadoop-common-< ver >.jar
    core-site.xml
    core-default.xml
  • hdfs
    hdfs-site.xml
    hdfs-default.xml
  • mapreduce
    mapred-site.xml
    mapred-default.xml
  • yarn
    yarn-site.xml
    yarn-default.xml
  1. HDFS文件系统的操作命令
hdfs dfs <=>