Hadoop安装详解

一、安装须知

  1. 要安装hadoop必须要安装虚拟化软件(VMware或VirtualBox)
  2. 网上下载操作系统(ubuntu或centos)
    CentOS:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
    Ubuntu:https://www.ubuntu.com/download
    我这里使用的是centos。
  3. 需下载jdk和hadoop的安装文件
    ① jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    ② hadoop:http://mirrors.shuosc.org/apache/hadoop/common/hadoop-2.9.0/
  4. 需安装xshell、xftp

二、配置IP(我这里配置的时静态的IP)

vi /etc/sysconfig/network-scripts/ifcfg-eno0
注意:有可能你配置的环境下不叫ifcfg-eno0,这个不重要找ifcfg-enoXXX命名的文件。
我将我本机的配置文件贴出来:

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.13.5.251
NETMASK=255.255.255.0
GATEWAY=10.13.5.1
NM_CONTROLLED=NO
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=7c69f6da-ca06-4740-866d-56e0224a06a8
DEVICE=eno16777736
ONBOOT=yes

注意:自己去对比着改吧,这块懒得在自己抽出来写了。
重启服务:service netowrk restart出现提示敲回车就可以。
关闭防火墙:
systemctl stop firewalld.service 临时关闭防火墙
systemctl disable firewalld.service 禁止firewall开机启动
好了,现在就可以摆脱掉虚拟化工具了,可以用xshell去连接你虚拟出来的操作系统了

三、配置免加密

  1. 删除已有的 ssh 配置:rm -r ~/.ssh
  2. 生成新的 ssh-key:ssh-keygen -t rsa
  3. 为本机进行公钥的注册:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

四、解压jdk

  1. 创建目录: mkdir /usr/local/java
  2. 上传文件:用xftp上传jdk-8u151-linux-x64.tar.gz(我这里是这个版本,上传你们下载的版本即可)
  3. 解压文件:tar -zxvf jdk-8u151-linux-x64.tar.gz

五、解压hadoop

  1. 创建目录: mkdir /usr/local/hadoop
  2. 上传文件:用xftp上传hadoop-2.9.0.tar.gz(我这里是这个版本,上传你们下载的版本即可)
  3. 解压文件:tar -zxvf hadoop-2.9.0.tar.gz
  4. 修改配置文件:vi /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh
    修改文件中jdk位置:export JAVA_HOME=/usr/local/java/jdk1.8.0_151

六、配置环境变量

  1. 编辑环境变量:vi /etc/profile
HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.0/bin:/usr/local/hadoop/hadoop-2.9.0/sbin
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
  1. 设置环境变量立即生效:source /etc/profile

七、修改hosts文件

  1. 编辑hosts文件:vi /etc/hosts 在尾部加上下面这段,ip按照自己的ip去配置,名称也是一样就是个标识
10.13.5.251 master
10.13.5.252 slave01
10.13.5.253 slave02

八、伪分布式hadoop配置

  1. 在VMware上复制当前的系统,再克隆两份(如果只玩单机则不需做此步骤)。
  2. 在master机器上修改core-site.xml
    vi /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml

        
                fs.defaultFS
                hdfs://master:9000
        
        
                hadoop.tmp.dir
                /var/hadoop
        

解释:
① fs.defaultFS:指定 NameNode,9000是内部通讯端口
② hadoop.tmp.dir:指定存放目录,默认是在/tmp下,但这个目录是linux临时目录是存不住东西的,需要自己在/var 下创建hadoop目录。

  1. 在master机器上修改hdfs-site.xml
    vi /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml


    dfs.name.dir
    /usr/local/hadoop/hadoop-2.9.0/hdfs/name


    dfs.data.dir
    /usr/local/hadoop/hadoop-2.9.0/hdfs/data


    dfs.replication
    1


解释:
① dfs.name.dir:指定存储namenode数据的存放位置
② dfs.data.dir:指定存储datanode数据的存放位置
③ dfs.replication:指定数据的副本数量,如果是单机则为1

  1. 在master机器上修改mapred-site.xml.template
    vi /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template


    mapred.job.tracker
    master:9001
    Host or IP and port of JobTracker.


解释:
① mapred.job.tracker:指定运行jobtracker的RPC服务器的主机名和端口,如果设为默认值local,则运行一个MapReduce 作业时,jobtracker以处理时模式运行(换言之,用户无需启动jobtracker;如果试图在该模式下启动jobtracker还会引发错误)
② master是我再hosts配置的别名,对应的ip就是10.13.5.251

  1. 通过上面的配置我们其实已经配置了一个伪分布式的hadoop环境,可以直接执行数据格式化然后运行了。
    数据格式化:hadoop namenode -format
    启动服务:
    cd /usr/local/hadoop/hadoop-2.9.0/sbin/ 进入目录
    ./start-all.sh 启动服务
    ./stop-all.sh 关闭服务
    注意:如果按照上面启动的话只是配置了单机版的伪分布式hadoop环境,所以还是接着往下看吧。

九、集群环境hadoop配置

  1. 拷贝core-site.xml、mapred-site.xml.template、hdfs-site.xml到另外两台机器上
    cd /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
    scp core-site.xml root@slave01:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
    scp core-site.xml root@slave02:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
    scp mapred-site.xml.template root@slave01:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
    scp mapred-site.xml.template root@slave02:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
  2. 修改master机器上的hdfs-site.xml将dfs.replication的value值改为3,这样我们的数据就会有3个副本
    vi hdfs-site.xml


    dfs.name.dir
    /usr/local/hadoop/hadoop-2.9.0/hdfs/name

 

    dfs.data.dir
    /usr/local/hadoop/hadoop-2.9.0/hdfs/data



    dfs.replication
    3


scp hdfs-site.xml root@slave01:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
scp hdfs-site.xml root@slave02:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/

  1. 修改slaves文件,将localhost换成下面的内容
    vi slaves
master
slave01
slave02

scp slaves root@slave01:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/
scp slaves root@slave02:/usr/local/hadoop/hadoop-2.9.0/etc/hadoop/

  1. 拷贝数据存储目录
    ① 拷贝之前先删除已生成的数据
    cd /usr/local/hadoop/hadoop-2.9.0/etc/hadoop/hdfs
    rm -rf *
    ② 重新创建存储目录
    mkdir name
    mkdir data
    ③ 拷贝目录到slave01和slave02
    scp -r hdfs/ root@slave01:/usr/local/hadoop/hadoop-2.9.0
    scp -r hdfs/ root@slave02:/usr/local/hadoop/hadoop-2.9.0
  2. 拷贝临时目录
    ①删除已生成的数据
    cd /var/hadoop
    rm -rf *
    ② 拷贝目录到slave01和slave02
    scp -r /var/hadoop/ root@slave01:/var/
    scp -r /var/hadoop/ root@slave02:/var/
  3. 格式化集群的文件系统
    hadoop namenode -format
  4. 格式化后启动
    cd /usr/local/hadoop/hadoop-2.9.0/sbin/ 进入目录
    ./start-all.sh 启动服务
    8.查看进程jps
5744 SecondaryNameNode
6306 Jps
6004 NodeManager
5447 NameNode
5897 ResourceManager
5580 DataNode

控制台输出显示上面的这几个进程就表示已经启动成功了,我们可以在web端控制台看一下,打开浏览器输入http://10.13.5.251:50070/dfshealth.html#tab-datanode 快去看一下datanode的节点是否挂载上了。

你可能感兴趣的:(Hadoop安装详解)