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 前言 本次教程是以先创建 四台虚拟机 为基础,再配置好一台虚拟机的情况下,直接复制文件到另外的虚拟机中(这样做大大简化了安装流程) 且本次 ...
随机推荐
- 【js】 reduce、filter、map 数组链式调用求加和
let data = [ {hierarchy: '香蕉', count: 1}, {hierarchy: '苹果', count: 2}, {hierarchy: '葡萄', count: 3}, ...
- python adb 安卓app性能测试
主要是进行cpu.内存.冷启动.热启动.流量.电量的监测 可获取到相关数据,同竞类产品对比,或者同版本对比 cpustatus adb命令:adb shell "dumpsys cpuinf ...
- cpu亲和性相关函数和宏 基础讲解[cpu_set_t]
cpu亲和性相关函数和宏讲解: 写在前面: 我在查找关于linux cpu宏函数没看到有对宏函数基础的.详细的讲解,笔者便通过官方文档入手,对次进行的翻译和理解希望能帮到对这方面宏有疑惑的读者 exp ...
- 【Kotlin】官网学习笔记
0.IDEA环境设置: 1.基础语法 BasicSyntax 地址:https://kotlinlang.org/docs/basic-syntax.html 一.方法与变量 可以直接编写main方法 ...
- 【Java】MuliThread 多线程
程序Program 是完成特定人,用某种语言编写的一组指令集合,即一段静态代码,静态对象 进程Process 是程序的一次执行过程,可以是一个正在执行的程序 - 程序是静态的,进程是动态的 - 进程是 ...
- OpenAI内讧更多细节曝光:奥特曼离间董事会失败
参考: https://www.thepaper.cn/newsDetail_forward_25512687 ============================== 根据 https://ww ...
- 国产操作系统 deepin —— UOS 系统下使用蓝牙音箱或蓝牙耳机不能正常工作
近日搞来了一个国产CPU的电脑,自带系统为UOS,具体可见: https://www.cnblogs.com/devilmaycry812839668/p/14828130.html 忽然发现这个系统 ...
- 关于spinninup的学习笔记
作为reinforcement learning的一个入门学习的项目,spinningup的地址: (英文原版:) https://spinningup.openai.com/en/latest/in ...
- gym库中类FilterObservation(ObservationWrapper)的理解
filter_observation.py模块中类 FilterObservation(ObservationWrapper) 的理解. 代码: import copy from gym import ...
- 局域网中linux和window共享文件方案——samba
注明: 曾经写过:局域网中如何为Ubuntu20.04和window10共享文件,本文可以视作为该篇的续篇. 本文主要内容为Samba软件的安装和配置,以及相关的磁盘操作. 注意:(硬盘的UUID会受 ...