当前位置:   article > 正文

大数据 - Hadoop安装_林子雨hadoop安装教程

林子雨hadoop安装教程

完全分布式集群安装

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

192.168.189.130 hadoop1
192.168.189.131 hadoop2
192.168.189.132 hadoop3
  • 1
  • 2
  • 3
关闭防火墙
[root@hadoop1 ~]# service iptables stop
  • 1

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

关闭selinux
[root@hadoop1 ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
  • 1
  • 2
修改主机名
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
设置静态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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

配置jdk环境

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

配置用户权限

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

[root@hadoop1 ~]# useradd hadoop
[root@hadoop1 ~]# passwd hadoop
  • 1
  • 2

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

[root@hadoop1 ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL
  • 1
  • 2
  • 3
  • 4

       创建hadoop安装目录

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

       设置权限

[root@hadoop1 ~]# chown -R hadoop:hadoop /app/hadoop/
  • 1
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
下载安装

        https://hadoop.apache.org/releases.html 下载完后通过远程连接工具上传的/tmp下
在这里插入图片描述

修改配置文件
[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/
  • 1
  • 2
编辑core-site.xml
[hadoop@hadoop1 hadoop]$ vi core-site.xml

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop1:9000</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop1:9000</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop/hadoop-2.8.5/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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
编辑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
<configuration>
  <property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>hadoop1:9001</value>
  </property>
  <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/app/hadoop/hadoop-2.8.5/name</value>
  </property>
  <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/app/hadoop/hadoop-2.8.5/data</value>
  </property>
  <property>
   <name>dfs.replication</name>
   <value>2</value>
  </property>
  <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
  </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
编辑mapred-site.xml
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop1:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop1:19888</value>
  </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
编辑mapred-env.sh
[hadoop@hadoop1 hadoop]$ vi mapred-env.sh
添加
export JAVA_HOME=/usr/lib/java/jdk1.8.0_191
  • 1
  • 2
  • 3
编辑yarn-site.xml
[hadoop@hadoop1 hadoop]$ vi 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.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop1:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoop1:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hadoop1:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoop1:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop1:8088</value>
  </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
编辑slaves
[hadoop@hadoop1 hadoop]$ vi slaves
hadoop1
hadoop2
hadoop3
  • 1
  • 2
  • 3
  • 4
复制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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

启动

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

[hadoop@hadoop1 hadoop]$ hdfs namenode -format
  • 1

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

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

       查看进程

[hadoop@hadoop1 sbin]$ jps
52608 ResourceManager
52929 Jps
52275 DataNode
52133 NameNode
52440 SecondaryNameNode
52715 NodeManager
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

       也可以只启动具体服务

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

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

在这里插入图片描述

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

[hadoop@hadoop1 sbin]$ ./stop-all.sh
  • 1
高可用

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/911854
推荐阅读
相关标签
  

闽ICP备14008679号