HDFS分布式文件系统

HDFS 完全分布式
1 整体步骤
  1. 准备工作

  • 修改每台机器主机名(hostname)
  • 修改每台机器/etc/hosts 文件
  • 配置 ssh,实现无密码登录

      2. 配置工作

  • 修改hadoop-env.sh yarn-env.sh 文件
  • 配置 core-site.xml
  • 配置 hdfs-site.xml
  • 配置 mapred-site.xml
  • 配置 yarn-site.xml
  • 配置 slaves 文件
基于三台虚机完成搭建
Hadoop 的安装版本为 2.9.2

2 配置过程详解

2.1 配置前提说明

2.1.1 当前已有环境

这次安装是基于的伪分布式文件系统搭建基础上进行配置。前面我搭建 HDFS只在一台机器上搭建,不知道的可以去看一下Hadoop的安装
  • 三台虚拟机都已经完成的步骤

  • 网络配置
  • 主机名配置
  • 主机域名映射
  • 防火墙和selinux关闭
  • ssh免密
  • 安装JDK
  • node00上完成的配置
  • 配置了hadoop环境变量
  • hdfs配置
2.1.2 准备工作
检查以上配置是否完成
  • 关掉之前的HDFS服务(本教程之前是在node00上配置,此处也在node00上关闭)
stop-dfs.sh

  • 清除之前伪分布式系统留下的数据(node03机器上)
清除 /opt/software/hadoop/hdfs/ 目录下 name data tmp 下的数据
cd /opt/software/hadoop/hdfs/name/
rm -rf current/
cd /opt/software/hadoop/hdfs/data/
rm -rf current/
cd /opt/software/hadoop/hdfs/tmp/
rm -rf dfs/

2.2 hadoop-env.sh
  • 此处无需配置保持配置不变
原来的配置是修改里面的 JAVA_HOME 值和 HADOOP_CONF_DIR 的值,并非新增
配置值
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_CONF_DIR=/opt/software/hadoop/hadoop-2.9.2/etc/hadoop

2.3 yarn-env.sh
此配置是新增 JAVA_HOME 值。
找到 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ ,在这行下添加 JAVA_HOME 配置
cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
vi yarn-env.sh

 

# 添加以下配置
export JAVA_HOME = /usr/local/java/jdk1.8

2.4 core-site.xml

  • 此配置需要把文件系统节点改成node00
  • fs.defaultFS表示指定集群的文件系统类型是分布式文件系统(HDFS),datanode心跳发送到 namenode的地址
  • hadoop.tmp.dir表示hadoop临时文件目录
<property>
<name>fs.defaultFS</name>
<value>hdfs://node00:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop/hdfs/tmp</value>
</property>

 

2.5 hdfs-site.xml
  • dfs.replication原本配置是1,修改为3,三副本策略,表示副本数是3
  • dfs.name.dirdfs.data.dir配置不变
  • dfs.datanode.max.locked.memory配置添加,开启缓存,配置值根据自己机器情况配置
  • dfs.permissions配置添加,值配置false,不开启文件权限
cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/software/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/software/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.datanode.max.locked.memory</name>
<value>65536</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

 

dfs.datanode.max.locked.memory为什么value65536
不一定是 65536 ,需要根据自己机器的实际情况确定
使用 ulimit -l 参数查询,得到的数值是 64 ,表示是 64K 大小
value 是字节数( Byte ),那么 64*1024=65536 Byte
2.5 mapred-site.xml
需要把 mapred-site.xml.template 拷贝成 mapred-site.xml 文件进行配置
configuration 标签中间添加以下配置
mapreduce.framework.name 指定资源分配使用 yarn
<name>mapreduce.framework.name</name>
<value>yarn</value>
2.6 yarn-site.xml
configuration 标签中间添加以下配置
  • yarn.resourcemanager.hostname:yarn相关资源服务器的主机名,使用node00
  • yarn.nodemanager.aux-servicesMapReduce计算相关
  • yarn.nodemanager.vmem-check-enabled 关闭虚拟内存检查
cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

 

2.7 slaves
配置 3 台机器主机名,此配置表示三台机器都作为 DataNode

 

2.8 同步配置信息
node01和node02 上创建 /opt/software 目录
cd /opt/
mkdir software

 

node00 上的配置同步到 node01 node02
使用 scp 命令进行同步
cd /opt/software/
scp -r hadoop/ node01: $PWD
scp -r hadoop/ node02: $PWD
3 启动集群
3.1 格式化
node01 上格式化
hdfs namenode -format
3.2 启动集群
不需要 3 台机器都启动,只需要在 node00 上启动
start-dfs.sh
3.3 查看启动情况
  • node00上查看是否有3个进程启动
  • jpsnode01node02上分别有1个进程
  • 访问web管理台
url http://虚拟主机ip:50070/
3.4 上传文件测试
创建目录
hdfs dfs -mkdir /test

 

 

上传文件
# 上传文件到 node01
cd /opt/
mkdir testData
cd testData/
mkdir hdfs
cd hdfs
rz # 上传 hadoop-2.9.2.tar.gz
# hadoop-2.9.2.tar.gz 上传到分布式文件系统
hdfs dfs -put hadoop-2.9.2.tar.gz /test
文件上传成功以后检查 datanode 节点情况
3.5 配置环境变量
  • 之前只在node00上配置了hadoop环境变量,现在需要在node01node02上添加hadoop环境变
  • node01node02机器的/etc/profile环境变量中添加hadoop配置
vi /etc/profile
export HADOOP_HOME = /usr/local/hadoop/hadoop-2.9.2
export PATH = ${PATH} : ${HADOOP_HOME} /bin: ${HADOOP_HOME} /sbin
  • 添加配置以后记得加载配置文件,使得配置文件生效
source /etc/profile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值