Hadoop 之 集群安装(HDFSYARN)

Posted 家在水草丰茂的地方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop 之 集群安装(HDFSYARN)相关的知识,希望对你有一定的参考价值。

简介:

  • Hadoop集群包括两个集群:HDFS集群和YARN集群。
  • 两个集群逻辑上分离、通常物理上在一起。

一:相关文档

  1. Hadoop安装包下载地址:

    Index of /dist/hadoop/common

  2. 安装使用 VMware 创建三台虚拟机。
  3. 三台虚拟机做好免密登录。(参考文档:

    SSH设置免密登录(centos7)_ssh-keygen -t dsa -p '' -f ~/.ssh/id_dsa_潮听哥的博客-CSDN博客

  4. 修改三台主机hostname(参考文档:

    修改主机hostname,推荐第二种_修改hostname_有欲无求的博客-CSDN博客

    )。
  5. 安装jdk。(参考文档:

    centos7 安装jdk详细教程_centos7安装jdk_奇漠的博客-CSDN博客

  6. 每分钟执行一次时间同步 crontab -e ; */1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com

二:开始安装

  1. 修改主机名(3台机器)
    vim /etc/hostname
    
    输入node1或node2或node3
  2. Hosts映射(3台机器)
    vim /etc/hosts
    
    192.168.106.3 node1
    192.168.106.4 node2
    192.168.106.5 node3
  3. 防火墙关闭(3台机器)
    systemctl stop firewalld.service      #关闭防火墙
    systemctl disable firewalld.service   #禁止防火墙开机自启
  4. ssh免密登录
    注意:第一轮一次执行完后,再执行第二轮
    
    node1
    第一轮:
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    scp ~/.ssh/id_dsa.pub root@node2:/home/id_dsa_node1.pub
    scp ~/.ssh/id_dsa.pub root@node3:/home/id_dsa_node1.pub
    第二轮:
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node2.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node3.pub >> ~/.ssh/authorized_keys
    
    
    node2
    第一轮:
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    scp ~/.ssh/id_dsa.pub root@node1:/home/id_dsa_node2.pub
    scp ~/.ssh/id_dsa.pub root@node3:/home/id_dsa_node2.pub
    第二轮:
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node1.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node3.pub >> ~/.ssh/authorized_keys
    
    
    node3
    第一轮:
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    scp ~/.ssh/id_dsa.pub root@node1:/home/id_dsa_node3.pub
    scp ~/.ssh/id_dsa.pub root@node2:/home/id_dsa_node3.pub
    第二轮:
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node2.pub >> ~/.ssh/authorized_keys
    cat /home/id_dsa_node1.pub >> ~/.ssh/authorized_keys
  5. 集群时间同步(3台机器)
    每分钟执行一次时间同步 
    crontab -e  
    
    */1 * * * *  /usr/sbin/ntpdate ntp1.aliyun.com
  6. JDK安装(3台机器)参考上面文档
  7. 下载编译好的hadoop安装包 hadoop-3.3.4.tar.gz 并解压
    tar -zxf hadoop-3.3.4.tar.gz
    mv hadoop-3.3.4 /usr/local
  8. hadoop目录介绍
  9. 修改配置文件  hadoop-env.sh
    vim /usr/local/hadoop-3.3.4/etc/hadoop/hadoop-env.sh
    
    文档末尾添加
    
    export JAVA_HOME=/usr/local/java
    
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    
    
  10. 修改配置文件  core-site.xml
    vim /usr/local/hadoop-3.3.4/etc/hadoop/core-site.xml
    
    
    <configuration>
    
    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
    	<name>fs.defaultFS</name>
    	<value>hdfs://node1:8020</value>
    </property>
    
    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
    	<name>hadoop.tmp.dir</name>
    	<value>/usr/local/data/hadoop-3.3.4</value>
    </property>
    
    <!-- 设置HDFS web UI用户身份 -->
    <property>
    	<name>hadoop.http.staticuser.user</name>
    	<value>root</value>
    </property>
    
    <!-- 整合hive 用户代理设置 -->
    <property>
    	<name>hadoop.proxyuser.root.hosts</name>
    	<value>*</value>
    </property>
    
    <property>
    	<name>hadoop.proxyuser.root.groups</name>
    	<value>*</value>
    </property>
    
    <!-- 文件系统垃圾桶保存时间 -->
    <property>
    	<name>fs.trash.interval</name>
    	<value>1440</value>
    </property>
    </configuration>
    
  11. 修改配置文件  hdfs-site.xml
    vim /usr/local/hadoop-3.3.4/etc/hadoop/hdfs-site.xml
    
    <configuration>
    
    <!-- 设置SNN进程运行机器位置信息 -->
    <property>
    	<name>dfs.namenode.secondary.http-address</name>
    	<value>node2:9868</value>
    </property>
    
    </configuration>
    
  12. 修改配置文件  mapred-site.xml
    vim /usr/local/hadoop-3.3.4/etc/hadoop/mapred-site.xml
    
    <configuration>
    
    <!-- 设置MR程序默认运行模式:yarn集群模式 local本地模式  -->
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
    
    <!-- MR程序历史服务地址 -->
    <property>
            <name>mapreduce.jobhistory.address</name>
            <value>node1:10020</value>
    </property>
    
    <!-- MR程序历史服务器web端地址 -->
    <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>node1:19888</value>
    </property>
    
    <property>
            <name>yarn.app.mapreduce.am.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
    
    <property>
            <name>mapreduce.map.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
    
    <property>
            <name>mapreduce.reduce.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
    
    </configuration>
  13. 修改配置文件  yarn-site.xml
    vim /usr/local/hadoop-3.3.4/etc/hadoop/yarn-site.xml
    
    <configuration>
    
    <!-- 设置YARN集群上主角色运行机器位置 -->
    <property>
    	<name>yarn.resourcemanager.hostname</name>
    	<value>node1</value>
    </property>
    
    <property>
    	<name>yarn.nodemanager.aux-services</name>
    	<value>mapreduce_shuffle</value>
    </property>
    
    <!-- 是否将对容器实施物理内存限制 -->
    <property>
    	<name>yarn.nodemanager.pmem-check-enabled</name>
    	<value>false</value>
    </property>
    
    <!-- 是否将对容器实施虚拟内存限制 -->
    <property>
    	<name>yarn.nodemanager.vmem-check-enabled</name>
    	<value>false</value>
    </property>
    
    <!-- 开启日志聚集 -->
    <property>
    	<name>yarn.log-aggregation-enable</name>
    	<value>true</value>
    </property>
    
    <!-- 设置yarn历史服务器地址 -->
    <property>
    	<name>yarn.log.server.url</name>
    	<value>http://node1:19888/jobhistory/logs</value>
    </property>
    
    <!-- 历史日志保存的时间 7天 -->
    <property>
    	<name>yarn.log-aggregation-retain-seconds</name>
    	<value>604800</value>
    </property>
    
    </configuration>
    
  14. 修改配置文件 workers
    vim /usr/local/hadoop-3.3.4/etc/hadoop/workers
    
    node1
    node2
    node3
    
    

  15. 分发同步hadoop安装包
    scp -r /usr/local/hadoop-3.3.4 root@node2:/usr/local/
    scp -r /usr/local/hadoop-3.3.4 root@node3:/usr/local/

  16. 讲hadoop添加到环境变量(3台机器)
    vim /etc/profile
    
    export HADOOP_HOME=/usr/local/hadoop-3.3.4
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    source /etc/profile
    
    ---同步给另外两台机器
    scp /etc/profile node2:/etc/
    scp /etc/profile node3:/etc/

  17. NameNode format (格式化操作)
    *. 首次启动HDFS时,必须对其进行格式化操作。
    *. format 只能进行一次,后续不再需要。
    *. format 本质上是初始化工作,进行HDFS清理和准备工作。
    *. 执行命令: hdfs namenode -format
    
    注意:如果多次format除了造成数据丢失外,还会导致hdfs集群主从角色之间互不识别。通过删除所有机器hadoop.tmp.dir目录重新format解决。

     出现successfully fromatted,表示格式化成功!

  18. 集群启动
    *. HDFS集群
        start-dfs.sh
        stop-dfs.sh
    
    *. YARN集群
        start-yarn.sh
        stop-yarn.sh
    
    *. HDFS集群
        start-all.sh
        stop-all.sh
    
    

  19. 确定启动是否成功
  20. Hadoop 启动日志路径:/usr/local/hadoop-3.3.4/logs
  21. HDFS 集群地址:http://node1:9870/
  22.  YARN 集群地址:http://node1:8088/cluster
  23. 至此hadoop hdfs、yarn集群已经搭建完成!

三:HDFS初体验

shell命令操作
创建目录:hadoop fs -mkdir /test 
上传文件:hadoop fs -put aaa.txt /test
查看目录:hadoop fs -ls /

四:MapReduce+YARN 初体验

  • 执行hadoop官方自带的MapReduce案例,评估圆周率π的值
    cd /usr/local/hadoop-3.3.4/share/hadoop/mapreduce
    hadoop jar hadoop-mapreduce-examples-3.3.4.jar pi 2 4

以上是关于Hadoop 之 集群安装(HDFSYARN)的主要内容,如果未能解决你的问题,请参考以下文章

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

大数据生态课堂纪要

Hadoop系列之:使用Cloudera部署,管理Hadoop集群

Hadoop 之 HA

Flink实战之StreamingFileSink如何写数据到其它HA的Hadoop集群

Hadoop高可用(HA)集群部署