一、服务器访问环境
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
相关推荐
Hadoop高可用集群搭建手册 本文档主要介绍了Hadoop 2.6高可用集群的搭建过程,包括集群规划、搭建准备、集群搭建和配置等步骤。下面是从中提取的知识点: 1. 集群规划 在规划Hadoop集群时,需要考虑到集群的拓扑...
Hadoop高可用集群搭建
hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化hadoop高可用集群搭建及参数优化
Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase) 一、Hadoop HA高可用集群概述 在大数据处理中,高可用集群是非常重要的,Hadoop HA高可用集群可以提供高可靠性和高可用性,确保数据处理不中断。该集群由...
### 手动搭建Hadoop高可用集群教程 #### 一、前言 本文将详细介绍如何从零开始手动搭建Hadoop高可用(HA)集群。Hadoop是一个能够处理大量数据的分布式计算框架,它由HDFS(Hadoop Distributed File System)和...
4. 测试运行:通过hadoop fs -ls等命令验证Hadoop集群是否正常工作,同时可以编写并运行简单的MapReduce程序,检验本地master环境的可用性。 三、Hadoop 2.6.0的改进与优化 在Hadoop 2.6.0版本中,重点优化了资源...
基于docker构建hadoop分布式集群,可以适用于swarm云,k8s云,mesos云。
总的来说,"hadoop-3.1.0-winutils-master(1).zip"提供的是一套适用于Windows的Hadoop工具,它使得在Windows环境中搭建和运行Hadoop集群成为可能。通过理解Hadoop的基本原理、WinUtils的作用以及如何配置和使用这些...
基于 Zookeeper 搭建 Hadoop 高可用集群 基于 Zookeeper 搭建 Hadoop 高可用集群是指使用 Zookeeper 实现 Hadoop 集群的高可用性,确保 Hadoop 集群的可靠性和稳定性。高可用性是指系统在面临故障或错误时仍能继续...
在搭建 Hadoop 3.0 高可用的分布式集群时,需要选择 3 台主机,分别安装好 Linux 系统,并完成 Linux系统的网络配置和系统配置。 1.2 软件规划 需要注意的是:Hadoop 3.0 最低支持 Java8,如果大家还在使用 Java7 ...
### Hadoop HA高可用集群配置核心解析:core-site.xml #### 概述 在搭建Hadoop高可用(High Availability, HA)集群时,`core-site.xml`是其中一个至关重要的配置文件。它主要用于定义Hadoop集群的基本属性,如...
hadoop集群搭建高可用文档在Hadoop2.x之后的版本,提出了解决单点问题的方案--HA(High Available 高可用)。这篇博客阐述如何搭建高可用的HDFS和YARN,执行步骤如下: 创建hadoop用户 安装JDK 配置hosts 安装SSH ...
1. 服务器规划:在搭建Hadoop高可用环境时,需要三台Centos8服务器,分别作为namenode、datanode和resourcemanager节点。 知识点:Hadoop高可用环境需要多个服务器节点,名node、data node和resource manager等。 ...
本文档主要讲解了如何搭建高可用的Hadoop环境,包括分布式环境搭建、NameNode高可用、ResourceManager高可用集群运行服务规划等内容。 首先,需要在每台机器上安装Hadoop,使用完全分布式环境,实现NameNode高可用...
Hadoop是一个开源的分布式存储和计算框架,它能够...以上是关于Hadoop集群高可用搭建的核心知识点,希望对您搭建Hadoop高可用集群有所助益。在实际操作中,还应根据具体的业务需求和环境差异对集群进行适当调整和优化。
搭建伪集群模式的Hadoop可以用于开发与测试,在这个模式下,所有节点实际上都运行在同一个物理机上,模拟集群的运行环境。同时,通过在开发IDE如Eclipse中配置Hadoop插件,可以更便捷地进行开发和调试Hadoop程序。...
在大数据处理领域,Hadoop是不可或缺的核心组件,其高可用性(High ...通过以上步骤,你可以成功搭建一个适用于生产环境的Hadoop高可用集群,确保系统的稳定性和可靠性。记住,良好的监控和维护是保持Hadoop HA的关键。