创新路
我们一直在努力

CentOS 7 安装Hadoop 2.7.1

   Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

  对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

  从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

网络配置

master-CentOS7

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
网络信息根据自己实际的网络情况配置,在这里我的master-CentOS7的IP设置为192.168.26.182。
[root@localhost ~]# systemctl restart network

slave-CentOS7

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
网络信息根据自己实际的网络情况配置,在这里我的slave-CentOS7的IP设置为192.168.26.183。
[root@localhost ~]# systemctl restart network

设置hosts、hostname

master-CentOS7

[root@localhost ~]# vi /etc/hosts
192.168.26.182 master
192.168.26.183 slave
[root@localhost ~]# vi /etc/hostname
localhost.localdomain内容修改为
master

slave-CentOS7

[root@localhost ~]# vi /etc/hosts
192.168.26.182 master
192.168.26.183 slave
[root@localhost ~]# vi /etc/hostname
localhost.localdomain内容修改为
slave

关闭selinux

master-CentOS7

[root@master ~]# vi /etc/selinux/config
修改为SELINUX=disabled
保存重启

slave-CentOS7

[root@slave ~]# vi /etc/selinux/config
修改为SELINUX=disabled
保存重启

关闭firewalld

master-CentOS7

[root@master ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@master ~]# systemctl stop firewalld

slave-CentOS7

[root@slave ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@slave ~]# systemctl stop firewalld

密钥登陆

master-CentOS7

[root@master ~]# ssh-keygen

[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa 192.168.26.182

[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa 192.168.26.183

[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub master

[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub slave

slave-CentOS7

[root@slave ~]# ssh-keygen

[root@slave ~]# ssh-copy-id -i ~/.ssh/id_rsa 192.168.26.182

[root@slave ~]# ssh-copy-id -i ~/.ssh/id_rsa 192.168.26.183

[root@slave ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub master

[root@slave ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub slave



测试

master-CentOS7

[root@master ~]# ssh master
[root@master ~]# exit
[root@master ~]# ssh slave
[root@slave ~]# exit

安装JDK

hadoop2.7 需要安装jdk1.7版本,下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

先卸载CetnOS7自带的JDK  以slave-CentOS7为例(master-CetnOS7、slave-CentOS7上都需要卸载CetnOS7自带的JDK)

[root@slave ~]# java -version    //查看已安装的java版本,如果没有安装,卸载JDK这一步可以省略。
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
[root@master ~]# rpm -qa |grep jdkjava-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64
java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64
java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64
java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64
[root@slave ~]# yum -y remove java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64
[root@slave ~]# yum -y remove java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64
[root@slave ~]# yum -y remove java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64
[root@slave ~]# java -version-bash: /usr/bin/java: 没有那个文件或目录

master-CentOS7

[root@master ~]# wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1472372876_f3205a608139acb432d3c48638502428 
[root@master ~]# mv jdk-7u79-linux-x64.tar.gz\?AuthParam\=1472372876_f3205a608139acb432d3c48638502428  jdk-7u79-linux-x64.tar.gz
[root@master ~]# tar zxvf jdk-7u79-linux-x64.tar.gz
[root@master ~]# mv jdk1.7.0_79 /usr/local/
[root@master ~]# vi /etc/profile.d/java.sh
添加
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
[root@master ~]# source !$
source /etc/profile.d/java.sh
[root@master ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[root@master ~]# scp jdk-7u79-linux-x64.tar.gz slave:/root/
[root@master ~]# scp /etc/profile.d/java.sh slave:/etc/profile.d/

slave-CentOS7

[root@slave ~]# tar zxvf jdk-7u79-linux-x64.tar.gz
[root@slave ~]# mv jdk1.7.0_79 /usr/local/
[root@slave ~]# source /etc/profile.d/java.sh
[root@slave ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

安装Hadoop

master-CentOS7

[root@master ~]# wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
[root@master ~]# tar zxvf hadoop-2.7.1.tar.gz
[root@master ~]# mv hadoop-2.7.1 /usr/local/Hadoop
[root@master ~]# ls !$
ls /usr/local/hadoop
bin  include  libexec      NOTICE.txt  sbin
etc  lib      LICENSE.txt  README.txt  share
[root@master ~]# mkdir /usr/local/hadoop/tmp  /usr/local/hadoop/dfs  /usr/local/hadoop/dfs/data  /usr/local/hadoop/dfs/name
[root@master ~]# ls /usr/local/hadoop
bin  dfs  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  README.txt  sbin  share  tmp
[root@master ~]# rsync -av /usr/local/hadoop  slave:/usr/local

slave-CentOS7

[root@slave ~]# ls /usr/local/hadoop
bin  etc      lib      LICENSE.txt  README.txt  share
dfs  include  libexec  NOTICE.txt   sbin        tmp

配置Hadoop

master-CentOS7

[root@master ~]# vi /usr/local/hadoop/etc/hadoop/core-site.xml
添加<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.26.182:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
  </configuration>注意master-CentOS7主机的IP
[root@master ~]# vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
添加<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.26.182:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
  </configuration>注意master-CentOS7主机的IP
[root@master ~]# mv /usr/local/hadoop/etc/hadoop/mapred-site.xml.template  /usr/local/hadoop/etc/hadoop/mapred-site.xml
[root@master ~]# vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
添加<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.26.182:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.26.182:19888</value>
    </property>
  </configuration>注意master-CentOS7主机的IP
[root@master ~]# vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
添加<configuration><!-- Site specific YARN configuration properties -->
    <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>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.26.182:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.26.182:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.26.182:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.26.182:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.26.182:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
    </property>
  </configuration>注意master-CentOS7主机的IP
[root@master ~]# cd /usr/local/hadoop/etc/hadoop
[root@master hadoop]# vi hadoop-env.sh
更改
export JAVA_HOME=/usr/local/jdk1.7.0_79
[root@master hadoop]# vi yarn-env.sh
更改
export JAVA_HOME=/usr/local/jdk1.7.0_79
[root@master hadoop]# vi slaves
更改为
192.168.26.183
注意slave-CentOS7的IP
[root@master hadoop]# rsync -av /usr/local/hadoop/etc/ slave:/usr/local/hadoop/etc/

slave-CentOS7

[root@slave ~]# cd /usr/local/hadoop/etc/hadoop/
[root@slave hadoop]# cat slaves
192.168.26.183      \\检查slave没问题

启动Hadoop

master-CentOS7

[root@master hadoop]# /usr/local/hadoop/bin/hdfs namenode -format
[root@master hadoop]# echo $?
0
[root@master hadoop]# /usr/local/hadoop/sbin/start-all.sh
[root@master hadoop]# jps
19907 ResourceManager
19604 SecondaryNameNode
19268 NameNode20323 Jps

slave-CentOS7

[root@slave hadoop]# jps
18113 NodeManager
18509 Jps
17849 DataNode

浏览器打开  http://192.168.26.182:8088/  http://192.168.26.182:50070/

测试Hadoop

master-CentOS7

[root@master hadoop]# cd /usr/local/hadoop/
[root@master hadoop]# bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 10 10

停止服务

master-CentOS7

[root@master hadoop]# cd /usr/local/hadoop[root@master hadoop]# sbin/stop-all.sh

未经允许不得转载:天府数据港官方信息博客 » CentOS 7 安装Hadoop 2.7.1

客官点个赞呗! (1)
分享到:

评论 1

评论前必须登录!

  1. #1

    详细步骤和原理呢?这个还只是开始,这个hadoop能够为您带来什么效果呢?

    行走在太行3年前 (2017-01-05)

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机