精华内容
下载资源
问答
  • hadoop集群搭建 修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vimhadoop-env.sh 2)core-site.xml vim core-site.xml <configuration> <!-- 指定HDFS...

    hadoop集群搭建      修改配置文件(三台主机都要配置)

                                            master 主机配置

    1)hadoop-env.sh

    vim hadoop-env.sh

     

    2)core-site.xml

    vim core-site.xml

    <configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://backup01:9000</value>
    </property>

    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>

    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/hadoop-3.1.2/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>

    <property>
    <name>hadoop.proxyuser.hduser.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.hduser.groups</name>
    <value>*</value>
    </property>


    </configuration>
     

    3)hdfs-site.xml

    vim hdfs-site.xml

    <configuration>
    <!--
    <property>
           <name>dfs.namenode.http-address</name>
           <value>backup01:9870</value>
    </property>
    -->

    <!-- 设置secondarynamenode的http通讯地址 -->
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>backup01:9001</value>
    </property>


    <!-- 设置namenode存放的路径 -->
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/hadoop-3.1.2/dfs/name</value>
    </property>

    <!-- 设置datanode存放的路径 -->
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/hadoop-3.1.2/dfs/data</value>
    </property>


    <!-- 设置hdfs副本数量 -->
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>


    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>

    </configuration>
     

     

    4)mapred-site.xml

    vim mapred-site.xml

     

    5)yarn-site.xml

    6)workers   (slaves节点配置)

    7)start-dfs.sh 和 stop-dfs.sh

    cd   /usr/local/hadoop/hadoop-3.1.2/sbin

    vim start-dfs.sh

    vim stop-dfs.sh

    8)start-yarn.sh 和 stop-yarn.sh

    vim start-yarn.sh

    vim stop-yarn.sh

     

       注意:主机配置完成将master配置copy到其他两个slave节点   

    展开全文
  • Hadoop集群搭建教程(详细)

    万次阅读 多人点赞 2018-05-24 00:12:41
    需要的安装包: 1.jdk压缩包 2.hadoop压缩包请前往我的github上下载相关安装包开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的因为默认的虚拟机主机名都是ubuntu,所以为了便于...

    需要的安装包:

        1.jdk压缩包

        2.hadoop压缩包

    请前往百度云上上下载相关安装包(密码:8op1)


    开始搭建hadoop集群

    一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙

            1.因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1

    • 修改主机名的命令:sudo gedit /etc/hostname


    • 把原主机名ubuntu改为master(在从主机上则改为slave1)

            2.为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作)

        命令:sudo gedit /etc/hosts


    把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址


    怎么知道自己虚拟机的ip地址?

    命令:ifconfig -a



    上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:


    slave1的ip地址就是从虚拟机slave1的真实ip地址。同样,我们在slave1虚拟机上也要进行这一步操作。

            3.关闭虚拟机的防火墙

                一般来说,ubuntu默认都是安装防火墙软件ufw的,使用命令 sudo ufw version,如果出现ufw的版本信息,则说明已有ufw

                使用命令 sudo ufw status查看防火墙开启状态:如果是active则说明开启,如果是inactive则说明关闭

                开启/关闭防火墙 (默认设置是’disable’)

                sudo ufw enable|disable

                 我们使用sudo ufw disble来关闭防火墙,并再次用sudo ufw status  查看防火墙是否关闭



    二.安装jdk(所有虚拟机都要安装配置)

    将jdk的压缩文件拖进master和slave1虚拟机中,压缩(右键文件,extract here),或者用命令行

    tar -zxvf  jdk1.8.0_161.tar.gz(使用自己的压缩文件名)

       配置环境jdk环境:

        命令:sudo gedit /etc/profile


    将jdk的路径添加到文件后面(根据自己的文件路径来,我这里jdk1.8.0_161文件夹的路径是/home/hadoop/java)

    export JAVA_HOME=/home/hadoop/java/jdk1.8.0_161
    export JRE_HOME=/home/hadoop/java/jdk1.8.0_161/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH


    保存退出,为了使配置立即生效,键入命令:source /etc/profile,或者重启虚拟机,命令:shutdown -r now

    检查路径jdk是否安装成功,键入命令:java -version

    如果出现了版本信息,则恭喜配置成功;

    三.安装SSH服务

     1.首先确保虚拟机能连上网

     2.更新源列表:sudo apt-get update


    3.安装ssh:输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。

     4.查看ssh服务是否启动

    打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。


    四、建立ssh无密码登录本机

     ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

    1、创建ssh-key,,这里我们采用rsa方式

    1. ssh-keygen -t rsa -""   //(P是要大写的,后面跟"")

     
    (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

    2、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

    1. cd ~/.ssh

     

    1. cat id_rsa.pub >> authorized_keys

     

     
    完成后就可以无密码登录本机了。

     

    3、登录localhost

    1.  ssh localhost

     

    ( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)

    4、执行退出命令

    1. exit​

     1~4步在master和slave1两台虚拟机上都是配置

     5.配置master无密码登陆slave1

        

    mater主机中输入命令复制一份公钥到home中

    cp .ssh/id_rsa.pub ~/id_rsa_master.pub
    • 1

    把master的home目录下的id_rsa_master.pub拷到slave1的home下(我的做法是先拖到windows桌面上,在拖进slave1虚拟机中)

    slave1的home目录下分别输入命令

    cat id_rsa_master.pub >> .ssh/authorized_keys
    • 1

    至此实现了mater对slave1的无密码登陆

    以下的步骤只在master上进行(除了hadoop的环境变量

    配置在slave1上也要进行)

    五.安装hadoop

    1.将hadoop压缩包拖进master虚拟机中,解压(我这里解压的路径是/home/hadoop/hadoop-2.7.3)

    2.在hadoop-2.7.3文件夹里面先创建4个文件夹:

    •     hadoop-2.7.3/hdfs
    •     hadoop-2.7.3/hdfs/tmp
    •     hadoop-2.7.3/hdfs/name
    •     hadoop-2.7.3/hdfs/data

    3.配置 hadoop的配置文件

    先进入配置文件的路径:cd /home/hadoop/hadoop-2.7.3/etc/hadoop(再次强调,使用自己的路径)


    输入:ls

    查看该路径下的文件列表


    被红框框住的文件是我们要进程配置的文件

        1.首先配置core-site.xml文件

    sudo gedit core-site.xml

        在<configuration></configuration>中加入以下代码:

    <property>
       <name>hadoop.tmp.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/tmp</value>
       <description>A base for other temporary directories.</description>
     </property>
     <property>
      <name>io.file.buffer.size</name>
       <value>131072</value>
     </property>
     <property>
       <name>fs.defaultFS</name>
       <value>hdfs://master:9000</value>
     </property>

    注意:第一个属性中的value和我们之前创建的/hadoop-2.7.3/hdfs/tmp路径要一致。

        2.配置 hadoop-env.sh文件

    sudo gedit hadoop-env.sh

       将JAVA_HOME文件配置为本机JAVA_HOME路径


      3.配置 yarn-env.sh

    sudo gedit yarn-env.sh

     将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的#去掉)


     4.配置hdfs-site.xml

    sudo gedit hdfs-site.xml
    在<configuration></configuration>中加入以下代码
    <property>
     <name>dfs.replication</name>
       <value>1</value>
     </property>
     <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/name</value>
       <final>true</final>
    </property>
     <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/data</value>
       <final>true</final>
     </property>
     <property>
      <name>dfs.namenode.secondary.http-address</name>
       <value>master:9001</value>
     </property>
     <property>
       <name>dfs.webhdfs.enabled</name>
       <value>true</value>
     </property>
     <property>
       <name>dfs.permissions</name>
       <value>false</value>
     </property>

    注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)

    5 .复制mapred-site.xml.template文件,并命名为mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml
       配置 mapred-site.xml,在标签<configuration>中添加以下代码
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
     </property>

    6.配置yarn-site.xml

    sudo gedit yarn-site.xml

     在<configuration>标签中添加以下代码

    <property>
     <name>yarn.resourcemanager.address</name>
       <value>master:18040</value>
     </property>
     <property>
       <name>yarn.resourcemanager.scheduler.address</name>
       <value>master:18030</value>
     </property>
     <property>
       <name>yarn.resourcemanager.webapp.address</name>
       <value>master:18088</value>
     </property>
     <property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
       <value>master:18025</value>
     </property>
     <property>
       <name>yarn.resourcemanager.admin.address</name>
       <value>master:18141</value>
     </property>
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
     </property>
     <property>
         <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
    

    7.配置slaves 文件

    sudo gedit slaves

        把原本的localhost删掉,改为slave1

    8.配置hadoop的环境,就像配置jdk一样

    sudo gedit /etc/profile

    根据hadoop文件夹的路径配置,以我的路径/home/hadoop/hadoop-2.7.3 为例

    export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
    export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    键入命令 source /etc/profile 使配置立即生效

    9.接下来,将hadoop传到slave1虚拟机上面去

    scp -r hadoop-2.7.1 hadoop@slave1:~/ 

    注意:hadoop是虚拟机的用户名,创建slave1时设定的

    传过去后,在slave1上面同样对hadoop进行路径配置,和第8步一样

    9.初始化hadoop

    hdfs name -format

    10.开启hadoop

      两种方法:

    • start-all.sh
    • 先start-dfs.sh,再start-yarn.sh

    如果在mater上面键入jps后看到


    在slave1上键入jps后看到


    则说明集群搭建成功

    六:最后用自带的样例测试hadoop集群能不能正常跑任务

    使用命令

    hadoop   jar   /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  pi 10 10

    用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)

    最后出现结果


    则,恭喜你,hadoop集群搭建完成

    展开全文
  • 阿里云ECS搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决 阿里云ECS搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net....

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81275360
    本文出自【我是干勾鱼的博客

    Ingredient:

    之前在:

    阿里云ECS上搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决

    阿里云ECS上搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net.UnknownHostException”错误的解决

    阿里云ECS上搭建Hadoop集群环境——“启动Hadoop时,datanode没有被启动”问题的解决

    阿里云ECS上搭建Hadoop集群环境——设置免密码ssh登陆

    这4篇文章里讲述了搭建Hadoop环境时在本地“/etc/hosts”里面的ip域名配置上应该注意的事情,以及如何配置服务器之间的ssh免密码登录,启动Hadoop遇到的一些问题的解决等等,这些都是使用ECS服务器搭建Hadoop时一定要注意的,能够节省搭建过程中的很多精力。这些问题都注意了,就可以完整搭建Hadoop环境了。

    1 节点环境介绍

    1.1 环境介绍

    1.2 安装Java

    Java SE Development Kit 8u162在合适位置解压缩,本文中其路径为:

    /opt/java/jdk1.8.0_162

    设置Java在“/etc/profile”中的环境变量:

    # set the java enviroment
    export JAVA_HOME=/opt/java/jdk1.8.0_162
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar
    

    1.3 安装ssh与rsync

    $sudo apt-get install ssh
    $sudo apt-get install rsync

    1.4 设置ssh免密码登陆

    具体设置方式可以参考阿里云ECS上搭建Hadoop集群环境——设置免密码ssh登陆

    2 Hadoop下载

    首先下载hadoop-2.9.1.tar.gz,下载之后在合适的位置解压缩即可,笔者这里解压缩之后的路径为:

    /opt/hadoop/hadoop-2.9.1

    3 设置本地域名

    设置本地域名这一步非常关键,ip的本地域名信息配置不好,即有可能造成Hadoop启动出现问题,又有可能造成在使用Hadoop的MapReduce进行计算时报错。如果是在ECS上搭建Hadoop集群环境,那么本文开头提到的之前写的这两篇文章:
    阿里云ECS搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决

    阿里云ECS搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net.UnknownHostException”错误的解决

    都应该看一下以作参考。

    总结一下那就是,在“/etc/hosts”文件中进行域名配置时要遵从2个原则:

    • 1 新加域名在前面: 将新添加的Master、Slave服务器ip域名(例如“test7972”),放置在ECS服务器原有本地域名(例如“iZuf67wb***************”)的前面。但是注意ECS服务器原有本地域名(例如“iZuf67wb***************”)不能被删除,因为操作系统别的地方还会使用到。

    • 2 IP本机内网,其它外网: 在本机上的操作,都要设置成内网ip;其它机器上的操作,要设置成外网ip。

    按照这两个原则,这里配置的两台服务器的域名信息:

    • Master:test7972
    • Slave:test25572

    4 添加Hadoop环境变量

    在“/etc/profile”中增加配置:

    # hadoop
    export HADOOP_HOME=/opt/hadoop/hadoop-2.9.1
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
    

    5 添加Hadoop配置信息

    目前共有2台服务器:

    • Master:test7972
    • Slave:test25572

    需要添加的信息,有一些是2台服务器上共同配置的,还有一些是在特定服务器上单独设置的。

    5.1 在Master节点的Slave文件中指定Slave节点

    编辑文件:

    vi vi etc/hadoop/slaves

    添加内容:

    test25572
    

    5.2 Master、Slave上的共同配置

    在Master、Slave上共同添加的配置:

    5.2.1 “etc/hadoop/core-site.xml”

    编辑文件:

    vi etc/hadoop/core-site.xml

    添加内容:

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://test7972:9000</value>
            </property>
    </configuration>
    
    

    5.2.2 “etc/hadoop/hdfs-site.xml”

    编辑文件:

    vi etc/hadoop/hdfs-site.xml

    添加内容:

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
    </configuration>
    

    5.2.3 “etc/hadoop/mapred-site.xml”

    编辑文件:

    vi etc/hadoop/mapred-site.xml

    添加内容:

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

    5.3 在各节点上指定HDFS文件的存储位置(默认为/tmp)

    5.3.1 给Master节点namenode创建目录、赋予权限,编辑文件

    Master节点: namenode

    创建目录并赋予权限:

    mkdir -p /opt/hadoop/hadoop-2.9.1/tmp/dfs/name
    chmod -R 777 /opt/hadoop/hadoop-2.9.1/tmp
    

    编辑文件:

    vi etc/hadoop/hdfs-site.xml

    添加内容:

    <property>
    	<name>dfs.namenode.name.dir</name>
    	<value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/name</value>
    </property>
    

    5.3.2 给Slave节点datanode创建目录、赋予权限,编辑文件

    Slave节点:datanode

    创建目录并赋予权限:

    mkdir -p /opt/hadoop/hadoop-2.9.1/tmp/dfs/data
    chmod -R 777 /opt/hadoop/hadoop-2.9.1/tmp

    编辑文件:

    vi etc/hadoop/hdfs-site.xml

    添加内容:

    <property>
    	<name>dfs.datanode.data.dir</name>
    	<value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/data</value>
    </property>
    

    5.4 YARN设定

    5.4.1 给Master节点resourcemanager信息编辑文件

    Master节点: resourcemanager

    编辑文件:

    vi etc/hadoop/yarn-site.xml

    添加内容:

    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>test7972</value>
        </property>
    </configuration>
    

    5.4.2 给Slave节点nodemanager信息编辑文件

    编辑文件:

    vi etc/hadoop/yarn-site.xml

    添加内容:

    <configuration>
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>test7972</value>
    	</property>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    </configuration>
    

    5.4.3 为了在Master上启动“job history server”,需要Slave节点上添加配置信息

    Slave节点:配置Master节点的“job history server”信息

    编辑文件:

    vi etc/hadoop/mapred-site.xml

    添加内容:

    <property>
    	<name>mapreduce.jobhistory.address</name>
    	<value>test7972:10020</value>
    </property>
    

    5.5 JAVA_HOME指定

    本来在/etc/profile文件中指定了JAVA_HOME文件,按说Hadoop应该可以识别到JAVA命令了,但是运行时候还是会报错说找不到,这个时候需要在Master和Slave节点的:

    etc/hadoop/hadoop-env.sh

    文件中加入以下内容:

    export JAVA_HOME=/opt/java/jdk1.8.0_162
    

    5.6 确认一下Master、Slave上的配置文件内容

    因为刚才确定修改文件的过程比较杂乱,我们来确认一下Master、Slave这2个服务器上的配置文件内容,如果对Hadoop的各文件配置意义都比较清楚了,可以直接根据这个步骤修改配置文件。

    5.6.1 Master节点上的配置文件

    Master节点(test7972)上共有4个文件添加了内容,分别为:

    • 1 etc/hadoop/core-site.xml

    vi etc/hadoop/core-site.xml

    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://test7972:9000</value>
    	</property>
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/opt/hadoop/hadoop-2.9.1/tmp</value>
    	</property>
    </configuration>
    
    • 2 etc/hadoop/hdfs-site.xml

    vi etc/hadoop/hdfs-site.xml

    <configuration>
    	<property>
    		<name>dfs.replication</name>
    		<value>1</value>
    	</property>
    	<property>
    		<name>dfs.namenode.name.dir</name>
    		<value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/name</value>
    	</property>
    </configuration>
    
    • 3 etc/hadoop/mapred-site.xml

    vi etc/hadoop/mapred-site.xml

    <configuration>
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    </configuration>
    
    • 4 etc/hadoop/yarn-site.xml

    vi etc/hadoop/yarn-site.xml

    <configuration>
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>test7972</value>
    	</property>
    </configuration>
    
    • 5 etc/hadoop/hadoop-env.sh

    etc/hadoop/hadoop-env.sh

    export JAVA_HOME=/opt/java/jdk1.8.0_162
    

    5.6.2 Slave节点上的配置文件

    Master节点(test25572)上共有4个文件添加了内容,分别为:

    • 1 etc/hadoop/core-site.xml

    vi etc/hadoop/core-site.xml

    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://test7972:9000</value>
    	</property>
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/opt/hadoop/hadoop-2.9.1/tmp</value>
    	</property>
    </configuration>
    
    • 2 etc/hadoop/hdfs-site.xml

    vi etc/hadoop/hdfs-site.xml

    <configuration>
    	<property>
    		<name>dfs.replication</name>
    		<value>1</value>
    	</property>
    	<property>
    		<name>dfs.datanode.data.dir</name>
    		<value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/data</value>
    	</property>
    </configuration>
    
    • 3 etc/hadoop/mapred-site.xml

    vi etc/hadoop/mapred-site.xml

    <configuration>
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    	<property>
    		<name>mapreduce.jobhistory.address</name>
    		<value>test7972:10020</value>
    	</property>
    </configuration>
    
    • 4 etc/hadoop/yarn-site.xml

    vi etc/hadoop/yarn-site.xml

    <configuration>
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>test7972</value>
    	</property>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    </configuration>
    
    • 5 etc/hadoop/hadoop-env.sh

    etc/hadoop/hadoop-env.sh

    export JAVA_HOME=/opt/java/jdk1.8.0_162
    

    6 格式化HDFS(Master,Slave)

    在Master、Slave上均执行格式化命令:

    hadoop namenode -format

    注意: 有的时候会出现Hadoop启动时,没有启动datanode的情况。可以参考阿里云ECS搭建Hadoop集群环境——“启动Hadoop时,datanode没有被启动”问题的解决来解决。

    7 启动Hadoop

    7.1 在Master上启动Daemon,Slave上的服务会被同时启动

    启动HDFS:

    sbin/start-dfs.sh

    启动YARN:

    sbin/start-yarn.sh

    当然也可以一个命令来执行这两个启动操作:

    sbin/start-all.sh

    执行结果:

    root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# ./sbin/start-all.sh
    This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
    Starting namenodes on [test7972]
    test7972: starting namenode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-namenode-iZ2ze72w7p5za2ax3zh81cZ.out
    test25572: starting datanode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-datanode-iZuf67wbvlyduq07idw3pyZ.out
    Starting secondary namenodes [0.0.0.0]
    0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-secondarynamenode-iZ2ze72w7p5za2ax3zh81cZ.out
    starting yarn daemons
    starting resourcemanager, logging to /opt/hadoop/hadoop-2.9.1/logs/yarn-root-resourcemanager-iZ2ze72w7p5za2ax3zh81cZ.out
    test25572: starting nodemanager, logging to /opt/hadoop/hadoop-2.9.1/logs/yarn-root-nodemanager-iZuf67wbvlyduq07idw3pyZ.out
    

    效果是一样的。

    7.2 启动job history server

    在Master上执行:

    sbin/mr-jobhistory-daemon.sh start historyserver

    执行结果:

    root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# ./sbin/mr-jobhistory-daemon.sh start historyserver
    starting historyserver, logging to /opt/hadoop/hadoop-2.9.1/logs/mapred-root-historyserver-iZ2ze72w7p5za2ax3zh81cZ.out
    root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1#

    7.3 确定启动进程

    7.3.1 确定Master上的进程

    • 在Master节点上执行:

    jps

    显示信息:

    root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# jps
    867 JobHistoryServer
    938 Jps
    555 ResourceManager
    379 SecondaryNameNode
    32639 NameNode

    可以看到不算jps自己,启动了4个进程。

    7.3.2 确定Slave上的进程

    • 在Slave节点上执行:

    jps

    显示信息:

    root@iZuf67wb***************:/opt/hadoop/hadoop-2.9.1# jps
    26510 Jps
    26222 DataNode
    26350 NodeManager

    可以看到不算jps自己,启动了2个进程。

    8 在Master节点上创建HDFS,并拷贝测试文件

    当前文件夹路径:

    root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1# pwd
    /opt/hadoop/hadoop-2.9.1

    8.1 在Master节点上创建HDFS文件夹

    ./bin/hdfs dfs -mkdir -p /user/root/input

    8.2 拷贝测试文件到HDFS文件夹下

    拷贝测试文件:

    ./bin/hdfs dfs -put etc/hadoop/* /user/root/input

    查看拷贝到HDFS下的文件:

    ./bin/hdfs dfs -ls /user/root/input

    9 执行“Hadoop job”进行测试

    9.1 监控系统

    9.1.1 监听文件输出

    虽然执行命令界面也有输出,但一般直接监控输出文件捕获的信息会更清晰,查看输出信息一般监控两个文件:

    tail -f logs/hadoop-root-namenode-iZ2ze72w7p5za2ax3zh81cZ.log

    tail -f logs/yarn-root-resourcemanager-iZ2ze72w7p5za2ax3zh81cZ.log

    9.1.2 浏览器查看文件系统HDFS的使用情况

    首先确保防火墙关闭,如:

    [root@test7972 hadoop-2.9.1]# firewall-cmd --state
    not running
    

    浏览器输入:

    http://test7972:50070/

    会跳转至相应页面,如所示:

    在这里插入图片描述

    也能够看到HDFS的情况,如图所示:

    在这里插入图片描述

    点击上方导航右侧的:

    Utilities -> Browse the file system

    能够看到HDFS的文件情况,如图所示:

    在这里插入图片描述

    9.2 执行Hadoop job

    使用Hadoop自带的一个测试job

    ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep /user/root/input output ‘dfs[a-z.]+’

    这时候输出结果会被保存到“output”文件夹中,注意这里的output其实就是:

    /user/{username}/output

    由于当前登录用户是root,那么实际文件夹就是:

    /user/root/output/

    这个文件夹。

    如果你的计算正常,是能够在执行命令的界面看到一些计算过程的:

    ......
    18/07/30 16:04:32 INFO mapreduce.Job: The url to track the job: http://test7972:                                                                                            8088/proxy/application_1532936445384_0006/
    18/07/30 16:04:32 INFO mapreduce.Job: Running job: job_1532936445384_0006
    18/07/30 16:04:57 INFO mapreduce.Job: Job job_1532936445384_0006 running in uber                                                                                             mode : false
    18/07/30 16:04:57 INFO mapreduce.Job:  map 0% reduce 0%
    18/07/30 16:06:03 INFO mapreduce.Job:  map 13% reduce 0%
    18/07/30 16:06:04 INFO mapreduce.Job:  map 20% reduce 0%
    18/07/30 16:07:08 INFO mapreduce.Job:  map 27% reduce 0%
    18/07/30 16:07:09 INFO mapreduce.Job:  map 40% reduce 0%
    18/07/30 16:08:12 INFO mapreduce.Job:  map 50% reduce 0%
    18/07/30 16:08:13 INFO mapreduce.Job:  map 57% reduce 0%
    18/07/30 16:08:15 INFO mapreduce.Job:  map 57% reduce 19%
    18/07/30 16:09:11 INFO mapreduce.Job:  map 60% reduce 19%
    18/07/30 16:09:12 INFO mapreduce.Job:  map 67% reduce 19%
    18/07/30 16:09:13 INFO mapreduce.Job:  map 73% reduce 19%
    18/07/30 16:09:18 INFO mapreduce.Job:  map 73% reduce 24%
    18/07/30 16:10:04 INFO mapreduce.Job:  map 77% reduce 24%
    18/07/30 16:10:06 INFO mapreduce.Job:  map 90% reduce 24%
    18/07/30 16:10:07 INFO mapreduce.Job:  map 90% reduce 26%
    18/07/30 16:10:14 INFO mapreduce.Job:  map 90% reduce 30%
    18/07/30 16:10:40 INFO mapreduce.Job:  map 93% reduce 30%
    18/07/30 16:10:44 INFO mapreduce.Job:  map 100% reduce 31%
    18/07/30 16:10:45 INFO mapreduce.Job:  map 100% reduce 100%
    18/07/30 16:10:53 INFO mapreduce.Job: Job job_1532936445384_0006 completed successfully
    ......
    18/07/30 16:10:56 INFO mapreduce.Job: The url to track the job: http://test7972:                                                                                            8088/proxy/application_1532936445384_0007/
    18/07/30 16:10:56 INFO mapreduce.Job: Running job: job_1532936445384_0007
    18/07/30 16:11:21 INFO mapreduce.Job: Job job_1532936445384_0007 running in uber mode : false
    18/07/30 16:11:21 INFO mapreduce.Job:  map 0% reduce 0%
    18/07/30 16:11:35 INFO mapreduce.Job:  map 100% reduce 0%
    18/07/30 16:11:48 INFO mapreduce.Job:  map 100% reduce 100%
    18/07/30 16:11:53 INFO mapreduce.Job: Job job_1532936445384_0007 completed successfully
    18/07/30 16:11:53 INFO mapreduce.Job: Counters: 49
            File System Counters
                    FILE: Number of bytes read=362
                    FILE: Number of bytes written=395249
                    FILE: Number of read operations=0
                    FILE: Number of large read operations=0
                    FILE: Number of write operations=0
                    HDFS: Number of bytes read=655
                    HDFS: Number of bytes written=244
                    HDFS: Number of read operations=7
                    HDFS: Number of large read operations=0
                    HDFS: Number of write operations=2
            Job Counters
                    Launched map tasks=1
                    Launched reduce tasks=1
                    Data-local map tasks=1
                    Total time spent by all maps in occupied slots (ms)=11800
                    Total time spent by all reduces in occupied slots (ms)=10025
                    Total time spent by all map tasks (ms)=11800
                    Total time spent by all reduce tasks (ms)=10025
                    Total vcore-milliseconds taken by all map tasks=11800
                    Total vcore-milliseconds taken by all reduce tasks=10025
                    Total megabyte-milliseconds taken by all map tasks=12083200
                    Total megabyte-milliseconds taken by all reduce tasks=10265600
            Map-Reduce Framework
                    Map input records=14
                    Map output records=14
                    Map output bytes=328
                    Map output materialized bytes=362
                    Input split bytes=129
                    Combine input records=0
                    Combine output records=0
                    Reduce input groups=5
                    Reduce shuffle bytes=362
                    Reduce input records=14
                    Reduce output records=14
                    Spilled Records=28
                    Shuffled Maps =1
                    Failed Shuffles=0
                    Merged Map outputs=1
                    GC time elapsed (ms)=443
                    CPU time spent (ms)=1480
                    Physical memory (bytes) snapshot=367788032
                    Virtual memory (bytes) snapshot=3771973632
                    Total committed heap usage (bytes)=170004480
            Shuffle Errors
                    BAD_ID=0
                    CONNECTION=0
                    IO_ERROR=0
                    WRONG_LENGTH=0
                    WRONG_MAP=0
                    WRONG_REDUCE=0
            File Input Format Counters
                    Bytes Read=526
            File Output Format Counters
                    Bytes Written=244
    

    能够看到这里面有计算成功的提示:

    mapreduce.Job: Job job_1532936445384_0007 completed successfully

    说明我们的MapReduce计算成功了!

    9.3 查看执行结果

    执行查询命令:

    ./bin/hdfs dfs -cat output/*

    输出计算结果:

    root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1# ./bin/hdfs dfs -cat output/*
    6       dfs.audit.logger
    4       dfs.class
    3       dfs.logger
    3       dfs.server.namenode.
    2       dfs.audit.log.maxbackupindex
    2       dfs.period
    2       dfs.audit.log.maxfilesize
    1       dfs.replication
    1       dfs.log
    1       dfs.file
    1       dfs.servers
    1       dfsadmin
    1       dfsmetrics.log
    1       dfs.namenode.name.dir
    

    10 关闭Hadoop

    10.1 Master上关闭Daemon

    Master上执行:

    sbin/stop-all.sh

    10.2 Master上关闭job history server

    Master上执行:

    sbin/mr-jobhistory-daemon.sh stop historyserver

    11 搭建完成

    至此,在阿里云ECS上搭建1台Master、1台Slave的Hadoop集群环境就搭建完了!

    12 参考

    Hadoop系列之(二):Hadoop集群部署

    解决Hadoop启动时,没有启动datanode

    Hadoop: Setting up a Single Node Cluster.

    Hadoop Cluster Setup

    展开全文
  • hadoop集群中namenode启动不起来如何解决 新手在初次搭建hadoop集群中经常遇到namenode或者databode启动不起来,大概率是因为多次格式化NameNode造成的。 因为吗每格式化一次NameNode,就会产生新的集群id...

                                                                           hadoop集群中namenode启动不起来如何解决

    新手在初次搭建 hadoop集群中经常遇到namenode或者databode启动不起来,大概率是因为多次格式化NameNode造成的。

     

    因为每格式化一次NameNode,就会产生新的集群id,导致NameNode和DataNode的集群id不一致,最终启动不起来namenode。有二个解决方法:

    第一种.删除原目录,先删除data文件和logs日志文件夹,然后再格式化NameNode。data文件的路径在core-site.xml下配置的hadoop.tmp.dir所指向的目录。

     

    第二种:将namenode节点和datanode节点中的集群id复制粘贴为一致。

    展开全文
  • Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)

    万次阅读 多人点赞 2017-05-11 23:13:17
    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0) 版本:CentOS7 Hadoop2.8.0 JDK1.8
  • Hadoop集群搭建

    千次阅读 2016-10-24 10:20:20
    Hadoop集群搭建
  • Hadoop集群运维

    千次阅读 2019-06-06 12:15:02
    集群故障模拟 场景1:namenode节点故障,active namenode节点状态切换?如何恢复? 1.1 Hadoop HA 的namenode状态切换...测试步骤:把standby namenode进程kill掉,active节点服务正常,不影响hadoop集群服务,数据...
  • 利用ubuntu搭建高可用的hadoop集群系列之五——hadoop集群搭建 1、集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed ...
  • hadoop集群搭建(超详细版)

    万次阅读 多人点赞 2018-05-03 12:09:13
    1.准备好需要安装的软件 虚拟机VMware12.pro 操作系统CentOS 6.5 远程控制虚拟机的终端SecureCRT8.1 2.在虚拟机中安装CentOS操作系统 安装好虚拟机,图形界面如下图 创建新的虚拟机,选择...设置虚...
  • Hadoop集群安装部署

    千次阅读 2020-10-06 20:58:44
    hadoop集群安装部署 1、服务器主机名和IP配置(三台) 2、修改每个主机的/etc/hosts文件,添加IP和主机名的对应关系(三台) 3、管理节点到从节点配置无密码登录 4、配置jdk 1.8(三台) 5、关闭防火墙(三台) 6、...
  • 操作Hadoop集群

    万次阅读 2017-08-12 13:35:08
    操作Hadoop集群 所有必要的配置完成后,将文件分发到所有机器上的HADOOP_CONF_DIR目录。这应该是所有机器上相同的目录。 一般来说,建议HDFS和YARN作为单独的用户运行。在大多数安装中,HDFS进程作为“hdfs”执行。...
  • IntelliJ IDEA连接Hadoop集群

    千次阅读 2019-10-14 16:33:38
    相关连接 HDFS相关知识 Hadoop集群连接 HDFS Java API IntelliJ IDEA连接Hadoop集群 注意事项 准备文件 具体步骤 WordCount程序示例
  • 关闭 Hadoop 集群

    千次阅读 2019-03-14 15:47:48
    关闭 Hadoop 集群也是在 Master 节点上执行的: stop-yarn.sh stop-dfs.sh mr-jobhistory-daemon.sh stop historyserver
  • Hadoop集群概念设计

    千次阅读 2019-03-28 21:00:57
    什么是Hadoop集群 Hadoop能做什么 Hadoop是什么?   Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算...
  • hadoop集群搭建 阅读目录 一、准备工作: 二、搭建Hadoop集群: 回到顶部 一、准备工作: 1、环境:CentOS6.4-64bit JDK1.7-64bit  基于虚拟机拷贝4个虚拟机,一个作为Master,另外三个作为Slave,在这拷贝...
  • hadoop集群搭建 阅读目录 一、准备工作: 二、搭建Hadoop集群: 回到顶部 一、准备工作: 1、环境:CentOS6.4-64bit JDK1.7-64bit  基于虚拟机拷贝4个虚拟机,一个作为Master,另外三个作为Slave,在这拷贝...
  • Hadoop集群管理2

    千次阅读 2020-11-09 09:04:42
    Hadoop集群管理 集群架构图例 #mermaid-svg-Fw093eTymxsPeriQ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Fw093eTymxsPeriQ ....
  • HDInsight如何创建Hadoop集群

    千次阅读 2014-12-15 17:46:20
    HDInsight如何创建Hadoop集群 带大家一起看下微软Azure云中的Hadoop集群创建,首先你必须先创建个存储账号,然后新建Hadoop集群,等待21分钟左右,一个Hadoop集群就创建完成了,看图:
  • Eclipse连接Hadoop集群(详细版)

    千次阅读 2019-10-14 16:33:05
    相关连接 HDFS相关知识 Hadoop集群的安装与部署 Hadoop集群连接 HDFS Java API Eclipse连接Hadoop集群 注意事项 准备文件 具体步骤 WordCount程序运行示例
  • hadoop 集群常见错误解决办法

    千次阅读 2018-06-09 07:58:28
    hadoop 集群常见错误解决办法阅读目录hadoop 集群常见错误解决办法hadoop错误和解决方法汇总 回到目录hadoop 集群常见错误解决办法hadoop 集群常见错误解决办法: (一)启动Hadoop集群时易出现的错误: 1....
  • Hadoop集群、Hbase集群指定ssh端口 在生产环境中,为了安全起见,往往会禁掉ssh默认的22端口,分为几个步骤: 1)修改ssh的端口 vi /etc/ssh/sshd_config 在这个配置里修改端口为 port 2222 去掉上面图片显示的注释...
  • hadoop 集群搭建

    千次阅读 2018-01-21 00:03:37
    前面说到使用单机搭建hadoop 伪分布式集群,这篇文章讲的是怎么搭建hadoop集群。 这里我是用3台虚拟机 192.168.1.221 spark1 192.168.1.222 spark2 192.168.1.223 spark3 如果不会搭建虚拟机的同学可以参考这篇...
  • 需要注意的地方: (1)修改C:\Windows\System32\drivers\etc\hosts文件: ...(2)hadoop集群的配置出了常规的,在hdfs-site.xml中添加一个property: dfs.permissions false (3)编写的java文件要编译成.
  • Hadoop集群系列(目录)

    千次阅读 2015-07-27 12:56:26
    下面是Hadoop集群系列的目录安排,按照一星期发布一期的原则进行。希望大家的关注。  目录安排:  1)Hadoop集群_第1期_CentOS安装配置_V1.0  2)Hadoop集群_第2期_机器信息分布表_V1.1  3)Hadoop...
  • 本文描述了如何安装、配置和管理有实际意义的Hadoop集群,其规模可从几个节点的小集群到几千个节点的超大集群。 如果你希望在单机上安装Hadoop玩玩,从这里能找到相关细节。 更多精彩内容 精彩内容点我学 先决...
  • 从零搭建 Hadoop 集群

    2018-12-09 23:30:16
    随着 Hadoop 的落地普及和大数据的发展,越来越多的公司和工程师开始关注 Hadoop 以及搭建大数据集群,想不想在公司寻找搭建 Hadoop 人才时脱颖而出,就算是菜鸟,就算一点不了解 Hadoop,也能让你完美从 0 入门,对...
  • 基于Docker快速搭建多节点Hadoop集群

    千次阅读 2018-01-28 00:27:10
    基于Docker快速搭建多节点Hadoop集群 【编者的话】Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中。这篇教程介绍了利用Docker在单机上快速搭建多节点Hadoop集群的详细步骤。作者在发现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,135
精华内容 27,254
关键字:

hadoop集群