3、hadoop集群搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_41685388/article/details/102644443

hadoop集群搭建前期准备:https://blog.csdn.net/weixin_41685388/article/details/102639751

1、集群搭建

集群分类:

单节点:

  • 在一个节点上运行作业

伪分布式集群:

  • 在一个节点里面启动了多个进程来模拟这种分布式的操作,只需要一个节点

完全分布式集群:

  • 将进程完全分布到不同节点里去运行

高可用集群:

联邦集群:

2、完全分布式集群搭建:

  •  1.下载hadoop软件包http://hadoop.apache.org/

  •      https://www.apache.org/dist/hadoop/common/

  • 2.上传到服务器

  •     在hadoop01的编辑器上alt + p 打开sftp,将压缩包hadoop-centos-6.7.tar.gz拖入hadoop01这台机上即可

  • 3.解包


  •  /opt/hadoop_2_7_7/      #解包目录,在/opt目录下创建sudo mkdir hadoop2x子目录

  •    注意配置当前用户的高级权限:vi /etc/sudoers  (hadoop    ALL=(ALL)       ALL),

  •    这里我们在上一节准备工作时已经做了,没做的需要去配置,然后执行命令:

           tar -zxvf hadoop-2.7.7-centos-6.7.tar.gz -C /opt/hadoop2x


  • 以上解包后,因为/opt是在root用户权限下执行的,所以操作时很多时候需要加sudo才能执行,不妨删除hadoop2x/,直接解压到用户自己的家目录下cd /home/hadoop执行 tar -zxvf hadoop-2.7.7-centos-6.7.tar.gz

  • 4.了解目录结果

  • [hadoop@hadoop01 ~]$ cd /opt/hadoop2x/
    [hadoop@hadoop01 hadoop2x]$ ll
    total 4
    drwxr-xr-x. 9 root root 4096 Oct 30  2018 hadoop-2.7.7
    [hadoop@hadoop01 hadoop2x]$ cd ./hadoop-2.7.7
    [hadoop@hadoop01 hadoop-2.7.7]$ ll
    total 136
    drwxr-xr-x. 2 root root  4096 Oct 30  2018 bin
    drwxr-xr-x. 3 root root  4096 Oct 30  2018 etc
    drwxr-xr-x. 2 root root  4096 Oct 30  2018 include
    drwxr-xr-x. 3 root root  4096 Oct 30  2018 lib
    drwxr-xr-x. 2 root root  4096 Oct 30  2018 libexec
    -rw-r--r--. 1 root root 86424 Oct 30  2018 LICENSE.txt
    -rw-r--r--. 1 root root 14978 Oct 30  2018 NOTICE.txt
    -rw-r--r--. 1 root root  1366 Oct 30  2018 README.txt
    drwxr-xr-x. 2 root root  4096 Oct 30  2018 sbin
    drwxr-xr-x. 4 root root  4096 Oct 30  2018 share
    
    #bin: 可执行文件(操作命令 hdfs...)
    #sbin:  可执行文件(集群启动关闭,负载均衡...)
    #etc: 配置文件
    #share: 共享文件(common/hdfs/mapreduce等jar)

    5.进程规划

6.配置


  • 配置前案例:以下内容先只对hadoop01机器操作(单节点模式),并且是安照 /opt/hadoop2x/解包目录下操作的。

  • vim hadoop-env.sh     #整个hadoop的环境(cd /opt/hadoop2x/hadoop/hadoop-2.7.7/hadoop/目录下)

    整个hadoop的环境,hadoop进程是jvm进程,配置jdk的环境变量
    
    export JAVA_HOME=/opt/jdk1.8.0_144
    ​
    运行一个mr示例:
    cd /opt/hadoop2x/hadoop-2.7.7/   #切换到解压包的文件夹下
    sudo mkdir input_test    #新建一个用于测试的文件夹
    cd input_test/      #切换到input_test/目录
    sudo vim wordcount.txt  #创建一个新的文件,并写入一些单词,并且出现重复单词
    cd ..     #切换到上层hadoop-2.7.7/目录下
    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar #查看jar有哪些可执行的操作
    sudo bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input_test/ output_test 
    #wordcount单词计数统计,统计input_test/文件夹下面的内容,放到output_test文件目录下去
    cd output_test/   #切换到cd output_test/目录下  ll  #查看生成的文件  cat part-r-00000  #查看结果
    

  • 以上操作虽然可以执行,但很多时候需要启动高级用户权限,非常麻烦,所以建议直接解包在当前家目录下,为了不重复配置,将/opt/hadoop2x删除(cd /opt目录下执行sudo rm -rf hadoop2x),cd /home/hadoop到家目录下执行tar -zxvf hadoop-2.7.7-centos-6.7.tar.gz,

(1)、vim hadoop-env.sh   #整个hadoop的环境(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

  •     整个hadoop的环境,hadoop进程是jvm进程,配置jdk的环境变量
    
        export JAVA_HOME=/opt/jdk1.8.0_144

(2)、vim core-site.xml   #核心位置配置(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

  •       默认配置官网说明地址:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml


           #默认的文件系统,默认值(file:///本地文件系统)
  • #hdfs://ip:port   hdfs集群的入口地址(namenode:客户端的请求和响应)

  • #1.使用分布式的文件系统 #2.namenode所在的节点为hadoop01

  • #3.hdfs集群的访问路径: hdfs://hadoop01:9000

  • <property>

  •    <name>fs.defaultFS</name>

  •    <value>hdfs://hadoop01:9000</value>

  • </property> ​

  • #临时文件的存储目录:

  • <property>

  •    <name>hadoop.tmp.dir</name>

  •    <value>/home/hadoop/hadoopdata</value>

  • </property>

  • (3)、vim hdfs-site.xml   #分布式文件系统配置(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

               默认配置官网说明地址:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

               

  • dfs.replication: 副本数(默认3个副本) #按照默认

  • dfs.blocksize:每个块的大小(1.x:64m, 2.x:128m) #按照默认128兆 ​

  • namenode的元数据存储的目录:

  • <property>

  •    <name>dfs.namenode.name.dir</name>

  •    <value>/home/hadoop/hadoopdata/name</value>

  • </property>

  • datanode的block信息存储的目录:

  •  <property>

  •    <name>dfs.datanode.data.dir</name>

  •    <value>/home/hadoop/hadoopdata/data</value>

  • </property>

  • secondarynamenode的节点配置:

  • <property>

  •    <name>dfs.secondary.http.address</name>

  •    <value>hadoop03:50090</value>

  • </property>

  • (4)、vim mapred-site.xml  #分布式运算编程框架配置(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

  • cp mapred-site.xml.template mapred-site.xml  #由于没有mapred-site.xml文件,先复制一个,再配置

  • mapreduce作业运行的平台配置:vim mapred-site.xml 

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

  • (5)、vim yarn-site.xml  #运算资源调度系统配置(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

  •  
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hdp02</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
  • (6)、vim slaves   #用于配置dn和nm(cd /home/hadoop/hadoop-2.7.7/etc/hadoop目录下 )

  • 主从架构的集群,一主多从。
    namenode/ResourceManager --> master(主)
    datanode/NodeMnager --> slave(从,所以3台机都要配置上)
    hadoop01
    hadoop02
    hadoop03
  • 7.环境变量的配置

sudo vim /etc/profile   #配置环境变量

或者在当前当前用户下配置也可以:

     vim /home/hadoop/.bashrc 或者vim /home/hadoop/.bash_profile

以上三个任选一个位置,如:vim /home/hadoop/.bash_profile

export HADOOP_HOME=/home/hadoop/hadoop-2.7.7

export PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

最后重启一下文件:source /home/hadoop/.bash_profile

8.发送到其他节点

scp -r hadoop-2.7.7 hadoop@hadoop02:~/

scp -r .bash_profile hadoop@hadoop02:~/

scp -r hadoop-2.7.7 hadoop@hadoop03:~/

scp -r .bash_profile hadoop@hadoop03:~/

统一执行:source /home/hadoop/.bash_profile

  • 9.hdfs集群(namenode)格式化

  • 在 HDFS 主节点上执行命令进行初始化 namenode 

  • hdfs namenode -format      # (只能格式化一次)

  • 10.启动集群

  • 1.逐个进程启动
      hadoop-daemon.sh start/stop namenode/datanode/secondarynamenode
      yarn-daemon.sh start/stop ResourceManager/NodeManager
    2.整个集群启动(涉及到通信,ssh免密登录)
      start-dfs.sh/stop-dfs.sh
      start-yarn.sh/stop-yarn.sh  #(必须在rm节点启动)所以这里在hadoop02里启动
    3.全部启动
      start-all.sh/stop-all.sh

  • 注意:如果启动错误,去查看日志

  • 11.成功检测

  • 1.jps  #查看启动进程
    2.利用图形界面
     hdfs: http://hadoop01:50070
     yarn: http://hadoop02:8088
    3.运行任务

  • 在hadoop01机上创建一个文件mkdir input

    在input/目录下vim wordcount.txt 随便写入几行内容,保存并退出

  • hdfs: hdfs dfs -copyFromLocal input/ /   或者hdfs dfs -copyFromLocal input/ hdfs://hadoop01:9000/

  • hdfs dfs -ls / 或者http://hadoop01:50070   #查询一下看是否上传

  • yarn: hadoop jar hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output

  • hdfs dfs -ls / 或者 hdfs dfs -ls  hdfs://hadoop01:9000/   查看输出的内容

  • #wordcount单词计数统计,统计input/文件夹下面的内容,放到output文件目录下去

猜你喜欢

转载自blog.csdn.net/weixin_41685388/article/details/102644443