zoukankan      html  css  js  c++  java
  • 初学者之Hadoop分布式环境的搭建

    Hadoop的搭建过程全纪录,当然我也是一个初学者,有什么大家可以一起探讨,互相学习。

    1、  虚拟机的安装

    这里采用vm虚拟机,安装过程网上有很多,可以自行查看

    2、  安装linux系统

    采用Centos 7作为linux系统,注意选择语言和时间

    建立root用户,密码设置为root

    3、  JDK的安装

    下载好jdk

    解压 tar -zxvf jdk-7u71-linux-x64.gz -C /usr/local

       mv jdk1.7.0_71 jdk

    打开/etc/profile 配置java环境变量

     vim /etc/profile

    按i进入插入模式,在后面添加如下语句

    export JAVA_HOME=/usr/local/jdk

    export PATH=PATH:$JAVA_HOME/bin

    按esc再按:输入wq保存退出

    执行 source /etc/profile 使其生效

    输入java -version

    出现以下提示则表明安装成功

    java version "1.7.0_71"

    Java(TM) SE Runtime Environment (build 1.7.0_71-b13)

    Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

    4、  hadoop搭建

    三台机器

    查看这个机器的ip地址

    Ifconfig

    Master

    192.168.32.127

    Namenode

    Resourcemanager

    Slave1

    192.168.32.128

    Datanode

    Nodemanager secondarynamenode

    Slave2

    192.168.32.129

    datanode

    nodemanager

    设置主机名

    vim /etc/hostname

    删除里面的内容并分别设置成

    master

    slave1

    slave2

    修改hosts,建立主机名和ip地址的映射,每一个占一行

    vim /etc/hosts

    192.168.32.127 master

    192.168.32.128 slave1

    192.168.32.129 slave2

     配置ssh

    ssh-keygen -t rsa

    连续4个回车

    会root目录生成两个文件,一个公钥一个私钥

    ssh-copy-id master

    ssh-copy-id slave1

    ssh-copy-id slave2

    这样会在slave1 的/root/.ssh/目录下生成一个authorized_keys 就可以实现master免登录到slave1,如下:

    ssh slave1

    如不需要输入密码,则配置ssh成功

    下载好hadoop安装包,并解压,这句话的意思是将hadoop安装包解压到 /opt/soft/目录下

    tar -zxvf ./hadoop-2.7.2.tar.gz -C /opt/soft/

    将解压后的修改个名字(可以不用做,只是为了方便)

    mv hadoop-2.7.2 hadoop

    修改hadoop的配置文件群

    vi /hadoop/ect/hadoop/hadoop-env.sh

    设置JAVA_HOME=/usr/local/jdk

    vi core-site.xml

    <configuration>

        <!-- 指定HDFS老大(namenode)的通信地址 -->

        <property>

            <name>fs.defaultFS</name>

            <value>hdfs://master:9000</value>

        </property>

        <!-- 指定hadoop运行时产生文件的存储路径 -->

        <property>

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

            <value>/opt/soft/hadoop/tmp</value>

        </property>

    </configuration>

    vi hdfs-site.xml

    <configuration>

        <!-- 设置namenode的http通讯地址 -->

        <property>

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

            <value>master:50070</value>

        </property>

        <!-- 设置secondarynamenode的http通讯地址 -->

        <property>

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

            <value>slave1:50090</value>

        </property>

        <!-- 设置namenode存放的路径 -->

        <property>

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

            <value>/opt/soft/hadoop/name</value>

        </property>

        <!-- 设置hdfs副本数量 -->

        <property>

            <name>dfs.replication</name>

            <value>2</value>

       
    </property>

        <!-- 设置datanode存放的路径 -->

        <property>

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

            <value>/opt/soft/hadoop/data</value>

        </property>

    </configuration>

    mapred-site.xml

    没有这个文件,所以先要进行修改

    mv mapred-site.xml.template mapred-site.xml

    <configuration>

        <!-- 通知框架MR使用YARN -->

        <property>

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

            <value>yarn</value>

        </property>

    </configuration>

    yarn-site.xml

    <configuration>

        <!-- 设置 resourcemanager 在哪个节点-->

        <property>

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

            <value>master</value>

        </property>

        <!-- reducer取数据的方式是mapreduce_shuffle -->

        <property>

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

            <value>mapreduce_shuffle</value>

        </property>

        <property>

             <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

             <value>org.apache.hadoop.mapred.ShuffleHandler</value>

        </property>

    </configuration>

    slaves这占一行,表明datanode节点

    slave1

    slave2

    以上操作完成之后,将jdk和hadoop分别copy到slave1和slave2节点上

    copy jdk

    scp /usr/local/jdk slave1:/usr/local/

    scp /usr/local/jdk slave2:/usr/local/

    copy hadoop

    scp /opt/soft/* slave1:/opt/soft/

    scp /opt/soft/* slave2:/opt/soft/

    接着就是格式化

    hadoop namenode –format

    然后启动hadoop,在hadoop目录下

    启动hdfs(nn,dn)

    bin/start-dfs.sh

    输入jps,会有以下进程

    在master上

    Jps

    namenode

    在slave1 和slave2上

    Jps

    datanode

    启动yarn

    bin/start-yarn.sh

    输入jps,此时以下进程

    在master上

    Jps

    Namenode

    Resourcemanager

    Secondarynamenode

    再slave1和slave2上

    Jps

    Datanode

    Nodemanager

    至此就配置完成了

  • 相关阅读:
    Java Varargs 可变参数使用
    GitLab 如何删除 Forked from
    Git Clone 的时候遇到 Filename too long 错误
    Spring Boot 如何部署到 Linux 中的服务
    Gradle 如何打包 Spring Boot 如何不添加版本代码
    HDU 5878---预处理+二分查找
    HDU 5881--Tea 思维规律
    HDU 5879---cure
    (转)C/S 与 B/S 区别
    卡特兰数
  • 原文地址:https://www.cnblogs.com/tolazychen/p/8336476.html
Copyright © 2011-2022 走看看