Hadoop完全分布式搭建,基于乌班图系统
因为现在集成的工具很多,建议在接触这一块的过程中还是自己找几个主机,亲手搭一遍集群,更好的熟悉底层!本文只是搭建的过程没有理论!手搭集群时先将各节点网络、ssh配置好!然后在一台机子上操作配置文件,直接分发到各节点!
一、乌班图网络设置
乌班图
给root用户设置密码
sudo passwd root
ubuntu 系统分配固定 ip
sudo vim /etc/network/interfaces
auto ens33
iface ens33 inet static
#分配的 固定 ip 192.168.219是根据你的虚拟网卡来决定的,在第一步里面已经分配了
address 192.168.87.140
#子网掩码 固定的
netmask 255.255.255.0
#网关 默认都是 x.x.x.1 但是 windows 下的 vm 可以自己设置,mac 上我没有找到
gateway 192.168.87.1
#dns 输入和网关一样的即可
dns-nameservers 114.114.114.114
重启网卡的指令
sudo /etc/init.d/networking restart
执行该命令时,可能出现的错误:
[....] Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code. See "systemctl status networking.service" and "journalctl -xe" for details.
failed!
后来发现出现这个错误的原因,是因为Ubuntu16.04中的网卡名称不是eth0。
如果乌班图连不上网络,设置如下
打开sudo vi /etc/resolvconf/resolv.conf.d/base,默认是空的

编辑完成保存之后执行sudo /sbin/resolvconf -u
查看/etc/resolv.conf文件 cat /etc/resolv.conf内容已经加上
重启ubuntu,可以ping通百度
二、
安装yum
首先检测是否安装了build-essential程序包 apt-get install build-essential
安装yum apt-get install yum
安装vim
输入sudo apt-get install vim,下载安装vim
配置ssh
打开"终端窗口",输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。
查看ssh服务是否启动
打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。
使用gedit修改配置文件"/etc/ssh/sshd_config"
(可以不做修改!修改的目的是允许root远程连接,不修改可以用普通用户连接)
打开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增加一句"PermitRootLogin yes"-->保存,修改成功。
配置ssh和其他节点的免密通信
(1)生成密钥 ssh-keygen -t rsa
(2)将密码传到另一个节点 ssh -copy -id 主机名
(3)测试 ssh 主机名
(4)如果在复制密钥时报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
(5)执行 rm -rf ~/.ssh 删除密钥,重新复制
三、Ubuntu下更改各节点用户名和主机名
1、修改hostname
Vim /etc/hostname
2、修改hosts文件
Vim /etc/hosts(主机名映射)
关闭防火墙
Sudo ufw status 在Ubuntu中 我们使用sudo ufw status命令查看当前防火墙状态;inactive状态是防火墙关闭状态 active是开启状态。
开启防火墙
在Ubuntu中 我们使用sudo ufw enable命令来开发防火墙 通过sudo ufw status命令查看开启防火墙后的状态为active 说明防火墙开启成功
关闭防火墙
在Ubuntu中 我们使用sudo wfw disable命令来关闭防火墙。执行该命令之后 我们使用sudo ufw status命令来查看当前防火墙的状态 如果是inactive 说明我们的防火墙已经关闭掉了。
如果突然发现ping不通
Destination host Unreachable(无法访问目标主机)
(1) 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host Unreachable”。
(2)网线出了故障(一般换个网口)
这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。
下载时报错:
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
查了很多资料,提示也很清楚,原因可能是上次我直接在VM切断的电源导致资源一直被占用未被释放,所以还是要注意要规范操作,养成好的习惯,就算是虚拟机也该如此。
解决办法:我采用的是直接杀死占用进程。
命令如下:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
四、安装jdk
解压到自定义路径,配置环境变量,并分发到其他节点
export JAVA_HOME=/opt/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
五、配置Hadoop并分发到其他节点
各文件的具体配置可以看官网
core-site.xml
hadoop-env.sh
hdfs-site.xml
注意:各配置文件的主机名还有下方此属性tong为用户名
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/tong/.ssh/id_rsa</value>
</property>
mapred-site.xml
slaves 直接添加对应的主机名即可
yarn-site.xml
记得配置环境变量
六、配置zookeeper
0、对各个节点配置时间同步
下载ntp
sudo crontab -e
输入内容 */ * * * * /usr/sbin/ntpdate hadoop1
查看时间同步列表
sudo crontab -l
1、zk服务器集群规模不小于3个节点,节点数必须是奇数
2、要求各服务之间系统时间要保持一致
3、将zk压缩包移动到指定目录下,在Linux下解压
4、配置环境变量 完成后记得 source /etc/profile (重启环境变量)
5、重命名:将zk目录下zoo_sample.cfg,重命名为zoo.cfg,执行命令:mv zoo_sample.cfg zoo.cfg
6、查看:在zk/conf目录下,修改文件 vi zoo.cfg,在该文件中dataDir表示文件存放目录,它的默认设置为/tmp/zookeeper这是一个临时存放目录,每 次重启后会丢失,在这我们自己设一个目录,/usr/local/zk/data。
7、在dataDir设置的路径下创建相同的目录
8、在dataDir设置的目录路径下创建myid
把hadoop0中相应的myid的值改为0,把hadoop1中相应的myid的值改为1,
把hadoop2中相应的myid的值改为2
9、在zoo.cfg下添加
server.0=hadoop0:2888:3888
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
10、将此节点的所有配置信息全部复制到其他节点
11、在三个节点上分别执行命令zkServer.sh start
再次输入jps,查看有无zk的进程
12、在三个节点上分别执行命令zkServer.sh status,从下面的图中我们会发现hadoop和hadoop1为Follower,hadoop0为Leader。
13、到此配置完毕
七、关键的时候到了,一般按流程只需要格式化一次就可以,如果集群启动报错,就再格式化一遍!还是报错请检查各个环节是否有问题
Hdfs配置ha
1、启动三个服务器上的zookeeper服务 命令 zkServer.sh start,启动HDFS
2、在配置zookeeper的各个journalnode节点启动该进程
hadoop-daemon.sh start journalnode
3、删除所有节点hadoop_data下的所有文件
4、必须在第一个namenode节点上进行格式化,再复制到第二个namenode节点,目的是为了保持id一致
hadoop namenode -format
5、在namenode节点(hadoop1、hadoop2)格式化zkfc
hdfs zkfc -formatZK (注意:这里的ZK是大写,大写,大写)
6、启动dfs
7、查看节点状态:hdfs haadmin -getServiceState NN1
8、输入IP地址:50070 查看当前两个namenode的状态,测试是否可以实现主备切换
Yarn配置ha
1、在主节点配置hadoop下的yarn-site.xml,并分发到其他子节点
配置时注意,namenode和yarn不要配置到同一台节点上
2、启动yarn服务:start-yarn.sh
3、或单独启动yarn服务
yarn-daemon.sh start resourcemanager
4、启动mapreduce历史服务器
mr-jobhistory-daemon.sh start historyserver
注意:如果提示某个文件不能删除,查看该文件的所有者,并修改
不能正常启动时多用tail -f 命令查看日志
Hadoop完全分布式搭建,基于乌班图系统的更多相关文章
- hadoop完全分布式搭建HA(高可用)
2018年03月25日 16:25:26 D调的Stanley 阅读数:2725 标签: hadoop HAssh免密登录hdfs HA配置hadoop完全分布式搭建zookeeper 配置 更多 个 ...
- 超详细解说Hadoop伪分布式搭建--实战验证【转】
超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...
- 3.hadoop完全分布式搭建
3.Hadoop完全分布式搭建 1.完全分布式搭建 配置 #cd /soft/hadoop/etc/ #mv hadoop local #cp -r local full #ln -s full ha ...
- Hadoop伪分布式搭建(一)
下面内容主要说明在Windows虚拟机上面,怎么搭建一个Hadoop伪分布式,并如何运行wordcount程序和网页查看HDFS文件系统. 1 相关软件下载和安装 APACH官网提供hadoop版本 ...
- Hadoop伪分布式搭建步骤
说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1 JAVA :jdk7 32位:本文是本人在网络上收集的HADOOP系列视频所附带的 ...
- Hadoop 完全分布式搭建
搭建环境 https://www.cnblogs.com/YuanWeiBlogger/p/11456623.html 修改主机名------------------- 1./etc/hostname ...
- hadoop 伪分布式搭建
下载hadoop1.0.4版本,和jdk1.6版本或更高版本:1. 安装JDK,安装目录大家可以自定义,下面是我的安装目录: /usr/jdk1.6.0_22 配置环境变量: [root@hadoop ...
- Hadoop完全分布式搭建过程中遇到的问题小结
前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...
- Hadoop完全分布式搭建
---记于2015年11月6日星期五 准备工作 软硬件环境 主机操作系统:处理器:i5,主频:3.2G,内存:8G,Windows64 虚拟机软件:VMware Workstation 10 虚拟操作 ...
- Hadoop完全分布式搭建流程
centos7 搭建完全分布式 Hadoop 环境 SSR 前言 本次教程是以先创建 四台虚拟机 为基础,再配置好一台虚拟机的情况下,直接复制文件到另外的虚拟机中(这样做大大简化了安装流程) 且本次 ...
随机推荐
- 免费使用TasteWP一键搭建线上临时WordPress网站
虽然用宝塔面板或者1Panel面板可以非常快速的搭建一个WordPress网站,但是有时候只想测试下我设计的页面或者开发的主题和插件,又得买服务器,绑定域名,安装程序,搭建起来也过于浪费时间了:再或者 ...
- U盘安装Ubuntu18.04系统
U盘安装Ubuntu18.04系统 一.安装盘制作 根据您当前使用系统的不同,需要不同的工具制作 U 盘启动安装盘.目前主要有 Linux 系统和 Windows 系统两类. 1.Linux 系统 ( ...
- 使用AWS存储数据并下载遥感影像Landsat为例
使用AWS存储数据并下载遥感影像Landsat为例 一.步骤: 创建s3存储桶(具体创建账号方式请问"度娘",当时忘记录了) 创建用户--配置策略 用该用户创建访问密钥--记录 访 ...
- java 使用openoffice将doc、docx、ppt、pptx等转换pdf格式文件
软件的安装与配置 链接: 官网 / C**N / 毒盘:提取码k47b 有能力的大佬可以选择c**n下载支持支持,官网下载可能有点慢 Windows下安装配置 下载安装包,安装到硬盘(这个就不截图了吧 ...
- 【Project】原生JavaWeb工程 02 登陆业务的流程(第一阶段样例)
1.对用户信息的描述 首先用户有一些基本信息: 最简单的: 用户名称 + 用户密码 然后是用户状态,例如封号,注销,停用,等等 用户名称 + 用户密码 + 账号状态 接着为了防止脚本攻击,又产生了图形 ...
- 视觉测距和SLAM —— Visual Odometry / SLAM
地址: https://www.cvlibs.net/datasets/kitti/eval_odometry.php
- Apache DolphinScheduler 3.1.8 保姆级教程【安装、介绍、项目运用、邮箱预警设置】轻松拿捏!
概述 Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统.适用于企业级场景,提供了一个可视化操作任务.工作流和全生命周期数据处理过程的解决方案. ...
- Linux的命令合集
Linux常用的命令 这里分享一个博客,里面有很丰富的Linux的常用指令. https://blog.csdn.net/qq_23329167/article/details/83856430. 然 ...
- SMU Spring 2023 Trial Contest Round 1
A. Prepend and Append 用ans记录n的值,然后双指针从前后判断是否一个为0一个为1,是的话则ans-2,否则退出循环即可. #include<bits/stdc++.h&g ...
- 基于druid和spring的动态数据库以及读写分离
转
spring与druid可以实现动态数据源,夸库查询,读写分离等功能.现在说一下配置: 1.需要配置多个spring数据源 spring-data.xml <!-- 动态数据源 --> & ...