HDFS架构:

知识点:
1.X 和2.X区别:
单点故障:
1.X主机挂掉就完了,2.X主机挂掉会自动从datanode中选出Namenode(热备)secondarynamenode(冷备)
yarn架构:
后来拆分为MapReduce(计算)和yarn两个部分。
Yarn架构:


知识点:
1.只有热备没有冷备
配置流程:
1.解压文件:

2.生成密钥

3.将密钥拷贝一份

4.到Hadoop/etc/hadoop文件夹下开始配置:

配置core-site.xml,注意地址和目录,
此处需要创建两个目录 data 和log,粘贴到configurtion标签中

<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata166:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<!-- <property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.8.4/data/tmp</value>
</property> -->
<!-- 实际配置中使用了下面的地址:-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.8.4/tmp/data/tmp</value>
</property>
</configuration>
配置hdfs-site.xml文件,注意修改冗余数和地址
<!--数据冗余数-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata166:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
设置yarn-site.xml
<!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata166</value> </property> <!-- 日志聚集功能使能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天(秒) --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
配置mapred-site.xml的相关配置
<!-- 指定mr运行在yarn上--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--历史服务器的地址--> <property> <name>mapreduce.jobhistory.address</name> <value>bigdata166:10020</value> </property> <!--历史服务器页面的地址--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>bigdata166:19888</value> </property>
配置三个文件的本地JAVA_HOME路径:hadoop-env.sh yarn-env.sh mapred-env.sh
yarnenv和mapred需要清除注释,只需配置hadoop,其它两个的可以不写,写上最好



# 三个文件均可在最后一行加入此行(1804用此语句) export JAVA_HOME=/opt/module/jdk1.8.0_144
Slaves内部改成bigdata166 (本地单机模式只需要配置一台)

配置环境变量:

export HADOOP_HOME=/opt/module/hadoop-2.8.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
最后执行 source /etc/profile
格式化并生成目录:
./hdfs namenode -format


格式化原因:
NameNode主要被用来管理整个分布式文件系统的命名空间(实际上就是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以,NameNode会持久化这些数据(保存到本地的文件系统中)。对于第一次使用HDFS,在启动NameNode时,需要先执行-format命令,然后才能正常启动NameNode节点的服务。
格式化细节问题:
在NameNode节点上,有两个最重要的路径,分别被用来存储元数据信息和操作日志,而这两个路径来自于配置文件,它们对应的属性分别是dfs.name.dir和dfs.name.edits.dir,同时,它们默认的路径均是/tmp/hadoop/dfs/name。格式化时,NameNode会清空两个目录下的所有文件,之后,会在目录dfs.name.dir下创建文件
hadoop.tmp.dir 这个配置,会让dfs.name.dir和dfs.name.edits.dir会让两个目录的文件生成在一个目录里
启动所有服务:


搭建成功,可使用浏览器访问:

关闭 sbin/stop-all.sh 然后拍摄快照
其它命令:

完全分布式搭建
修改网卡地址并重启网卡:


重启网卡 service newtork restart

设置主机名: hostnamectl set-hostname bigdata167
配置hosts vi /etc/hosts 添加配置地址 然后reboot
重新生成钥匙:

拷贝钥匙 ssh-copy-id bigdata166 (因为配置了IP所以可以输入密码拷贝) 测试成功

配置hadoop相关配置
修改secondarynamenode的地址为167 hdfs-site.xml文件

同级目录下修改slaves文件


重新格式化(删除原数据)
可以查看到以下元数据

删除data目录

删除logs目录

交给主节点完成命令 重新格式化(只在主节点) 此次将角色分配到每一个节点当中

启动hdfs

查看配置完成


启动yarn


yarn结构:

配置环境变量:/opt/module/hadoop-2.8.4



停止 stop-all.sh

其它
单独启停


