是什么?
分布式系统基础架构


可以做什么?

  1. 海量数据存储
  2. 海量数据分析计算

广义上是?
现在指的是Hadoop生态圈,包括有例如spark等框架

image.png

环境搭建

JDK安装

Hadoop安装

编写集群分发脚本

分发环境变量配置文件

  1. [atguigu@hadoop102 module]$ sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh

SSH无密登录配置

集群配置(下面的配置文件)

配置历史服务器

启动历史服务
mapred —daemon start historyserver

配置日志的聚集

集群时间同步

配置文件:(官网可以查阅)

(1)核心配置文件[core-site.xml]

配置core-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!--指定HDFS中NameNode的地址 -->
  5. <property>
  6. <name>fs.defaultFS</name>
  7. <value>hdfs://hadoop102:9820</value>
  8. </property>
  9. <!--指定Hadoop运行时产生文件的存储目录 -->
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>/opt/module/hadoop-3.1.3/data</value>
  13. </property>
  14. <!-- 通过web界面操作hdfs的权限 -->
  15. <property>
  16. <name>hadoop.http.staticuser.user</name>
  17. <value>atguigu</value>
  18. </property>
  19. <!-- 后面hive的兼容性配置 -->
  20. <property>
  21. <name>hadoop.proxyuser.atguigu.hosts</name>
  22. <value>*</value>
  23. </property>
  24. <property>
  25. <name>hadoop.proxyuser.atguigu.groups</name>
  26. <value>*</value>
  27. </property>
  28. <!-- 配置该atguigu(superUser)允许通过代理的用户-->
  29. <property>
  30. <name>hadoop.proxyuser.atguigu.users</name>
  31. <value>*</value>
  32. </property>
  33. </configuration>

(2)HDFS配置文件[hdfs-site.xml]

配置hdfs-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- nn web端访问地址-->
  5. <property>
  6. <name>dfs.namenode.http-address</name>
  7. <value>hadoop102:9870</value>
  8. </property>
  9. <property>
  10. <name>dfs.namenode.secondary.http-address</name>
  11. <value>hadoop104:9868</value>
  12. </property>
  13. <!-- 测试环境指定HDFS副本的数量1 -->
  14. <property>
  15. <name>dfs.replication</name>
  16. <value>3</value>
  17. </property>
  18. </configuration>

(3)YARN配置文件[yarn-site.xml]

配置yarn-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- Reducer获取数据的方式,指定yarn走shuffle-->
  5. <property>
  6. <name>yarn.nodemanager.aux-services</name>
  7. <value>mapreduce_shuffle</value>
  8. </property>
  9. <!-- 指定YARN的ResourceManager的地址-->
  10. <property>
  11. <name>yarn.resourcemanager.hostname</name>
  12. <value>hadoop103</value>
  13. </property>
  14. <!-- 环境变量通过从NodeManagers的容器继承的环境属性,对于mapreduce应用程序,除了默认值hadoop op_mapred_home应该被添加外。属性值 还有如下-->
  15. <property>
  16. <name>yarn.nodemanager.env-whitelist</name>
  17. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  18. </property>
  19. <!--解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill,生产环境不需要关闭 -->
  20. <property>
  21. <name>yarn.nodemanager.pmem-check-enabled</name>
  22. <value>false</value>
  23. </property>
  24. <property>
  25. <name>yarn.nodemanager.vmem-check-enabled</name>
  26. <value>false</value>
  27. </property>
  28. <!--后面hive的兼容性配置 -->
  29. <!-- yarn容器(container)允许分配的最大最小内存 ,生产环境中默认即可-->
  30. <property>
  31. <name>yarn.scheduler.minimum-allocation-mb</name>
  32. <value>512</value>
  33. </property>
  34. <property>
  35. <name>yarn.scheduler.maximum-allocation-mb</name>
  36. <value>4096</value>
  37. </property>
  38. <!-- yarn容器允许管理的物理内存大小,生产环境中分配所有内存的80% -->
  39. <property>
  40. <name>yarn.nodemanager.resource.memory-mb</name>
  41. <value>4096</value>
  42. </property>
  43. <!-- yarn允许使用的cpu大小,生产环境中分配为最大核数的%80-->
  44. <!-- 默认值为-1,意思是:-->
  45. <property>
  46. <name>yarn.nodemanager.resource.cpu-vcores</name>
  47. <value>2</value>
  48. </property>
  49. </configuration>

(4)MapReduce配置文件[mapred-site.xml]

配置mapred-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- 指定MR运行在Yarn上-->
  5. <property>
  6. <name>mapreduce.framework.name</name>
  7. <value>yarn</value>
  8. </property>
  9. </configuration>

3)在集群上分发配置好的Hadoop配置文件

  1. xsync /opt/module/hadoop-3.1.3/etc/hadoop/

(5)workers(决定群起)

说明:群起命令需要读取这个配置文件,不设置则,则start-dfs.sh群起不会启动105,需要另外启动

  1. vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
  2. 在该文件中增加如下内容:
  3. hadoop102
  4. hadoop103
  5. hadoop104

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件

  1. xsync /opt/module/hadoop-3.1.3/etc