环境说明

示例环境

主机名

IP

角色

系统版本

数据目录

Hadoop版本

master

192.168.174.200

nameNode

CentOS Linux release 7.4.1708 (Core)

2.8.0

slave1

192.168.129.201

dataNode

CentOS Linux release 7.4.1708 (Core)

2.8.0

准备工作

JDK安装

确认本机安装的JDK版本为1.7以上,建议为1.8.

查看本机安装JDK

rpm -e --nodeps 'rpm -qa | grep java'

如:安装过其他版本的JDK,移除原JDK

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

下载JDK

curl -O http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1520556529_7efdd22074a16eff52be3c1e15843903

解压

tar -zxvf jdk-8u161-linux-x64.tar.gz

配置环境变量

gedit ~/.bashrc

vim ~/.bashrc

配置添加如下图:

立即生效

source ~/.bashrc
修改本机信息

修改主机名(分别在两台虚拟机修改为:master、slave1、..):

vi /etc/hostname

增加IP与主机映射:

vi /etc/hosts
#增加以下内容:
192.168.174.200       master
192.168.174.201      slave1
SSH免密码登录

打开终端执行如下命令进行检验

rpm -qa | grep ssh

如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。

若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):

yum install openssh-clients
yum install openssh-server

设置免登录

主节点
ssh localhost
查看用户主目录.ssh文件夹下
cd .ssh/
ssh-keygen -t rsa#连续回车,系统自动生成图形公钥
#将生成的公钥id_rsa.pub 内容追加到authorized_keys
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
从节点
ssh localhost
查看用户主目录.ssh文件夹下
cd .ssh/
ssh-keygen -t rsa#连续回车,系统自动生成图形公钥
#将从节点的id_rsa.pub复制到主节点并改名为id_rsa.pub.s1
scp id_rsa.pub master:/root/.ssh/id_rsa.pub.s1
主节点
#将从节点的id_rsa.pub.s1公钥追加到主节点的authorized_keys中
cat id_rsa.pub.s1 >> authorized_keys
#将生成的包含从节点的秘钥的authorized_keys 复制到从节点的.ssh目录下
scp authorized_keys slave1:/root/.ssh/

验证ssh的免密码登录:

在master中输入:ssh slave1是否需要密码,如果不需要,则ssh免密码配置成功。

安装ZooKeeper
下载
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

解压

tar -zxvf zookeeper-3.4.10.tar.gz

移动文件夹

mv zookeeper-3.4.10 /usr/local/haddop

修改配置

cd /usr/local/hadoop/zookeeper-3.4.10/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg

复制到从机

scp zookeeper-3.4.10 slave1:/usr/local/hadoop/

根据dataDir进行X的配置(主从机均执行)

cd /usr/local/hadoop/zookeeper-3.4.10
mkdir data
cd data
vim myid #之后会产生一个新文件,直接在里面写 X 即可
#比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X server.1=192.168.174.200:2888:3888【192.168.174.200服务器上面的myid填写1】
server.2=192.168.174.201:2888:3888【192.168.174.201服务器上面的myid填写2】

启动(主从均执行)

cd /usr/local/hadoop/zookeeper-3.4.10/bin
zkServer.sh start

检查状态

zkServer.sh status

Hadoop安装及配置

下载
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz
解压
tar -zxvf hadoop-2.8.0.tar.gz
移动文件夹
mv hadoop-2.8.0 /usr/local/haddop
配置环境变量

参照上节JDK安装配置环境变量

修改配置文件

修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml文件

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

修改hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/hdfs/nn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>fs.datanode.data.dir</name>
<value>file:/data/hadoop/hdfs/dn</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

在该版本中,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:

cp /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
修改slaves文件

修改/usr/local/hadoop/hadoop-2.8.0/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:

slave1
修改yarn-site.xml文件

修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,

在<configuration>节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):

<configuration>
      <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>master:8032</value>  
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>  
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>  
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8090</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>file:/data/hadoop/yarn/nm</value>
</property>
<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
</property>
<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>
   <property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>

说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。

启动hadoop

在namenode上执行初始化

因为master是slave1是datanode,所以只需要对master进行初始化操作,也就是对hdfs进行格式化

cd /user/local/hadoop/hadoop-2.8.0/bin

执行初始化脚本,也就是执行命令:

./hadoop  namenode  -format

关闭防火墙,CentOS7下,命令:

systemctl stop firewalld.service
启动Hadoop集群
sbin/start-all.sh

启动后,master上进程和slave进程列表

http://192.168.174.200:50070/

http://192.168.174.200:8090/

至此Hadoop集群搭建完毕

最新文章

  1. ng-Enter指令
  2. php策略模式
  3. JVM内存结构、垃圾回收那点事
  4. Android.mk的用法和基础【转】
  5. 搬家后Magento前台只有产品的缩略图不显示
  6. Android View的绘制机制流程深入详解(三)
  7. 通过jqueryui实现邮件提示
  8. Android使用XML全攻略(2)
  9. 基于visual Studio2013解决C语言竞赛题之0414特殊平方数
  10. galera断电后无法重建集群
  11. Django学习-4-request获取数据
  12. 【C++】关键字inline
  13. spring-boot的Hello World案例,最简单的spring-boot项目
  14. JMeter(三)遇到的问题01: 通过CSV Data Set Config参数化有中文时,显示为?
  15. php json 写入 mysql 的例子
  16. 使用RxSwift 实现登录页面的条件绑定
  17. 【nosql】之ehcache.xml文件属性描述
  18. 【SPL标准库专题(6)】 Datastructures:SplPriorityQueue
  19. ruby 中的 module
  20. Java泛型的协变

热门文章

  1. sql server 修改表字段
  2. Dijkstra算法求最短路模板
  3. 【bzoj1123】[POI2008]BLO
  4. PHPExcel组件编程spl_autoload_register
  5. [ethereum源码分析](4) ethereum运行开启console
  6. linux/Unix下的vim/vi指令的使用方法
  7. 大牛整理最全Python零基础入门学习资料
  8. optistruct对称约束设置
  9. 【洛谷T2695 桶哥的问题——吃桶】
  10. 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法