hadoop集群搭建
一、准备工作
1.修改主机名
vim /etc/sysconfig/network
2.系统默认启动级别(修改后reboot生效)
vim /etc/inittab
3.sudo权限
vim /etc/sudoers
4.静态IP
5.关闭防火墙
1)关闭服务service iptables stop
2)关闭开机自启chkconfig iptables off
6.关闭selinux
vim /etc/selinux/config
7.配置主机映射
vim /etc/hosts
8.同步时间(注意时区)
ntpdate cn.pool.ntp.org
9.免密登录
1)生成密钥ssh-keygen
2)发送密钥ssh-copy-id ip号
10.安装jdk
二、搭建集群
1.单机版
1)上传hadoop安装包
2)tar -zxvf hadoop包
3)配置环境变量(记得source一下)
4)启动job测试
hadoop jar hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input output
2.伪分布式
1)修改hadoop的编译环境(将JAVA_HOME该为绝对路径)
vim /root/apps/hadoop/etc/hadoop/hadoop-env.sh
2)vim /root/apps/hadoop/etc/hadoop/core-site.xml
#namenode的启动节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.2.101:9000</value>
</property>
#临时文件目录
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata/tmp</value>
</property>
3)配置环境变量
4)格式化namenode
hadoop namenode -format
5)启动进程
start-dfs.sh
start-yarn.sh
6)验证
hdfs集群: http://hadoop01:50070
yarn集群: http://hadoop01:8088
3.完全分布式
1)修改hadoop的编译环境(将JAVA_HOME该为绝对路径)
2)cd /root/apps/hadoop/etc/hadoop/
2)vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.2.101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoopdata/tmp</value>
</property>
3)vim hdfs-site.xml
<property> namenode文件保存目录
<name>dfs.namenode.name.dir</name>
<value>/root/hadoopdata/name</value>
</property>
<property>datanode文件保存目录
<name>dfs.datanode.data.dir</name>
<value>/root/hadoopdata/data</value>
</property>
<property> 副本数
<name>dfs.replication</name>
<value>3</value>
</property>
<property> 2nn启动节点
<name>dfs.secondary.http.address</name>
<value>192.168.2.103:50090</value>
</property>
4)mv mapred-site.xml-example mapred-site.xml
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)vim yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.2.102</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6)vim slaves(datanode节点IP)
192.168.3.201
192.168.3.202
192.168.3.203
7)将配置好的hadoop包发送至其他节点
8)配置hadoop环境变量(记得source)
9)格式化NameNode
10)启动集群
4.HA
安装zookeeper
1)上传
2)解压
3)mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
(修改为绝对路径,不能是临时目录)
dataDir=/root/data/zookeeperdata
(文件末尾添加zk集群节点信息)
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
4)在dataDir目录下创建文件myid
编辑添加唯一编号
5)远程发送zk的安装包
scp -r /root/apps/zookeeper hadoop02:$PWD
6)在其他节点修改myid(切记)
7)配置环境变量
8)启动zk
zkServer.sh start
搭建集群
1.规划集群
2.修改核心配置文件
2.core-site.xml
<!-- 配置hdfs的文件系统 /入口 完全分布式:hdfs://hdp01:9000/ 对于高可用集群这里配置的是两个namenode nameservice(组名) hdfs://bd1810/-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata/</value>
</property>
<!-- 指定 hadoop 工作目录 数据存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata/</value>
</property>
<!-- 指定 zookeeper 集群访问地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
3.hdfs-site.xml
<!-- 指定副本数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定 hdfs 的 nameservice 为 bigdata,需要和 core-site.xml 中保持一致 namenode的组名-->
<property>
<name>dfs.nameservices</name>
<value>bigdata</value>
</property>
<!-- bd1810 下面有两个 NameNode,分别是 nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.bigdata</name>
<value>nn1,nn2</value>
</property>
<!-- 两个namenode 节点的绑定 -->
<!-- nn1 的 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.bigdata.nn1</name>
<value>hdp01:9000</value>
</property>
<!-- nn1 的 http 通信地址 web -->
<property>
<name>dfs.namenode.http-address.bigdata.nn1</name>
<value>hadoop01:50070</value>
</property>
<!-- nn2 的 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.bigdata.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- nn2 的 http 通信地址 -->
<property>
<name>dfs.namenode.http-address.bigdata.nn2</name>
<value>hadoop02:50070</value>
</property>
<!-- 指定 NameNode 的 edits 元数据在 (QJM)JournalNode 上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/bigdata</value>
</property>
<!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/data/hadoopdata/journaldata</value>
</property>
<!-- 开启 NameNode 失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现类 java代码 -->
<property>
<name>dfs.client.failover.proxy.provider.bigdata</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行 防止脑裂的-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用 sshfence 隔离机制时需要 ssh 免登陆 配置的远程节点的私钥 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 配置 sshfence 隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>3000</value>
</property>
4.yarn-site.xml
<!-- 开启 RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定 RM 的 cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yybigdata</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>hadoop02</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop03</value>
</property>
<!-- 指定 zk 集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!-- 要运行 MapReduce 程序必须配置的附属服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 开启 YARN 集群的日志聚合功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- YARN 集群的聚合日志最长保留时长 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<!-- 启用自动恢复 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 制定 resourcemanager 的状态信息存储在 zookeeper 集群上-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
5.mapred-site.xml
<!-- 指定 mr 框架为 yarn 方式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 设置 mapreduce 的历史服务器地址和端口号 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop03:10020</value>
</property>
<!-- mapreduce 历史服务器的 web 访问地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop03:19888</value>
</property>
6.slaves
不要空格 不要多空行
hadoop01
hadoop02
hadoop03
7.发送hadoop包到其他节点
8.配置环境变量
9.启动共享日志文件qjm(3个节点都手动启动 )
hadoop-daemon.sh start journalnode
10.格式化元数据(在其中一个主节点执行)
hadoop namenode -format
11.将元数据发送另一个namenode一份
scp -r /home/hadoop/data/hadoopdata hadoop02:/home/hadoop/data/
12.启动zk
13.格式化zkfc(在其中一个主节点执行)
hdfs zkfc -formatZK
14.启动hadoop
- 点赞
- 收藏
- 分享
- 文章举报
- hadoop集群搭建
- hadoop集群搭建
- 无外网情况下Centos7--为Hadoop集群搭建Sentry(上)
- HadoopHA集群搭建
- linux hadoop完全分布式集群搭建图文详解
- 大数据学习--问题集锦(hadoop篇)--集群搭建
- 5节点Hadoop分布式集群搭建-超详细文档
- 从零搭建hadoop集群
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- hadoop2.2.0集群搭建.txt
- spark学习1--centOS7.2下基于hadoop2.7.3的spark2.0集群环境搭建
- 搭建Hadoop2.2.0集群(linux)
- 基于docker搭建hadoop分布式集群(一)
- Hadoop集群搭建的无密登录配置
- Ubuntu14.04下Hadoop2.2.0集群搭建
- hadoop-2.7.4+hbase-1.3.1+zookeeper-3.4.9搭建分布式集群环境
- Hadoop(1)-完全分布式集群搭建
- Ubuntu下hadoop2.4搭建集群(单机模式)
- Spark2.0.1 on yarn with hue 集群搭建部署(五)hue安装支持hadoop
- 轻松搭建hadoop-1.2.1集群--快速配置SSH免密码登陆