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
其它
单独启停