`
sunbin
  • 浏览: 352981 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hadoop高可用集群搭建-1

 
阅读更多

一、服务器访问环境

hadoop服务器4台主机,均使用ubuntu18-live-server版本,

本地localhost免密登录

ssh localhost步骤

1、ssh-keygen -t rsa

免密码登录

使用下面的命令即可免密码登录localhost

 

2、ssh-copy-id localhost

但是到了这里执行ssh localhost的时候依然提示我输入密码。我仔细分析了原因,一般来讲失败的原因有两个。

 

服务器之间免密登录

1、根据路径复制公钥到免密登录的主机

  scp id_rsa.pub 账号@hostip:/rootpath/.ssh/zkhd1

2、复制公钥到authorized_key

 cat zkhd1 >>authorized_keys

也可用ssh-copy-id -i ~/.ssh/id_rsa.pub  root@spark1

 

所有文件放置在/opt/sgb内

1、先授权4台主机opt所有权限 sudo chmod 777 /opt

2、第一台主机操作 cd /opt

3、第一台主机操作 mkdir sgb

 

hosts文件配置

注意注意注意

注释掉  #127.0.1.1 zkhd1 否则通过器名本机外机器不能访问服务

四台主机内网名称设置

 

192.168.2.161  zkhd1
192.168.2.162  zkhd2
192.168.2.163  zkhd3
192.168.2.164  zkhd4
 

 

 

 

 

二、java/hadoop环境搭建、以下先配置一台主机

 

1、解压hadoop-2.6.5.tar.gz  jdk-7u67-linux-x64.tar.gz文件

   tar xf hadoop-2.6.5.tar.gz

   tar xf jdk-7u67-linux-x64.tar.gz

2、配置环境变量

sudo vi /etc/profile

配置以下参数

 

export JAVA_HOME=/opt/sgb/jdk1.7.0_67
export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
 

 

source  /etc/profile

输入命令行下查看配置是否生效

hdfs

java

 

三、hadoop伪分布式

hadoop-env.sh

yarn-env.sh

mapred-env.sh

export JAVA_HOME=/opt/sgb/jdk1.7.0_67

 

hdfs-site.xml

 

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>
 

 

 

core-site.xml

 

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://zkhd1:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/opt/dd</value>

    </property>

</configuration>
 

 

 

格式化

$ bin/hdfs namenode -format

启动服务

$ sbin/start-dfs.sh

查看进程

$ jps

  NameNode

  DataNode

  SecondaryNameNode

 

新建文件夹

$ bin/hdfs dfs -mkdir /user

上传文件

$ bin/hdfs dfs -put etc/hadoop input

运行任务

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar grep input output 'dfs[a-z.]+'

下载运行结果

$  bin/hdfs dfs -get output output

关闭服务

$ sbin/stop-dfs.sh

 

 

三、分布式配置

1、备份目前的hadoop目录文件夹至hadoop-2.6.5-bk,开发可以使用伪分布式测试

cp -rf   /opt/sgb/hadoop-2.6.5    /opt/sgb/hadoop-2.6.5-bk

 

 

2、修改slaves 配置datanode从节点、zkhd1不需要配置

zkhd2

zkhd3

zkhd4

 

3、修改hdfs-site.xml配置secondnamenode,副本数2

 

 

<property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>zkhd2:50090</value>

    </property>

<property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>
 

 

4、删除已格式化节点/opt/dd

rm -rf  /opt/dd

 

5、分发服务器

    A、分发sgb文件夹  包含java、hadoop目录

scp -rf sgb skhd2:/opt/

scp -rf sgb skhd3:/opt/

scp -rf sgb skhd4:/opt/

B、分发配置文件,每台机器均要添加

 

sudo vi /etc/profile

配置以下参数

 

export JAVA_HOME=/opt/sgb/jdk1.7.0_67
export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
 

 

source  /etc/profile

输入命令行下查看配置是否生效

hdfs

java

 

6、主服务器格式化

$ bin/hdfs namenode -format

启动服务

$ sbin/start-dfs.sh

 

 

至此本地集群方式的hadoop hdfs可以使用

 

四、高可用hadoop集群改造

 

 

 hosts     NameNode-1   NameNode-2    DataNode         ZK   ZKFC     JNN
zkhd1         有                                             有      有
zkhd2                     有            有             有    有      有 
zkhd3                                   有             有            有
zkhd4                                   有             有                
 

 

 

1、zookeeper配置

1.1、解压zookeeper到/opt/sgb文件夹

tar xf zookeeper-3.4.6.tar.gz

1.2、修改/zookeeper-3.4.6/conf/zoo.cfg

dataDir=/opt/sgb/zk

server.1=zkhd2:2888:3888

server.2=zkhd3:2888:3888

server.3=zkhd4:2888:3888

1.3、在/opt/sgb/zk路径执行以下命令,id根据服务器id做调整

   mkdir zk

   echo 1 > myid

   zkhd2上执行echo 2 > myid

   zkhd3上执行 echo 3 > myid

   

1.4、环境变量配置   sudo vi /etc/profile

export JAVA_HOME=/opt/sgb/jdk1.7.0_67

export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH

export ZOOKEEPER_HOME=/opt/sgb/zookeeper-3.4.6

export ZOOBINDIR=$ZOOKEEPER_HOME/bin

export PATH=$ZOOBINDIR:$PATH

 

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2、hadoop配置修改

     2.1、hdfs-site.xml

 <configuration>
		<property>
			<name>dfs.replication</name>
			<value>2</value>
		</property>
	<property>
		<name>dfs.data.dir</name>
		<value>/opt/sgb/ha/data</value> 
		<final>true</final> 
    </property> 
    <property> 
		<name>dfs.name.dir</name>
		<value>/opt/sgb/ha/name</value> 
		<final>true</final> 
	</property>
//////////////////////////namenode配置
		<property>
			<name>dfs.nameservices</name>
			<value>mycluster</value>
		</property>
		<property>
			<name>dfs.ha.namenodes.mycluster</name>
			<value>nn1,nn2</value>
		</property>
		<property>
			<name>dfs.namenode.rpc-address.mycluster.nn1</name>
			<value>zkhd1:8020</value>
		</property>
		<property>
			<name>dfs.namenode.rpc-address.mycluster.nn2</name>
			<value>zkhd2:8020</value>
		</property>
		<property>
			<name>dfs.namenode.http-address.mycluster.nn1</name>
			<value>zkhd1:50070</value>
		</property>
		<property>
			<name>dfs.namenode.http-address.mycluster.nn2</name>
			<value>zkhd2:50070</value>
		</property>
///////////////////////////jnn配置
		<property>
			<name>dfs.namenode.shared.edits.dir</name>
			<value>qjournal://zkhd1:8485;zkhd2:8485;zkhd3:8485/mycluster</value>
		</property>
		<property>
			<name>dfs.journalnode.edits.dir</name>
			<value>/opt/sgb/jn</value>
		</property>
		<property>
			<name>dfs.client.failover.proxy.provider.mycluster</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.ha.automatic-failover.enabled</name>
			<value>true</value>
		</property>
	</configuration>
 

 

 

============================================================================================

2.2、 core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/sgb/ha</value>
</property>
////////////////////////zookeeper集群配置
<property>
<name>ha.zookeeper.quorum</name>
<value>zkhd2:2181,zkhd3:2181,zkhd4:2181</value>
</property>
</configuration>

 

 

3、集群分发

 sudo scp -r sgb hadoop@zkhd2:/opt/

 sudo scp -r sgb hadoop@zkhd3:/opt/

 sudo scp -r sgb hadoop@zkhd4:/opt/

配置文件分发

export JAVA_HOME=/opt/sgb/jdk1.7.0_67

export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH

export ZOOKEEPER_HOME=/opt/sgb/zookeeper-3.4.6

export ZOOBINDIR=$ZOOKEEPER_HOME/bin

export PATH=$ZOOBINDIR:$PATH

 

 

4、zookeepr配置zkhd2:zkhd3:zkhd4启动zookeeper集群

zkServer.sh start   ||   zkServer.sh status

5、按qjournal://zkhd1:8485;zkhd2:8485;zkhd3:8485/mycluster配置依次执行,启动journalnode

   ./sbin/hadoop-daemon.sh start journalnode

6、主namenode 执行格式化

    hdfs namenode  -format

7、启动主节点 ./sbin/hadoop-deamon.sh start namenode

8、同步副节点  hdfs namenode  -bootstrapStandby

9、注册hdfs到zookee,执行   hdfs zkfc -formatZK

10、启动集群 start-dfs.sh

11、其他操作

stop-dfs.sh && start-dfs.sh  ||  hadoop-daemon.sh start zkfc

------------------------------------------------------------------------------------------------------------------

mapreduce集群

 

 

      nn-1   nn-2  dn  zk  zkfc  jnn   rs  nm

1           *                            *       *

2                     *     *    *     *       *            *                    

3                            *    *              *     *     *                  

4                            *    *                     *     *                

 

1、配置文件修改mapred-site.xml:

 

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

 

2、配置文件修改etc/hadoop/yarn-site.xml:

<configuration>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

  <property>

   <name>yarn.resourcemanager.ha.enabled</name>

   <value>true</value>

 </property>

 <property>

   <name>yarn.resourcemanager.cluster-id</name>

   <value>cluster1</value>

 </property>

 <property>

   <name>yarn.resourcemanager.ha.rm-ids</name>

   <value>rm1,rm2</value>

 </property>

 <property>

   <name>yarn.resourcemanager.hostname.rm1</name>

   <value>zkhd3</value>

 </property>

 <property>

   <name>yarn.resourcemanager.hostname.rm2</name>

   <value>zkhd4</value>

 </property>

 <property>

   <name>yarn.resourcemanager.zk-address</name>

   <value>zkhd2:2181,zkhd3:2181,zkhd4:2181</value>

 </property>

</configuration>

 3、分发

scp   mapred-site.xml yarn-site.xml    zkhd2:`pwd`

scp   mapred-site.xml yarn-site.xml    zkhd3:`pwd`

scp   mapred-site.xml yarn-site.xml    zkhd4:`pwd`

4、启动服务

  $ sbin/start-yarn.sh  //nodemanager

  $ yarn-deamon.sh start resourcemanager   // resourcemanager

  $ sbin/stop-yarn.sh

 

 

 

hadoop jar hadoop-mapreduce-examples.jar wordcount   /user/test/txt  /wordout 

 

------------------------------------------------------

集群重启

1、2/3/4  zkServer start

2、1  start-all.sh

3、3/4  yarn-daemon.sh start resourcemanager/nodemanager

-----------------------------------------------------

 

eclipse hadoop访问异常:

org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE

解决方法:在hdfs-site.xml里加入下面的
    dfs.permissions 
 

 

   false 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hadoop高可用集群搭建手册.docx

    Hadoop高可用集群搭建手册 本文档主要介绍了Hadoop 2.6高可用集群的搭建过程,包括集群规划、搭建准备、集群搭建和配置等步骤。下面是从中提取的知识点: 1. 集群规划 在规划Hadoop集群时,需要考虑到集群的拓扑...

    Hadoop高可用集群搭建

    Hadoop高可用集群搭建

    hadoop高可用集群搭建及参数优化

    hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化

    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase) 一、Hadoop HA高可用集群概述 在大数据处理中,高可用集群是非常重要的,Hadoop HA高可用集群可以提供高可靠性和高可用性,确保数据处理不中断。该集群由...

    手动搭建hadoop高可用

    ### 手动搭建Hadoop高可用集群教程 #### 一、前言 本文将详细介绍如何从零开始手动搭建Hadoop高可用(HA)集群。Hadoop是一个能够处理大量数据的分布式计算框架,它由HDFS(Hadoop Distributed File System)和...

    hadoop-common-2.6.0-bin-master.zip

    4. 测试运行:通过hadoop fs -ls等命令验证Hadoop集群是否正常工作,同时可以编写并运行简单的MapReduce程序,检验本地master环境的可用性。 三、Hadoop 2.6.0的改进与优化 在Hadoop 2.6.0版本中,重点优化了资源...

    基于docker的hadoop高可靠集群搭建

    基于docker构建hadoop分布式集群,可以适用于swarm云,k8s云,mesos云。

    hadoop-3.1.0-winutils-master(1).zip

    总的来说,"hadoop-3.1.0-winutils-master(1).zip"提供的是一套适用于Windows的Hadoop工具,它使得在Windows环境中搭建和运行Hadoop集群成为可能。通过理解Hadoop的基本原理、WinUtils的作用以及如何配置和使用这些...

    基于Zookeeper搭建Hadoop高可用集群

    基于 Zookeeper 搭建 Hadoop 高可用集群 基于 Zookeeper 搭建 Hadoop 高可用集群是指使用 Zookeeper 实现 Hadoop 集群的高可用性,确保 Hadoop 集群的可靠性和稳定性。高可用性是指系统在面临故障或错误时仍能继续...

    Hadoop3.0分布式集群搭建(HA)详细文档.docx

    在搭建 Hadoop 3.0 高可用的分布式集群时,需要选择 3 台主机,分别安装好 Linux 系统,并完成 Linux系统的网络配置和系统配置。 1.2 软件规划 需要注意的是:Hadoop 3.0 最低支持 Java8,如果大家还在使用 Java7 ...

    HadoopHA高可用集群配置 core-site.xml

    ### Hadoop HA高可用集群配置核心解析:core-site.xml #### 概述 在搭建Hadoop高可用(High Availability, HA)集群时,`core-site.xml`是其中一个至关重要的配置文件。它主要用于定义Hadoop集群的基本属性,如...

    hadoop高可用搭建

    hadoop集群搭建高可用文档在Hadoop2.x之后的版本,提出了解决单点问题的方案--HA(High Available 高可用)。这篇博客阐述如何搭建高可用的HDFS和YARN,执行步骤如下: 创建hadoop用户 安装JDK 配置hosts 安装SSH ...

    hadoop高可用安装.docx

    1. 服务器规划:在搭建Hadoop高可用环境时,需要三台Centos8服务器,分别作为namenode、datanode和resourcemanager节点。 知识点:Hadoop高可用环境需要多个服务器节点,名node、data node和resource manager等。 ...

    Hadoop高可用环境搭建文档.doc

    本文档主要讲解了如何搭建高可用的Hadoop环境,包括分布式环境搭建、NameNode高可用、ResourceManager高可用集群运行服务规划等内容。 首先,需要在每台机器上安装Hadoop,使用完全分布式环境,实现NameNode高可用...

    hadoop集群高可用搭建

    Hadoop是一个开源的分布式存储和计算框架,它能够...以上是关于Hadoop集群高可用搭建的核心知识点,希望对您搭建Hadoop高可用集群有所助益。在实际操作中,还应根据具体的业务需求和环境差异对集群进行适当调整和优化。

    hadoop伪集群搭建及eclipse插件配置

    搭建伪集群模式的Hadoop可以用于开发与测试,在这个模式下,所有节点实际上都运行在同一个物理机上,模拟集群的运行环境。同时,通过在开发IDE如Eclipse中配置Hadoop插件,可以更便捷地进行开发和调试Hadoop程序。...

    hadoop高可用搭建文档

    在大数据处理领域,Hadoop是不可或缺的核心组件,其高可用性(High ...通过以上步骤,你可以成功搭建一个适用于生产环境的Hadoop高可用集群,确保系统的稳定性和可靠性。记住,良好的监控和维护是保持Hadoop HA的关键。

Global site tag (gtag.js) - Google Analytics