Haddop完全分布式集群搭建
hadoop完全分布式搭建
建议(遇到的坑):
如果自己用的操作系统就是linux,我本身是deepin系统,装了两台虚拟机,结果,用户名没有配置,导致启动不了,因为hadoop的master节点启动的时候,默认slave的用户名为master机器的用户名。所以,要保证三台机器,用户名是一致的!!
windows下的调试MapReduce程序会有点不方面,需要装winutils。
建议在一台上搭建完整(包括环境、配置),再克隆,或者scp复制。
如果想连zookeeper和kafka都一起的话,可以也直接配置了。不装的话,之后用scp传,也挺方面的。
克隆完修改hostname!
整体过程还有点粗糙,有些遇到的细节,也忘记记录了。欢迎指教,如果有问题,请通知,我会及时改正。
虚拟机安装
VMware中安装多台CentOS-7虚拟机(这里安装了2台slave,因为我自己用的操作系统就是deepin)
传文件到虚拟机:我使用scp传的,很快。windows下的用户建议xshell,sftp。
虚拟机的网络配置就默认的NAT,CentOS最小安装
配置:
关闭防火墙
$ systemctl status firewalld # 查看防火墙状态
$ systemctl stop firewalld # 临时停止firewall
$ systemctl disable firewalld # 禁止firewall开机启动关闭SELinux
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
$ vim /etc/selinux/config
# 将SELINUX=enforcing改为SELINUX=disabled安装ntp时间同步服务
yum install -y ntp
# 设置开机自启
systemctl enable ntpd.service # 启动
systemctl enable ntpd
systemctl status ntpd # 查看是否启动有可能无法启动,原因是:与chronyd冲突:
systemctl disable chronyd :关掉,在启动ntp,即可
修改主机名、配置静态ip
(克隆之后,这些要稍作修改,主机名要改,ip要改一下即可)
第一步:修改 /etc/sysconfig/network-scripts/ifcfg-xxx文件
主要修改下面几个参数:
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="172.16.125.128"
NETMASK="255.255.255.0"
GATEWAY="172.16.125.2"第二部:修改文件 /etc/sysconfig/network的内容
内容同上
# Created by anaconda
GATEWAY=172.16.125.2
DNS=172.16.125.2第三步:重启网络
service network restart
配置ssh
master能够免密登录到slave节点
$ ssh-keygen -t rsa
打开~/.ssh 下面有三个文件
-rw-r--r--. 1 root root 392 9月 26 21:05 authorized_keys # 已认证的keys
-rw-------. 1 root root 1679 9月 26 20:57 id_rsa # 私钥
-rw-r--r--. 1 root root 393 9月 26 20:57 id_rsa.pub # 公钥在master上将三台机器的公钥放到authorized_keys里。命令:
$ sudo cat id_rsa.pub >> authorized_keys
将master上的authorized_keys放到其他linux的~/.ssh目录下
$ sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh
修改authorized_keys权限,命令:
$ chmod 644 authorized_keys
测试是否成功
ssh host2 输入用户名密码,然后退出,再次ssh host2不用密码,直接进入系统。这就表示成功了。
如果在登录ssh的时候出现:
The authenticity of host 'hadoop2 (192.168.238.130)' can't be established
则需要修改/etc/ssh/ssh_config文件中的配置,添加如下两行配置:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null最后:安装配置jdk、hadoop
core-stie.xml
<configuration>
<property>
<name>fs.defaultFS</name><!--默认文件系统位置-->
<value>hdfs://master:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name><!--hadoop的工作目录,namenode、datanode的数据-->
<value>/home/whr/workbench/hadoop/data/</value>
</property>
</configuration>hdfs.site.xml
<configuration>
<property>
<name>dfs.replication</name><!--副本数量-->
<value>2</value>
</property>
<property><!--secondary的位置,子节点的其中一个配置-->
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
</configuration>mapreduce.site.xml
<configuration>
<property><!--指定mapreduce程序用yarn集群运行,才能实现分布式-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>yarn.site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>配置slaves文件
slave1
slave2配置masters文件(如果有的话,我用的CDH版本,没有此文件)
master
克隆
vmware克隆没什么说的
克隆完成,先修改 /etc/hostname文件下的主机名!
添加三台机器的ip地址映射:/etc/hosts
启动集群
- 先格式化节点(我是一台格式化之后,克隆的)
$ hadoop namenode -format
# 最后出现,即成功,也可以看最后状态码为0
Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
启动:到sbin目录下(可以先把sbin目录配置到环境变量中;就不需要切换目录了)
start-dfs.sh
start-yarn.sh
jps命令
全部启动完成之后,查看结果:(在master上ssh登录slave)
可以看到master的NameNode、两个DataNode、一个SecondaryNameNode都已经启动完毕
yarn下的ResourceManager、两个slave中的NodeManager也都启动完成

4. 这样就可以通过浏览器访问了50070端口了
可以跑一下mapreduce样例程序:
$ hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 5 5
Hadoop配置文件
参考配置文件
https://www.cnblogs.com/xhy-shine/p/10530729.html
Haddop完全分布式集群搭建的更多相关文章
- HBase HA分布式集群搭建
HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
- hadoop伪分布式集群搭建与安装(ubuntu系统)
1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...
- Hadoop分布式集群搭建
layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...
- hbase分布式集群搭建
hbase和hadoop一样也分为单机版.伪分布式版和完全分布式集群版本,这篇文件介绍如何搭建完全分布式集群环境搭建. hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop ...
- 分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建
一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行 ...
- kafka系列二:多节点分布式集群搭建
上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...
- MinIO 分布式集群搭建
MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...
- 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
随机推荐
- Vue学习笔记十:过滤器
目录 公共过滤器的写法 简易过滤器+带参数过滤器+多过滤器 私有过滤器 公共过滤器的写法 过滤器的写法还是很简单的 ,如下 <p>{{ msg | filtermsg }}</p&g ...
- 【k8s node断电重启】
kubernetes断电重启 导致部分pod无法删除 dashboard上处于黄色 kubectl get处于terminate 状态 kubectl delete报错: An error occur ...
- elasticsearch关键词查询不分词
$query = [ 'bool' => [ 'must' => [ 'match_phrase' => ['content' => $word] //$word词不被分词 ] ...
- 【python基础】使用import导入相对路径的源文件
前言 在编写python代码的过程中,不同路径下的源码文件该如何引用,这是个问题,本文针对这个问题介绍解决方法. 源码目录结构: . ├── conf.py ├── main.py ├── mod/ ...
- Appium移动自动化测试-----(十)appium API 之上下文操作
其实上下文的操作主要针对于混合应用.啥是混合应用,简单来说就是APP用里面嵌入网页.Android上的浏览器就属于混合应用. 1.获取当前上下文 方法: getContext() 获取当前所有的可用的 ...
- 任务调度之Quartz.Net基础
最近公司要求将之前的系统设计文档补上,于是大家就都被分配了不同的任务,紧锣密鼓的写起了文档来.发现之前项目中使用了Quartz.Net来做一些定时任务的调度,比如定时的删除未支付的订单,定时检查支付状 ...
- poj3348(求凸包面积)
题目链接:https://vjudge.net/problem/POJ-3348 题意:转换题意后即是求凸包的面积. 思路: 套模板,求凸包面积即转换为多个三角形面积之和,用叉积求,然后除2,因为本题 ...
- git当前项目免密提交
在项目目录下,执行: vim .git/config 在url后边添加用户名密码即可 ``` [core] repositoryformatversion = filemode = true bare ...
- linux定时任务每隔5分钟向文本追加一行
编写shell脚本 test.sh内容如下,上传到linux的root目录 更改文件权限 chmod 777 test.sh 编辑定时任务 crontab -e */5 * * * ...
- MATLAB:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位
问题:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位.上一行溢出时,上上一行的1移动一位, ...