大数据 - Hadoop安装

完全分布式集群安装

       windows安装vmwave后准备一台安linux系统的虚拟机(之后要克隆两台,算好硬盘和内存),这里使用centos6.5。

192.168.189.130 hadoop1
192.168.189.131 hadoop2
192.168.189.132 hadoop3

关闭防火墙

[root@hadoop1 ~]# service iptables stop

       如果不关,后续需要将端口一个个加入防火墙规则。

关闭selinux

[root@hadoop1 ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

修改主机名

[root@hadoop1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop1
[root@hadoop1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.189.130 hadoop1
192.168.189.131 hadoop2
192.168.189.132 hadoop3

设置静态IP

[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
IPADDR=192.168.189.130
NETMASK=255.255.255.0
DNS1=114.114.114.114
GATEWAY=192.168.189.2
NM_CONTROLLED=yes
BOOTPROTO=none
[root@hadoop1 ~]# service network restart

       这里的ip和网关要根据自己VMware虚拟网卡所在的网络设置,网关不对上不了外网。

配置jdk环境

       参考 https://blog.csdn.net/lyhkmm/article/details/79524712

配置用户权限

       新建hadoop用户(这里直接使用root也行,生产环境下通常会区分指定各个用户权限)。

[root@hadoop1 ~]# useradd hadoop
[root@hadoop1 ~]# passwd hadoop

       设置hadoop用户具有root权限 修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行。

[root@hadoop1 ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL

       创建hadoop安装目录

[root@hadoop1 ~]# mdkir /app/hadoop/

       设置权限

[root@hadoop1 ~]# chown -R hadoop:hadoop /app/hadoop/

VMware克隆出两台

        克隆出的两台需要修改ip地址为:192.168.189.131 192.168.189.132 。修改主机名为hadoop2 hadoop3,修改方法参考上面的方法。如果克隆后的虚拟机重启网络失败把/etc/sysconfig/network-scripts/ifcfg-eth0的HWADDR和UUID删了。

设置SSH免密钥

        关于ssh免密码的设置,要求每两台主机之间设置免密码。分别在三台节点的hadoop用户下执行,执行完毕公钥在/home/hadoop/.ssh/id_rsa.pub。

[hadoop@hadoop1 ~]$ ssh-keygen -t rsa
[hadoop@hadoop1 ~]$ ssh-copy-id hadoop1
[hadoop@hadoop1 ~]$ ssh-copy-id hadoop2
[hadoop@hadoop1 ~]$ ssh-copy-id hadoop3

[hadoop@hadoop2 ~]$ ssh-keygen -t rsa
[hadoop@hadoop2 ~]$ ssh-copy-id hadoop1
[hadoop@hadoop2 ~]$ ssh-copy-id hadoop2
[hadoop@hadoop2 ~]$ ssh-copy-id hadoop3

[hadoop@hadoop3 ~]$ ssh-keygen -t rsa
[hadoop@hadoop3 ~]$ ssh-copy-id hadoop1
[hadoop@hadoop3 ~]$ ssh-copy-id hadoop2
[hadoop@hadoop3 ~]$ ssh-copy-id hadoop3

下载安装

        https://hadoop.apache.org/releases.html 下载完后通过远程连接工具上传的/tmp下
大数据 - Hadoop安装_第1张图片

修改配置文件

[hadoop@hadoop1 ~]$ tar /tmp/zxvf hadoop-2.8.5.tar.gz -C /app/hadoop/
[hadoop@hadoop1 tmp]$ cd /app/hadoop/hadoop-2.8.5/etc/hadoop/
编辑core-site.xml
[hadoop@hadoop1 hadoop]$ vi core-site.xml


  
    fs.default.name
    hdfs://hadoop1:9000
  
  
    fs.defaultFS
    hdfs://hadoop1:9000
  
  
    io.file.buffer.size
    131072
  
  
    hadoop.tmp.dir
    /app/hadoop/hadoop-2.8.5/tmp
    Abase for other temporary directories.
  
  
    hadoop.proxyuser.hduser.hosts
    *
  
  
    hadoop.proxyuser.hduser.groups
    *
  

编辑hadoop-env.sh
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/usr/lib/java/jdk1.8.0_191
[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml

  
   dfs.namenode.secondary.http-address
   hadoop1:9001
  
  
   dfs.namenode.name.dir
   file:/app/hadoop/hadoop-2.8.5/name
  
  
   dfs.datanode.data.dir
   file:/app/hadoop/hadoop-2.8.5/data
  
  
   dfs.replication
   2
  
  
   dfs.webhdfs.enabled
   true
  

编辑mapred-site.xml
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml

  
    mapreduce.framework.name
    yarn
  
  
    mapreduce.jobhistory.address
    hadoop1:10020
  
  
    mapreduce.jobhistory.webapp.address
    hadoop1:19888
  

编辑mapred-env.sh
[hadoop@hadoop1 hadoop]$ vi mapred-env.sh
添加
export JAVA_HOME=/usr/lib/java/jdk1.8.0_191
编辑yarn-site.xml
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml


  
    yarn.nodemanager.aux-services
    mapreduce_shuffle
  
  
    yarn.nodemanager.aux-services.mapreduce.shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
  
  
    yarn.resourcemanager.address
    hadoop1:8032
  
  
    yarn.resourcemanager.scheduler.address
    hadoop1:8030
  
  
    yarn.resourcemanager.resource-tracker.address
    hadoop1:8031
  
  
    yarn.resourcemanager.admin.address
    hadoop1:8033
  
  
    yarn.resourcemanager.webapp.address
    hadoop1:8088
  

编辑slaves
[hadoop@hadoop1 hadoop]$ vi slaves
hadoop1
hadoop2
hadoop3

复制hadoop到子节点

[hadoop@hadoop1 hadoop]$ scp -r /app/hadoop/hadoop-2.8.5 hadoop@hadoop2:/app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r /app/hadoop/hadoop-2.8.5 hadoop@hadoop3:/app/hadoop/
[hadoop@hadoop1 hadoop]$ sudo vi /etc/profile
export HADOOP_CONF_DIR=/app/hadoop/hadoop-2.8.5/etc/hadoop
export HADOOP_HOME=/app/hadoop/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[hadoop@hadoop1 hadoop]$ source /etc/profile

       另外两台节点也要配置/etc/profile环境变量,可以直接scp过去

启动

       第一次启动,需要格式化namenode,以后就不用了。

[hadoop@hadoop1 hadoop]$ hdfs namenode -format

       可以一键启动,至于start-all.sh具体启动了什么可以查看脚本。

[hadoop@hadoop1 sbin]$ ./start-all.sh

       查看进程

[hadoop@hadoop1 sbin]$ jps
52608 ResourceManager
52929 Jps
52275 DataNode
52133 NameNode
52440 SecondaryNameNode
52715 NodeManager

       也可以只启动具体服务

[hadoop@hadoop1 sbin]$ ./start-dfs.sh
[hadoop@hadoop1 sbin]$ ./start-yarn.sh

       查看web ui http://hadoop1:50070/dfshealth.html windows的hosts文件上需要添加hadoop1的解析。

大数据 - Hadoop安装_第2张图片

       一键停止,也可以指定停止和启动类似

[hadoop@hadoop1 sbin]$ ./stop-all.sh

高可用

       生产环境使用,和上面类似,需要使用Zookeeper注册中心,配置文件和启动命名有所不同。

你可能感兴趣的:(大数据,大数据)