精华内容
下载资源
问答
  • 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集群搭建完成

    展开全文
  • 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复制粘贴为一致。

    展开全文
  • 阿里云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

    展开全文
  • 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


    1下载hadoop

    2安装3个虚拟机并实现ssh免密码登录

            2.1安装3个机器

            2.2检查机器名称

            2.3修改/etc/hosts文件

            2.4 给3个机器生成秘钥文件

            2.5 在hserver1上创建authorized_keys文件

            2.6将authorized_keys文件复制到其他机器

            2.7 测试使用ssh进行无密码登录

                       2.7.1在hserver1上进行测试

                       2.7.2在hserver2上进行测试

                       2.7.3在hserver3上进行测试

    3安装jdk和hadoop

             3.1安装JDK

             3.2安装hadoop

                      3.2.1上载文件并解压缩

                      3.2.2新建几个目录

                      3.2.3修改etc/hadoop中的一系列配置文件

                                  3.2.3.1修改core-site.xml

                                  3.2.3.2修改hadoop-env.sh

                                  3.2.3.3修改hdfs-site.xml

                                  3.2.3.4新建并且修改mapred-site.xml

                                  3.2.3.5修改slaves文件

                                  3.2.3.6修改yarn-site.xml文件

    4启动hadoop

                  4.1在namenode上执行初始化

                  4.2在namenode上执行启动命令

    5测试hadoop

     

      关键字:Linux  CentOS  Hadoop  Java

      版本:  CentOS7  Hadoop2.8.0  JDK1.8

      说明:Hadoop从版本2开始加入了Yarn这个资源管理器,Yarn并不需要单独安装。只要在机器上安装了JDK就可以直接安装Hadoop,单纯安装Hadoop并不依赖Zookeeper之类的其他东西。

    1下载hadoop

         本博文使用的hadoop是2.8.0

        打开下载地址选择页面:

    http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz

        如图:


    我使用的地址是:

           http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz 

    2安装3个虚拟机并实现ssh免密码登录

    2.1安装3个机器

            这里用的Linux系统是CentOS7(其实Ubuntu也很好,但是这里用的是CentOS7演示),安装方法就不多说了,如有需要请参考该博文:

            http://blog.csdn.net/pucao_cug/article/details/71229416

            安装3个机器,机器名称分别叫hserver1、hserver2、hserver3(说明机器名不这么叫可以,待会用hostname命令修改也行)。

    如图:

       

     

              说明:为了免去后面一系列授权的麻烦,这里直接使用root账户登录和操作了。

              使用ifconfig命令,查看这3个机器的IP。我的机器名和ip的对应关系是:

    192.168.119.128   hserver1

    192.168.119.129   hserver2

    192.168.119.130   hserver3

    2.2检查机器名称

             为了后续操作方便,确保机器的hostname是我们想要的。拿192.168.119.128这台机器为例,用root账户登录,然后使用hostname命令查看机器名称

    如图:

        

            发现,这个机器名称不是我们想要的。不过这个好办, 我给它改个名称,命令是:

    hostname   hserver1

    如图:

       

             执行完成后,在检查看,是否修改了,敲入hostname命令

      如图:

          

              类似的,将其他两个机器,分别改名为hserver2和hserver3。

    2.3 修改/etc/hosts文件

            修改这3台机器的/etc/hosts文件,在文件中添加以下内容:

    192.168.119.128   hserver1
    192.168.119.129   hserver2
    192.168.119.130   hserver3

    如图:

         

              说明:IP地址没必要和我的一样,这里只是做一个映射,只要映射是对的就可以,至于修改方法,可以用vim命令,也可以在你的本地机器上把hosts文件内容写好后,拿到Linux机器上去覆盖。

              配置完成后使用ping命令检查这3个机器是否相互ping得通,以hserver1为例,在什么执行命令:

     ping  -c 3  hserver2

    如图:

         


           执行命令:

    ping  -c  3  hserver3

    如图:

         

            ping得通,说明机器是互联的,而且hosts配置也正确。

    2.4给3个机器生成秘钥文件

             以hserve1为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:

    ssh-keygen  -t   rsa   -P  ''

    如图:

         

     

             因为我现在用的是root账户,所以秘钥文件保存到了/root/.ssh/目录内,可以使用命令查看,命令是:

    ls    /root/.ssh/

    如图:

       

           使用同样的方法为hserver2和hserver3生成秘钥(命令完全相同,不用做如何修改)。

    2.5在hserver1上创建authorized_keys文件

              接下来要做的事情是在3台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。为了方便,我下面的步骤是现在hserver1上生成authorized_keys文件,然后把3台机器刚才生成的公钥加入到这个hserver1authorized_keys文件里,然后在将这个authorized_keys文件复制到hserver2hserver3上面。

           首先使用命令,在hserver1的/root/.ssh/目录中生成一个名为authorized_keys的文件,命令是:

    touch  /root/.ssh/authorized_keys

    如图:

        

          可以使用命令看,是否生成成功,命令是:

    ls   /root/.ssh/

    如图:

        

              其次将hserver1上的/root/.ssh/id_rsa.pub文件内容,hserver2上的/root/.ssh/id_rsa.pub文件内容,hserver3上的/root/.ssh/id_rsa.pub文件内容复制到这个authorized_keys文件中,复制的方法很多了,可以用cat命令和vim命令结合来弄,也可以直接把这3台机器上的/root/.ssh/id_rsa.pub文件下载到本地,在本地将authorized_keys文件编辑好在上载到这3台机器上。

    hserver1机器上我的/root/.ssh/id_rsa.pub内容是:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD8fTIVorOxgDo81yCEgcJTstUcyfOBecL+NZ/OLXCEzaBMw5pLV0UNRX6SZnaAgu/erazkz4sw74zfRIMzEeKKCeNcZ6W78cg+ZNxDcj8+FGeYqY5+nc0YPhXFVI7AwFmfr7fH5hoIT14ClKfGklPgpEgUjDth0PeRwnUTvUy9A1x76npjAZrknQsnoLYle7cVJZ/zO3eGxS75YEdTYDMv+UMiwtcJg7UxOqR+9UT3TO+xLk0yOl8GIISXzMhdCZkmyAH+DmW56ejzsd+JWwCMm177DtOZULl7Osq+OGOtpbloj4HCfstpoiG58SM6Nba8WUXWLnbgqZuHPBag/Kqjroot@hserver1

    hserver2机器上我的/root/.ssh/id_rsa.pub内容是:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC29kPkYz4c3bd9Qa1TV8kCR0bUNs4f7/dDcR1NKwrgIiecN7zPEWJpjILtlm3niNNx1j5R49QLTLBKKo8PE8mid47POvNypkVRGDeN2IVCivoAQ1T7S8bTJ4zDECGydFYyKQfS2nOAifAWECdgFFtIp52d+dLIAg1JC37pfER9f32rd7anhTHYKwnLwR/NDVGAw3tMkXOnFuFKUMdOJ3GSoVOZf3QHKykGIC2fz/lsXZHaCcQWvOU/Ecd9e0263Tvqh7zGWpF5WYEGjkLlY8v2sioeZxgzog1LWycUTMTqaO+fSdbvKqVj6W0qdy3Io8bJ29Q3S/6MxLa6xvFcBJEXroot@hserver2

    hserver2机器上我的/root/.ssh/id_rsa.pub内容是:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1a2o10ttv2570GpuUZy7g9o7lIkkeed7ba25VvFEBcUroQIZ+NIAiVIMGPRiOqm7X4bTLWj5EOz5JXG2l8rwA6CFnWfW3U+ttD1COLOrv2tHTiJ1PhQy1jJR/LpC1iX3sNIDDs+I0txZFGTCTRMLmrbHVTl8j5Yy/CTYLuC7reIZjzpHP7aaS2ev0dlbQzeB08ncjA5Jh4X72qQMOGPUUc2C9oa/CeCvI0SJbt8mkHwqFanZz/IfhLJIKhupjtYsqwQMmzLIjHxbLRwUGoWU6X4e76OkUz/xyyHlzBg1Vu2F9hjoXPW80VmupIRSXFDliDBJ8NlXXQN47wwYBG28broot@hserver3

    合并之后,我的hserver1机器上的/root/.ssh/authorized_keys文件内容是:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD8fTIVorOxgDo81yCEgcJTstUcyfOBecL+NZ/OLXCEzaBMw5pLV0UNRX6SZnaAgu/erazkz4sw74zfRIMzEeKKCeNcZ6W78cg+ZNxDcj8+FGeYqY5+nc0YPhXFVI7AwFmfr7fH5hoIT14ClKfGklPgpEgUjDth0PeRwnUTvUy9A1x76npjAZrknQsnoLYle7cVJZ/zO3eGxS75YEdTYDMv+UMiwtcJg7UxOqR+9UT3TO+xLk0yOl8GIISXzMhdCZkmyAH+DmW56ejzsd+JWwCMm177DtOZULl7Osq+OGOtpbloj4HCfstpoiG58SM6Nba8WUXWLnbgqZuHPBag/Kqjroot@hserver1
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC29kPkYz4c3bd9Qa1TV8kCR0bUNs4f7/dDcR1NKwrgIiecN7zPEWJpjILtlm3niNNx1j5R49QLTLBKKo8PE8mid47POvNypkVRGDeN2IVCivoAQ1T7S8bTJ4zDECGydFYyKQfS2nOAifAWECdgFFtIp52d+dLIAg1JC37pfER9f32rd7anhTHYKwnLwR/NDVGAw3tMkXOnFuFKUMdOJ3GSoVOZf3QHKykGIC2fz/lsXZHaCcQWvOU/Ecd9e0263Tvqh7zGWpF5WYEGjkLlY8v2sioeZxgzog1LWycUTMTqaO+fSdbvKqVj6W0qdy3Io8bJ29Q3S/6MxLa6xvFcBJEXroot@hserver2
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1a2o10ttv2570GpuUZy7g9o7lIkkeed7ba25VvFEBcUroQIZ+NIAiVIMGPRiOqm7X4bTLWj5EOz5JXG2l8rwA6CFnWfW3U+ttD1COLOrv2tHTiJ1PhQy1jJR/LpC1iX3sNIDDs+I0txZFGTCTRMLmrbHVTl8j5Yy/CTYLuC7reIZjzpHP7aaS2ev0dlbQzeB08ncjA5Jh4X72qQMOGPUUc2C9oa/CeCvI0SJbt8mkHwqFanZz/IfhLJIKhupjtYsqwQMmzLIjHxbLRwUGoWU6X4e76OkUz/xyyHlzBg1Vu2F9hjoXPW80VmupIRSXFDliDBJ8NlXXQN47wwYBG28broot@hserver3

    如图:

        

    2.6将authorized_keys文件复制到其他机器

            hserver1机器的/root/.ssh/目录下已经有authorized_keys这个文件了,该文件的内容也已经OK了,接下来要将该文件复制到hserver2的/root/.ssh/和hserver3的/root/.ssh/。

           复制的方法有很多,最简单的就是用SecureFX可视化工具操作吧。

           复制完成后,可以看到三台机器的/root/.ssh目录下都有了这样的文件

           如图:

           

            上图已经说得很清楚了,三台机器的/root/.ssh都有同名的文件,但是只有authorized_keys文件的内容是相同的。

    2.7测试使用ssh进行无密码登录


    2.7.1在hserver1上进行测试

           输入命令:

    ssh   hserver2

    如图:

      

     输入命令:

     exit回车

    如图:

       

    输入命令:

    ssh   hserver3

    如图:

       

    输入命令:

     exit回车

    如图:

        

    2.7.2 在hserver2上进行测试

            方法类似2.7.1,只不过命令变成了ssh  hserver1和ssh  hserver3,但是一定要注意的是,每次ssh完成后,都要执行exit,否则你的后续命令是在另外一台机器上执行的。

    2.7.3 在hserver3上进行测试

          方法类似2.7.1,只不过命令变成了ssh  hserver1和ssh  hserver2,但是一定要注意的是,每次ssh完成后,都要执行exit,否则你的后续命令是在另外一台机器上执行的。

    3安装jdk和hadoop

             说明,为了省去一系列获取管理员权限,授权等繁琐操作,精简教程,这里都是使用root账户登录并且使用root权限进行操作。

    3.1 安装JDK

            安装jdk在这里不在细数,如果有需要可以参考该博文(虽然那篇博文用的是ubuntu,但是jdk安装在CentOS下也一样):

    http://blog.csdn.net/pucao_cug/article/details/68948639

    3.2  安装hadoop

            注意: 3台机器上都需要重复下面所讲的步骤。

    3.2.1 上载文件并解压缩

            在opt目录下新建一个名为hadoop的目录,并将下载得到的hadoop-2.8.0.tar上载到该目录下,如图:

        

             进入到该目录,执行命令:

    cd   /opt/hadoop

               执行解压命令:

     tar  -xvf   hadoop-2.8.0.tar.gz

                说明:3台机器都要进行上述操作,解压缩后得到一个名为hadoop-2.8.0的目录。

    3.2.2新建几个目录

               在/root目录下新建几个目录,复制粘贴执行下面的命令:

    mkdir  /root/hadoop
    mkdir  /root/hadoop/tmp
    mkdir  /root/hadoop/var
    mkdir  /root/hadoop/dfs
    mkdir  /root/hadoop/dfs/name
    mkdir  /root/hadoop/dfs/data

    3.2.3 修改etc/hadoop中的一系列配置文件

              修改/opt/hadoop/hadoop-2.8.0/etc/hadoop目录内的一系列文件。

    3.2.3.1 修改core-site.xml

                修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml文件

              在<configuration>节点内加入配置:

     <property>

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

            <value>/root/hadoop/tmp</value>

            <description>Abase for other temporary directories.</description>

       </property>

       <property>

            <name>fs.default.name</name>

            <value>hdfs://hserver1:9000</value>

       </property>

    </configuration>

    3.2.3.2 修改hadoop-env.sh

             修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/hadoop-env.sh文件

             将export   JAVA_HOME=${JAVA_HOME}

             修改为:

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

            说明:修改为自己的JDK路径

    3.2.3.3 修改hdfs-site.xml

              修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/hdfs-site.xml文件

              在<configuration>节点内加入配置:

    <property>

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

       <value>/root/hadoop/dfs/name</value>

       <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>

    </property>

    <property>

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

       <value>/root/hadoop/dfs/data</value>

       <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>

    </property>

    <property>

       <name>dfs.replication</name>

       <value>2</value>

    </property>

    <property>

          <name>dfs.permissions</name>

          <value>false</value>

          <description>need not permissions</description>

    </property>

              说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。

    3.2.3.4 新建并且修改mapred-site.xml

               在该版本中,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:

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

              修改这个新建的mapred-site.xml文件,在<configuration>节点内加入配置:

     <property>

       <name>mapred.job.tracker</name>

       <value>hserver1:49001</value>

    </property>

    <property>

          <name>mapred.local.dir</name>

           <value>/root/hadoop/var</value>

    </property>

    <property>

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

           <value>yarn</value>

    </property>


    3.2.3.5 修改slaves文件

             修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:

    hserver2
    hserver3

    3.2.3.6 修改yarn-site.xml文件

             修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,

             在<configuration>节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):

    <property>

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

            <value>hserver1</value>

       </property>

       <property>

            <description>The address of the applications manager interface in the RM.</description>

            <name>yarn.resourcemanager.address</name>

            <value>${yarn.resourcemanager.hostname}:8032</value>

       </property>

       <property>

            <description>The address of the scheduler interface.</description>

            <name>yarn.resourcemanager.scheduler.address</name>

            <value>${yarn.resourcemanager.hostname}:8030</value>

       </property>

       <property>

            <description>The http address of the RM web application.</description>

            <name>yarn.resourcemanager.webapp.address</name>

            <value>${yarn.resourcemanager.hostname}:8088</value>

       </property>

       <property>

            <description>The https adddress of the RM web application.</description>

            <name>yarn.resourcemanager.webapp.https.address</name>

            <value>${yarn.resourcemanager.hostname}:8090</value>

       </property>

       <property>

            <name>yarn.resourcemanager.resource-tracker.address</name>

            <value>${yarn.resourcemanager.hostname}:8031</value>

       </property>

       <property>

            <description>The address of the RM admin interface.</description>

            <name>yarn.resourcemanager.admin.address</name>

            <value>${yarn.resourcemanager.hostname}:8033</value>

       </property>

       <property>

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

            <value>mapreduce_shuffle</value>

       </property>

       <property>

            <name>yarn.scheduler.maximum-allocation-mb</name>

            <value>2048</value>

            <discription>每个节点可用内存,单位MB,默认8182MB</discription>

       </property>

       <property>

            <name>yarn.nodemanager.vmem-pmem-ratio</name>

            <value>2.1</value>

       </property>

       <property>

            <name>yarn.nodemanager.resource.memory-mb</name>

            <value>2048</value>

    </property>

       <property>

            <name>yarn.nodemanager.vmem-check-enabled</name>

            <value>false</value>

    </property>

           说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。

    4启动hadoop

    4.1在namenode上执行初始化

               因为hserver1是namenode,hserver2和hserver3都是datanode,所以只需要对hserver1进行初始化操作,也就是对hdfs进行格式化。

              进入到hserver1这台机器的/opt/hadoop/hadoop-2.8.0/bin目录,也就是执行命令:

    cd   /opt/hadoop/hadoop-2.8.0/bin

               执行初始化脚本,也就是执行命令:

     ./hadoop  namenode  -format

    如图:

             

          稍等几秒,不报错的话,即可执行成功,如图:      

              格式化成功后,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件

              如图:

     

    4.2在namenode上执行启动命令

               因为hserver1是namenode,hserver2和hserver3都是datanode,所以只需要再hserver1上执行启动命令即可。

               进入到hserver1这台机器的/opt/hadoop/hadoop-2.8.0/sbin目录,也就是执行命令:

    cd    /opt/hadoop/hadoop-2.8.0/sbin

              执行初始化脚本,也就是执行命令:

     ./start-all.sh

             第一次执行上面的启动命令,会需要我们进行交互操作,在问答界面上输入yes回车

    如图:


    5测试hadoop

               haddoop启动了,需要测试一下hadoop是否正常。

              执行命令,关闭防火墙,CentOS7下,命令是:

              systemctl   stop   firewalld.service

             如图:

             

                hserver1是我们的namanode,该机器的IP192.168.119.128,在本地电脑访问如下地址:

                 http://192.168.119.128:50070/

                 自动跳转到了overview页面

             如图:

       

     

                在本地浏览器里访问如下地址:

                http://192.168.119.128:8088/

               自动跳转到了cluster页面

               如图:

        

    展开全文
  • hadoop集群搭建 修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vimhadoop-env.sh 2)core-site.xml vim core-site.xml <configuration> <!-- 指定HDFS...
  • IntelliJ IDEA连接Hadoop集群

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

    千次阅读 2021-04-07 14:18:52
    Hadoop集群环境搭建 1环境需求 本文是用过Vmware搭建的三台linux虚拟机。 Vmware安装包自取 Mac:链接:https://pan.baidu.com/s/1unYcc_hc9SA5O5-QvZFe-A 密码:h20j Windows:链接:...
  • Hadoop集群搭建

    千次阅读 2016-10-24 10:20:20
    Hadoop集群搭建
  • hadoop集群搭建(超详细版)

    万次阅读 多人点赞 2018-05-03 12:09:13
    用adduser新建用户并设置密码 将新建的hadoop用户添加到hadoop用户组 前面hadoop指的是用户组名,后一个指的是用户名 赋予hadoop用户root权限 12.3 安装hadoop并配置环境变量 由于hadoop集群需要在每一个节点上进行...
  • 利用ubuntu搭建高可用的hadoop集群系列之五——hadoop集群搭建 1、集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed ...
  • Hadoop集群运维

    千次阅读 2019-06-06 12:15:02
    集群故障模拟 场景1:namenode节点故障,active namenode节点状态切换?如何恢复? 1.1 Hadoop HA 的namenode状态切换...测试步骤:把standby namenode进程kill掉,active节点服务正常,不影响hadoop集群服务,数据...
  • 操作Hadoop集群

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

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

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

    千次阅读 2014-12-15 17:46:20
    HDInsight如何创建Hadoop集群 带大家一起看下微软Azure云中的Hadoop集群创建,首先你必须先创建个存储账号,然后新建Hadoop集群,等待21分钟左右,一个Hadoop集群就创建完成了,看图:
  • 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 ....
  • hadoop 集群常见错误解决办法

    千次阅读 2018-06-09 07:58:28
    hadoop 集群常见错误解决办法阅读目录hadoop 集群常见错误解决办法hadoop错误和解决方法汇总 回到目录hadoop 集群常见错误解决办法hadoop 集群常见错误解决办法: (一)启动Hadoop集群时易出现的错误: 1....
  • 需要注意的地方: (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玩玩,从这里能找到相关细节。 更多精彩内容 精彩内容点我学 先决...
  • 基于Docker快速搭建多节点Hadoop集群

    千次阅读 2018-01-28 00:27:10
    基于Docker快速搭建多节点Hadoop集群 【编者的话】Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中。这篇教程介绍了利用Docker在单机上快速搭建多节点Hadoop集群的详细步骤。作者在发现...
  • VMware 下Hadoop集群环境搭建之新建虚拟机 VMware 下Hadoop集群环境搭建之为虚拟机安装CentOS 6.7 64位系统 VMware 下Hadoop集群环境搭建之CentOS 6.7 网络配置的相关配置,JDK的安装 虚拟机...
  • Hadoop集群简介和搭建步骤

    千次阅读 2019-06-04 17:58:14
    在搭建Hadoop集群之前,先简单了解一下Hadoop集群 Hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高度运算和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,337
精华内容 30,134
关键字:

hadoop集群