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 前言 本次教程是以先创建 四台虚拟机 为基础,再配置好一台虚拟机的情况下,直接复制文件到另外的虚拟机中(这样做大大简化了安装流程) 且本次 ...
随机推荐
- Fiddler 使用fiddler无法抓取苹果手机https请求问题解决方案
使用fiddler无法抓取苹果手机https请求问题解决方案 by:授客 QQ:1033553122 测试环境 Win10 Fiddle4 IPhone6s 问题描述 使用fiddler抓取IPh ...
- python的基本认识
python的基本认识 初识python: python是一种跨平台的.开源的.免费的.解释型的高级编程语言: python的应用领域十分广泛.如web编程.图像处理.黑客编程.网络爬虫和科学计算等: ...
- bloom效果
搜索 复制
- php 选择驱动写法
在 ThinkPHP 5.1 中,若要根据配置文件 sms.conf 中的设置在不同的短信渠道之间进行切换,可以采用以下步骤: 第一步:定义接口 首先,创建一个接口,这个接口将由所有短信渠道类实现.这 ...
- jmeter测试udp广播(jmeter发送udp)
jmeter测试udp广播(jmeter发送udp) jmeter测试udp广播(jmeter接收udp) 先下载安装第三方插件 下载链接:https://jmeter-plugins.org/ins ...
- 基于禅道数据库对bug进行不同维度统计
工作中经常需要在周报.月报.年报对禅道bug数据进行不同维度统计导出,以下是我常用的统计sql 1.统计2022年每个月bug数(deleted='0'是查询未删除的bug) select DATE_ ...
- 【转载】 tf.image.sample_distorted_bounding_box (为图像生成单个随机变形的边界框)
原文地址: https://blog.csdn.net/tz_zs/article/details/77920116 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...
- Jax计算框架的MPI通讯的扩展库 —— mpi4jax
地址: https://github.com/mpi4jax/mpi4jax PS. 关于这个library的性能表现并不是很清楚,没有亲自手动安装并测试过.这里只作为链接收藏之用,毕竟这个属于比较小 ...
- x86_64 ubuntu22.04环境下编译版本python3.13.0 alpha 0源码——python3.13.0 alpha 0的源码编译
python3.13.0 alpha 0版本源码编译: 环境--x86_64 ubuntu22.04系统: 1. 源码下载: git clone https://github.com/python/c ...
- VcXsrv: 一个好用的Windows X11 Server
windows10没有系统自带的X11服务器,使用了几款X11的windows下X11服务器软件后发现了一个好用的软件--VcXsrv. 下载地址: https://sourceforge.net/p ...