大数据学习之hadoop(完全分布式)

参考:https://blog.csdn.net/hliq5399/article/details/78193113

准备三台虚拟机,并在每台机子上,分别在/etc/hosts里面加入

  192.168.16.103 node1

  192.168.16.188 node2

  192.168.16.189 node3

  192.168.16.45 mysql

服务器功能规划

 node1                                  node2                                       node3

NameNode                 ResourceManage  

DataNode                       DataNode                                  DataNode

NodeManager                 NodeManager                       NodeManager

HistoryServer                                                           SecondaryNameNode

在第一台机器上安装新的Hadoop

 

配置java环境:

   1.下载:jdk1.8.0_172 到 /data/bigdata 中

   2.解压缩  

   3.编辑:/etc/profile 最后加入下面两行:

     export JAVA_HOME=/data/bigdata/jdk1.8.0_172

     export PATH=$JAVA_HOME/bin:$PATH

     保存退出

   4.执行:source /etc/profile

   5.执行: java -version 查看是否安装成功

 

开始安装hadoop

 

下载:wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz

 

解压Hadoop目录:

      tar -zxf /data/bigdata/hadoop-2.7.6.tar.gz

    

配置Hadoop环境变量

      vim /etc/profile

      追加配置:

 

        export HADOOP_HOME="/data/bigdata/hadoop-2.7.6"

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

 

       执行:source /etc/profile 使得配置生效

 

配置Hadoop JDK路径修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:

        export JAVA_HOME="/data/bigdata/jdk1.8.0_172"

 

配置core-site.xml

      vim etc/hadoop/core-site.xml

 

        <configuration>

            <property>

            <name>fs.defaultFS</name>

            <value>hdfs://node1:8020</value>

            </property>

            <property>

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

            <value>/data/bigdata/hadoop-2.7.6/data/tmp</value>

            </property>

        </configuration>

      fs.defaultFS为NameNode的地址。

      hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。应该保证此目录是存在的,如果不存在,先创建。

 

配置hdfs-site.xml

      vim etc/hadoop/hdfs-site.xml

        <configuration>

            <property>

            <name>dfs.namenode.secondary.http-address</name>

            <value>node3:50090</value>

            </property>

        </configuration>

      dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将node3规划为SecondaryNameNode服务器.

 

配置slaves

      vim etc/hadoop/slaves

      node1

      node2

      node3

      slaves文件是指定HDFS上有哪些DataNode节点。

 

配置yarn-site.xml

      vim etc/hadoop/yarn-site.xml

        <property>

            <name>yarn.nodemanager.aux-services</name>

            <value>mapreduce_shuffle</value>

        </property>

        <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>node2</value>

        </property>

        <property>

            <name>yarn.log-aggregation-enable</name>

            <value>true</value>

        </property>

        <property>

            <name>yarn.log-aggregation.retain-seconds</name>

            <value>106800</value>

        </property>

      根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向node2。

      yarn.log-aggregation-enable是配置是否启用日志聚集功能。

      yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间。

 

配置mapred-site.xml

      cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

      vim etc/hadoop/mapred-site.xml

    

        <configuration>

            <property>

                <name>mapreduce.framework.name</name>

                <value>yarn</value>

            </property>

            <property>

                <name>mapreduce.jobhistory.address</name>

                <value>node1:10020</value>

            </property>

            <property>

                <name>mapreduce.jobhistory.webapp.address</name>

                <value>node1:19888</value>

            </property>

        </configuration>

      mapreduce.framework.name设置mapreduce任务运行在yarn上。

      mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在node1机器上。

      mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。

 

设置SSH无密码登录

      分别在node1 node2 node3执行

      ssh-keygen -t rsa

      ssh-copy-id node1

      ssh-copy-id node2

      ssh-copy-id node3

    

分发Hadoop文件

      首先在其他两台机器上创建存放Hadoop的目录

      通过Scp分发

      scp -r /data/bigdata/hadoop-2.7.6 root@node2:/data/bigdata/hadoop-2.7.6

      scp -r /data/bigdata/hadoop-2.7.6 root@node3:/data/bigdata/hadoop-2.7.6

 

格式NameNode

      hdfs namenode –format

启动集群

      start-dfs.sh

启动YARN

      start-yarn.sh

在node2上启动ResourceManager:

      yarn-daemon.sh start resourcemanager

在node3上启动:

      mr-jobhistory-daemon.sh start historyserver

查看HDFS Web页面

http://node1:50070/

查看YARN Web 页面

http://node2:8088/cluster

posted @ 2018-07-19 19:57  李皇皓  阅读(329)  评论(0)    收藏  举报