大数据 - 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@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

<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>
编辑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>
编辑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>
编辑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
<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>
编辑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@hadoop1 sbin]$ ./stop-all.sh
高可用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值