一、环境

4.用户
hadoop
5.目录规划
/home/hadoop/app    #程序目录
/home/hadoop/data  #数据目录
 
 
#打开文件的最大数
vi /etc/security/limits.d/20-nproc.conf

soft soft nproc 102400
root soft nproc unlimited
soft soft nofile 102400
soft hard nofile 102400

 
二、系统环境配置

 #root操作 (所有主机)
1.关闭selinux,firewall  
  vim /etc/selinux/config

#将SELINUX=enforcing改为SELINUX=disabled

 #临时关闭setenforce 0
 systemctl stop firewalld.service
 systemctl disable firewalld.service 
2.更改主机名
3.配置host解析
  192.168.0.179 hadoop01
     192.168.0.189 hadoop02
     192.168.0.190 hadoop03
     192.168.0.191 hadoop04
     192.168.0.200 hadoop05
4.添加hadoop用户和组
    groupadd hadoop 
    useradd  -g hadoop hadoop
5. 给hadoop设置密码
    passwd hadoop
6.切换到hadoop用户
   su hadoop
   cd ~
 #hadoop操作
 7.配置免密码登陆 (hadoop01)
   ssh-keygen     #一路回车
   cat .ssh/id_rsa.pub > authorized_keys
   chmod 600 authorized_keys
   将其他主机上的authorized_keys文件内容添加到本机authorized_keys中。
    然后将文件传给其他主机
8.在登陆时不输入yes  (所有主机)
   vim /etc/ssh/ssh_sshconfig 
   StrictHostKeyChecking ask 改成  StrictHostKeyChecking no
 
三、JDK安装
软件目录:  /home/hadoop/
1.安装jdk
#root用户  (所有主机)
tar zxf jdk1.8.0_101.tar.gz
#vim /etc/profile
   export JAVA_HOME=/home/hadoop/jdk1.8.0_101
   export CLASSPATH=.:$JAVA_HOME/lib/
   export JRE_HOME=/home/hadoop/jdk1.8.0_101/jre
   export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#source /etc/profile
#java -version                                   #检查,出现如下信息表示成功
    java version "1.8.0_101"
   Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
   Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed           mode)

四、安装zookeeper
   tar zxf zookeeper-3.4.8.tar.gz
   cd zookeeper-3.4.8/conf
   cp zoo_sample.cfg zoo.cfg
   vim zoo.cfg
            dataDir=/home/hadoop/zookeeper-3.4.8/zkdata
            server.1=hadoop01:2888:3888
            server.2=hadoop02:2888:3888
            server.3=hadoop03:2888:3888
            server.4=hadoop04:2888:3888
            server.5=hadoop05:2888:3888
   cd ../
   mkdir data && cd data
   echo 1 > myid
   将zookeeper-3.4.8文件拷贝到其他主机,并更改mydi里面的数字
五、安装hadoop
     tar zxf hadoop-2.7.3.tar.gz 
     mkdir hdfs tmp
     mkdir hdfs/name             
     mkdir hdfs/data/disk1     #配置文件中会用到这个路径

#配置hadoop-env.sh

export JAVA_HOME=/home/hadoop/jdk1.8.0_101

#编辑core-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>fs.defaultFS</name>
<value>hdfs://base</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>n1:2181,n2:2181,n3:2181,n4:2181,n5:2181</value>
</property>
<property>
<name>fs.hdfs.impl</name>
<value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
<description>The FileSystem for hdfs: uris.</description>
</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.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/data/hadoopdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/disk1</value>
<final>true</final>
</property>
<property>
<name>dfs.nameservices</name>
<value>base</value>
</property>
<property>
<name>dfs.ha.namenodes.base</name>
<value>n1,n2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.base.n1</name>
<value>n1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.base.n2</name>
<value>n2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.base.n1</name>
<value>n1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.base.n2</name>
<value>n2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://n1:8485;n2:8485;n3:8485;n4:8485;n5:8485/base</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.base</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/app/hadoop-2.7.3/journal</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>n1:2181,n2:2181,n3:2181,n4:2181,n5:2181</value>
</property>
<property>
<!--指定ZooKeeper超时间隔,单位毫秒 -->
<name>ha.zookeeper.session-timeout.ms</name>
<value>2000</value>
</property>
<property>
<name>fs.hdfs.impl.disable.cache</name>
<value>true</value>
</property>
</configuration>

#编辑mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>8000</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>8000</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx8000m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx8000m</value>
</property>
<property>
<name>mapred.task.timeout</name>
<value>1800000</value> <!-- 30 minutes -->
</property>
</configuration>

#编辑yarn-site.xml

<?xml version="1.0"?>
<!--
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.
-->
<configuration>
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>2000</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 开启RM高可靠 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 指定RM的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>n1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>n2</value>
</property>
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm2</value>
</property>
<!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>n1:2181,n2:2181,n3:2181,n4:2181,n5:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>3</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>57000</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>4000</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>10000</value>
</property>
</configuration>

#编辑slaves文件

n1

n2

n3

n4

n5

#将hadoop目录scp到其他主机

六、启动

启动所有zookeeper,查看状态是否成功

启动所有journalnode

hadoop-daemons.sh start journalnode

#hadoop01上执行

hdfs namenode -format         #namenode 格式化

hdfs zkfc -formatZK                  #格式化高可用

sbin/hadoop-daemon.sh start namenode  #启动namenode

#备份节点执行

hdfs namenode -bootstrapStandby       #同步主节点和备节点之间的元数据

停止所有journalnode,namenode

启动hdfs和yarn相关进程

./start-dfs.sh

./start-yarn.sh

备份节点手动启动resourcemanager

#先更改备份节点的yarn-site.xml文件

<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm2</value> #这里改成node的id,否则会报端口已占用的错误
</property>
./yarn-daemon.sh start resourcemanager

七、检查

[root@n1 ~]# jps 

16016 Jps
24096 DFSZKFailoverController
19859 QuorumPeerMain
22987 NameNode
18878 Datanode

29397 ResourceManager

#浏览器访问

http://ip:50070

hadoop2.7.3+spark2.0.1+scala2.11.8集群部署的更多相关文章

  1. 安装Scala-2.11.7——集群学习日记

    前言 在安装Spark之前,我们需要安装Scala语言的支持.在此我选择的是scala-2.11.7版本. scala-2.11.7下载 为了方便,我现在我的SparkMaster主机上先安装,把目录 ...

  2. kafka 0.10.2 cetos6.5 集群部署

    安装 zookeeper http://www.cnblogs.com/xiaojf/p/6572351.html安装 scala http://www.cnblogs.com/xiaojf/p/65 ...

  3. Redis3.0.1 Stable版本的集群部署(Mac)

    本文档基于如下原始文档(CentOS)创建: http://blog.csdn.net/xu470438000/article/details/42971091 修改了一些路径的错误,补全了一些命令执 ...

  4. redis-5.0.5 集群部署

    之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...

  5. Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2

    为了将Hadoop和Spark的安装简单化,今日写下此帖. 首先,要看手头有多少机器,要安装伪分布式的Hadoop+Spark还是完全分布式的,这里分别记录. 1. 伪分布式安装 伪分布式的Hadoo ...

  6. Kafka设计解析(十七)Kafka 0.11客户端集群管理工具AdminClient

    转载自 huxihx,原文链接 Kafka 0.11客户端集群管理工具AdminClient 很多用户都有直接使用程序API操作Kafka集群的需求.在0.11版本之前,kafka的服务器端代码(即添 ...

  7. 超详细从零记录Hadoop2.7.3完全分布式集群部署过程

    超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程.包含,Ubuntu服务器创建.远程工具连接配置.Ubuntu服务器配置.Hadoop文件配置.Had ...

  8. 保姆级教程,带你认识大数据,从0到1搭建 Hadoop 集群

    大数据简介,概念部分 概念部分,建议之前没有任何大数据相关知识的朋友阅读 大数据概论 什么是大数据 大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需 ...

  9. Hadoop 2.6.0 集群部署

    Hadoop的集群部署和单节点部署类似,配置文件不同,另外需要修改网络方面的配置 首先,准备3台虚拟机,系统为CentOS 6.6,其中一台为namenode 剩余两台为 datanode: 修改主机 ...

随机推荐

  1. 理解与使用Javascript中的回调函数 -2

    在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply() ...

  2. 栈的顺序存储和链式存储c语言实现

    一. 栈 栈的定义:栈是只允许在一端进行插入或删除操作的线性表. 1.栈的顺序存储 栈顶指针:S.top,初始设为-1 栈顶元素:S.data[S.top] 进栈操作:栈不满时,栈顶指针先加1,再到栈 ...

  3. application.yml和application.properties文件的区别

    maven项目 .yml文件时树状结构,层级浅时比较方便,层级深的时候就比较麻烦了 .properties文件时属性访问结构,层级深浅对它来说是一样的,而且相较于.yml类型的文件比较好配置,但缺点也 ...

  4. Android 用视频做页面背景

    不知道怎么开头,直接代码. xml:RelativeLayout布局,MyVideoView放在第一位,其他的放到之下就可以. <MyVideoView android:id="@+i ...

  5. css如何设置首行文字缩进?

    在HTML网页中通常一段文字都需要设置首行缩进两个文字,使页面更加美观,我们可以通过css实现这一效果,下面我们就来看一下使用css设置首行文字缩进的方法. css可以使用text-indent属性来 ...

  6. 一天学习一点之express demo

    接着上一篇,安装了nodejs之后,再安装express,顺序执行以下命令 1.npm  -g install express; 2.npm -g express-generator; 3.使用exp ...

  7. call,apply,bind的内部原理实现

    call call 方法使用一个函数执行的时候更改本身 this 指向,并传入一个或者多个参数. var obj = { name: '$call' } function _fun() { conso ...

  8. SCSS笔记

    SASS是成熟,稳定,强大的 CSS预处理器 ,而 SCSS 是SASS3版本当中引入的新语法特性,完全兼容CSS3的同时继承了CSS强大的动态功能. CSS书写代码规模较大的web应用时,容易造成选 ...

  9. JVM 专题八:运行时数据区(三)虚拟机栈

    2.虚拟机栈 1. 概述 1.1 虚拟机栈出现背景 由于跨平台性的设计,java的指令都是根据栈来设计的.不同平台CPU架构不同,所以不能设计为基于寄存器的. 优点是跨平台,指令集小,编译器容易实现, ...

  10. celery 基础教程(三):配置

    前言 如果你使用默认的加载器,你必须创建 celeryconfig.py 模块并且保证它在python路径中. 一.加载配置方法  1.基础方法  可以设置一些选项来改变 Celery 的工作方式.这 ...