hadoop3.1.3安装

打印 上一主题 下一主题

主题 883|帖子 883|积分 2649

1.下载

Hadoop下载地址:点击此处
下载完成后把hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹(自界说目录)下面
1.1解压文件

  1. # 进入到安装目录中
  2. cd /opt/software/
  3. # 解压该文件
  4. tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
  5. # 查看是否解压成功
  6. ls /opt/module/
  7. # 获取安装路径
  8. pwd
  9. /opt/module/hadoop-3.1.3
复制代码
1.2 添加hadoop情况变量

  1. # 创建环境变量文件
  2. sudo vim /etc/profile.d/my_env.sh
  3. # 在my_env.sh文件末尾添加如下内容:(shift+g)
  4. #HADOOP_HOME
  5. export HADOOP_HOME=/opt/module/hadoop-3.1.3
  6. export PATH=$PATH:$HADOOP_HOME/bin
  7. export PATH=$PATH:$HADOOP_HOME/sbin
  8. # 保存后推出
  9. :wq
  10. # 让修改后的文件生效
  11. source /etc/profile
  12. # 测试是否安装成功
  13. hadoop version
  14. Hadoop 3.1.3
  15. # 如果hadoop命令不能用可以重启试试
  16. sudo reboot
复制代码
1.3 hadoop各个目录介绍

(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操纵的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或制止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
2 Hadoop集群安装

Hadoop运行模式包括:本地模式伪分布式模式以及完全分布式模式
Hadoop官方网站:添加链接形貌
本章主要介绍完全分布式模式安装,也就是集群安装。
2.1 情况预备

预备3台客户机(关闭防火墙、静态ip、主机名称)
安装JDK并配置情况便变量
安装Hadoop并配置情况变量
2.2 编写分发脚本

  1. #!/bin/bash
  2. #1. 判断参数个数
  3. if [ $# -lt 1 ]
  4. then
  5.   echo Not Enough Arguement!
  6.   exit;
  7. fi
  8. #2. 遍历集群所有机器
  9. for host in host1 host2 host3
  10. do
  11.   echo ====================  $host  ====================
  12.   #3. 遍历所有目录,挨个发送
  13.   for file in $@
  14.   do
  15.     #4. 判断文件是否存在
  16.     if [ -e $file ]
  17.     then
  18.       #5. 获取父目录
  19.       pdir=$(cd -P $(dirname $file); pwd)
  20.       #6. 获取当前文件的名称
  21.       fname=$(basename $file)
  22.       ssh $host "mkdir -p $pdir"
  23.       rsync -av $pdir/$fname $host:$pdir
  24.     else
  25.       echo $file does not exists!
  26.     fi
  27.   done
  28. done
复制代码
  1. # 添加可执行权限
  2. chmod +x xsync
  3. # 将脚本复制到/bin中,以便全局调用
  4. sudo cp xsync /bin/
复制代码
2.3 SSH无密登录配置

  1. # 生成公钥和私钥
  2. ssh-keygen -t rsa
  3. 然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
  4. # 使用ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户中
  5. ssh-copy-id host1
  6. ssh-copy-id host2
  7. ssh-copy-id host3
  8. # 需要给自己分一次 然后在其他机器上执行一遍同样的步骤
复制代码
2.4 集群配置

2.4.1集群摆设规划

  1. **注意**:NameNode和SecondaryNameNode不要安装在同一台服务器
  2. **注意**:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
复制代码
host1host2host3HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManager 2.4.2 集群配置

配置core-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4.         <!-- 指定NameNode的地址 -->
  5.     <property>
  6.         <name>fs.defaultFS</name>
  7.         <value>hdfs://host1: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. <!-- 配置HDFS网页登录使用的静态用户为hadoop-->
  15.     <property>
  16.         <name>hadoop.http.staticuser.user</name>
  17.         <value>hadoop</value>
  18. </property>
  19. <!-- 配置该hadoop(superUser)允许通过代理访问的主机节点 -->
  20.     <property>
  21.         <name>hadoop.proxyuser.hadoop.hosts</name>
  22.         <value>*</value>
  23. </property>
  24. <!-- 配置该hadoop(superUser)允许通过代理用户所属组 -->
  25.     <property>
  26.         <name>hadoop.proxyuser.hadoop.groups</name>
  27.         <value>*</value>
  28. </property>
  29. <!-- 配置该hadoop(superUser)允许通过代理的用户-->
  30.     <property>
  31.         <name>hadoop.proxyuser.hadoop.groups</name>
  32.         <value>*</value>
  33. </property>
  34. </configuration>
复制代码
配置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>host1:9870</value>
  8.     </property>
  9.         <!-- 2nn web端访问地址-->
  10.     <property>
  11.         <name>dfs.namenode.secondary.http-address</name>
  12.         <value>host3:9868</value>
  13.     </property>
  14. </configuration>
复制代码
配置yarn-site.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4.         <!-- 指定MR走shuffle -->
  5.     <property>
  6.         <name>yarn.nodemanager.aux-services</name>
  7.         <value>mapreduce_shuffle</value>
  8. </property>
  9. <!-- 指定ResourceManager的地址-->
  10.     <property>
  11.         <name>yarn.resourcemanager.hostname</name>
  12.         <value>host2</value>
  13. </property>
  14. <!-- 环境变量的继承 -->
  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容器允许分配的最大最小内存 -->
  20.     <property>
  21.         <name>yarn.scheduler.minimum-allocation-mb</name>
  22.         <value>512</value>
  23.     </property>
  24.     <property>
  25.         <name>yarn.scheduler.maximum-allocation-mb</name>
  26.         <value>4096</value>
  27. </property>
  28. <!-- yarn容器允许管理的物理内存大小 -->
  29.     <property>
  30.         <name>yarn.nodemanager.resource.memory-mb</name>
  31.         <value>4096</value>
  32. </property>
  33. <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
  34.     <property>
  35.         <name>yarn.nodemanager.pmem-check-enabled</name>
  36.         <value>false</value>
  37.     </property>
  38.     <property>
  39.         <name>yarn.nodemanager.vmem-check-enabled</name>
  40.         <value>false</value>
  41.     </property>
  42. </configuration>
复制代码
配置mapred-site.xml

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

  1. # 在底部增加以下内容:
  2. export HDFS_NAMENODE_USER=hadoop
  3. export HDFS_DATANODE_USER=hadoop
  4. export HDFS_SECONDARYNAMENODE_USER=hadoop
  5. export YARN_RESOURCEMANAGER_USER=hadoop
  6. export YARN_NODEMANAGER_USER=hadoop
  7. # 修改以下配置
  8. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  9. export JAVA_HOME=/opt/module/jdk-1.8.0
复制代码
2.4.3分发配置文件

  1. xsync /opt/module/hadoop-3.1.3/etc/hadoop/
复制代码
2.4.4 配置workers

  1. vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
  2. # 插入一下内容
  3. host1
  4. host2
  5. host3
  6. # 分发配置文件
  7. xsync /opt/module/hadoop-3.1.3/etc
复制代码
2.5 启动集群

如果集群是第一次启动,需要在host1节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,肯定要先制止namenode和datanode进程,而且要删除所有机器的data和logs目录,然后再进行格式化。)
  1. hdfs namenode -format
  2. # 启动HDFS
  3. sbin/start-dfs.sh
  4. # 在配置了ResourceManager的节点(host2)启动YARN
  5. sbin/start-yarn.sh
复制代码
2.5.1 查看web端

HDFS:http://host2:9870
YARN:http://host3:8088
需要在本机中配置hosts,或者输入ip地址。
2.6 关闭集群

2.6.1 各个服务组件逐一启动/制止

  1. # 分别启动/停止HDFS组件
  2. hdfs --daemon start/stop namenode/datanode/secondarynamenode
  3. # 启动/停止YARN
  4. yarn --daemon start/stop  resourcemanager/nodemanager
复制代码
2.6.2 各个模块分开启动/制止(配置ssh是前提)常用

  1. # 整体启动/停止HDFS
  2. start-dfs.sh/stop-dfs.sh
  3. # 整体启动/停止YARN
  4. start-yarn.sh/stop-yarn.sh
复制代码
2.6.3 集群启停脚本

  1. # hadoop集群启停脚本(包含hdfs,yarn,historyserver):myhadoop.sh
  2. #!/bin/bash
  3. if [ $# -lt 1 ]
  4. then
  5.     echo "No Args Input..."
  6.     exit ;
  7. fi
  8. case $1 in
  9. "start")
  10.         echo " =================== 启动 hadoop集群 ==================="
  11.         echo " --------------- 启动 hdfs ---------------"
  12.         ssh host1 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
  13.         echo " --------------- 启动 yarn ---------------"
  14.         ssh host2 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
  15.         echo " --------------- 启动 historyserver ---------------"
  16.         ssh host3 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
  17. ;;
  18. "stop")
  19.         echo " =================== 关闭 hadoop集群 ==================="
  20.         echo " --------------- 关闭 historyserver ---------------"
  21.         ssh host1 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
  22.         echo " --------------- 关闭 yarn ---------------"
  23.         ssh host2 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
  24.         echo " --------------- 关闭 hdfs ---------------"
  25.         ssh host3 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
  26. ;;
  27. *)
  28.     echo "Input Args Error..."
  29. ;;
  30. esac
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表