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 前言 本次教程是以先创建 四台虚拟机 为基础,再配置好一台虚拟机的情况下,直接复制文件到另外的虚拟机中(这样做大大简化了安装流程) 且本次 ...
随机推荐
- Megacity Unity Demo工程学习
1.前言 Megacity Demo发布于2019年春,本博文撰写于2024年,ECS也早已Release并发布了1.2.3版本.不过好在核心变化不大,多数接口也只是换了调用名称, 该Demo相较于之 ...
- 4、SpringBoot2之整合SpringMVC
创建名为springboot_springmvc的新module,过程参考3.1节 4.1.重要的配置参数 在 spring boot 中,提供了许多和 web 相关的配置参数(详见官方文档),其中有 ...
- 【Java】项目采用的设计模式案例
先说一下业务需要: 做电竞酒店后台系统,第一期功能有一个服务申请的消息通知功能 就是酒店用户在小程序点击服务功能,可以在后台这边查到用户的服务需要 原本设计是只需要一张表存储这些消息,但是考虑设计是S ...
- 【SpringBoot】05 探索配置方式 Part1 指定和导入配置的注解
@PropertySource & @ImportResource @ConfigurationProperties默认从全局配置文件中读取 我们可以拆解出来分成单独的配置文件 [提取Bean ...
- 【Shiro】04 ini授权实现
[授权概念] 访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等). 在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permission ...
- JavaWeb入门到实战学习笔记
了解,讲得并不是很好,很展开. 概念 动态web Web服务器 web服务器这节也是蜻蜓点水,引出tomcat而已 ASP(C#语言,微软) JSP PHP Java bootstrapclasslo ...
- python运行报错:ImportError: libcudnn_cnn_infer.so.8: cannot open shared object file
运行报错: 解决方法: conda install cudatoolkit==11.8.0 python3 -m pip install nvidia-cudnn-cu11==8.7.0.84 成功解 ...
- Google的TPU的Pallas扩展无法使用jax的随机数生成
Google的TPU的Pallas无法使用jax的随机数生成 地址: https://jax.readthedocs.io/en/latest/pallas/tpu.html
- 国产操作系统 deepin —— UOS 系统下使用蓝牙音箱或蓝牙耳机不能正常工作
近日搞来了一个国产CPU的电脑,自带系统为UOS,具体可见: https://www.cnblogs.com/devilmaycry812839668/p/14828130.html 忽然发现这个系统 ...
- ubuntu22.04下安装nvidia-docker
首先需要保证docker engine已经安装成功,具体见: https://www.cnblogs.com/devilmaycry812839668/p/17269122.html ======== ...