文章目录
简介
hadoop简介
hdfs文件系统简介
-
HDFS属于Master与Slave结构。一个集群中只有一个NameNode,可以有多个DataNode。
-
HDFS存储机制保存了多个副本,当写入1T文件时,我们需要3T的存储,3T的网络流量带宽;系统提供容错机制,副本丢失或宕机可自动恢复,保证系统高可用性。
-
HDFS默认会将文件分割成block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,会导致内存的负担很重。
-
HDFS采用的是一次写入多次读取的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。
HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。 -
HDFS容错机制:
节点失败监测机制:DN每隔3秒向NN发送心跳信号,10分钟收不到,认为DN宕机。
通信故障监测机制:只要发送了数据,接收方就会返回确认码。
数据错误监测机制:在传输数据时,同时会发送总和校验码。
单点
官网:http://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-common/SingleCluster.html
useradd hadoop
passwd hadoop
方便后面免密
su - hadoop
pwd /home/hadoop
tar zxf jdk-8u181-linux-x64.tar.gz
ln -s jdk1.8.0_181/ java
tar zxf hadoop-3.2.1.tar.gz
ln -s hadoop-3.2.1 hadoop
cd hadoop/etc/hadoop/
vim hadoop-env.sh
53 export JAVA_HOME=/home/hadoop/java
58 export HADOOP_HOME=/home/hadoop/hadoop
cd /home/hadoop/hadoop
bin/hadoop
测试
mkdir input
伪分布
vim etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
vim etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
ssh-keygen
设置无密码ssh
ssh-copy-id localhost
ssh localhost
bin/hdfs namenode -format
格式化文件系统
sbin/start-dfs.sh
启动NameNode守护进程和DataNode守护进程
浏览器中图形化管理界面:http://172.25.253.1:9870/
创建MapReduce作业所需的HDFS目录
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hadoop
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
将指定的文件复制到分布式文件系统中
测试
分布式hadoop
服务搭建
node1
yum install -y nfs-utils.x86_64
vim /etc/exports
systemctl start nfs
showmount -e
node2.3
yum install -y nfs-utils.x86_64
mount 172.25.253.1:/home/hadoop/ /home/hadoop
node1
sbin/stop-dfs.sh
cd /home/hadoop/hadoop
vim etc/hadoop/core-site.xml
在/etc/hosts中做好本地解析
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
</configuration>
vim etc/hadoop/workers
node2
node3
vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
rm -fr /tmp/*
删除之前伪分布式目录
bin/hdfs namenode -format
sbin/start-dfs.sh
在其他节点上jps看到DataNode
bin/hdfs dfsadmin -report
可看到全部节点
测试
可在任意主机测试
dd if=/dev/zero of=bigfile bs=1M count=200
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hadoop
bin/hdfs dfsadmin -report
bin/hdfs dfs -put bigfile
热添加
yum install -y nfs-utils.x86_64
mount 172.25.253.1:/home/hadoop
/home/hadoop
useradd hadoop
su - hadoop
cd hadoop
vim etc/hadoop/workers
bin/hdfs --daemon start datanode
YARN管理器
http://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-common/SingleCluster.html
按以下方式配置参数:
vim etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</</