Hadoop集群安装指南(CHD5.9.1)(分布式+图文详解)
centos7.1,CDH5.9.1,3台机器,终极指导安装
下载链接如下:
安装文件下载链接如下:
链接:https://pan.baidu.com/s/1RQYNiWn9a-T8GXcCsoDBsA 密码:mu83
报错解决方法在最后面
报错解决方法在最后面
报错解决方法在最后面
基础配置
首先查看IP地址
$ ifconfig

如果没有显示的话,需要修改配置文件 ifcfg-enp5s0(名字不唯一,一般是第一个)
$ cd /etc/sysconfig/network-scripts
$ vim ifcfg-enp5s0

$ 修改箭头处,分别是静态地址,系统启动时是否激活网卡,ip地址,网关,DNS

重启服务
$ systemctl retart network.service
检测一下
$ ping www.baidu.com

修改主机名分别为master,node1,node2
$ hostname

更改yum源,Yum原本的源都在国外,更新特别浪费时间,我们改为阿里源:
首先我们将原来的源进行备份:
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
接下来我们用阿里源进行替换:
$ wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

设置ssh
主要有三步:①生成公钥和私钥、②导入公钥到认证文件、③更改权限
首先添加各个节点的host
$ vim /etc/hosts
127.0.0.1 localhost
::1 localhost
210.44.71.51 master
210.44.71.52 node1
210.44.71.53 node2

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/*


设置主机->从机的无密码登录
$ cat ~/.ssh/id_rsa.pub | ssh root@node1 'cat - >> ~/.ssh/authorized_keys'
$ cat ~/.ssh/id_rsa.pub | ssh root@node2 'cat - >> ~/.ssh/authorized_keys'

测试
$ ssh node1
$ ssh node2


设置从机->主机的无密码登录
分别在node1、node2上执行
$ cat ~/.ssh/id_rsa.pub | ssh root@master 'cat - >> ~/.ssh/authorized_keys'

测试
$ ssh master

安装JDK
如果有openjdk先卸载
$ rpm -qa | grep java
$ rpm -e --nodeps +openjdkname
安装
$ rpm -ivh jdk-8u121-linux-x64.rpm

发给其他节点(主节点),然后重复上一次操作
$ scp /root/jdk-8u121-linux-x64.rpm node1:/root/
$ scp /root/jdk-8u121-linux-x64.rpm node2:/root/

检测一下
$ which java
$ java -version
$ which javac
$ javac -version

关闭防火墙,分别为关闭防火墙,禁止开机启动
$ systemctl stop firewalld.service
$ systemctl disable firewalld.service

关闭SELinux,重启生效
$ vim /etc/selinux/config
$ reboot

下载Cloudera相关rpm
下载cloudera-manager.repo:
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo
修改其中的版本号为要安装的版本号
**修改所有的 https 为 http **
**baseurl=http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.9.1/ **
gpgkey =http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/RPM-GPG-KEY-cloudera
下载cloudera-manager-installer.bin:
http://archive.cloudera.com/cm5/installer/5.9.1/
下载RPMS(目录下的所有文件):
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.9.1/RPMS/x86_64/
下载CDH-Parcel文件(三个): (注意manifest.json需要自己复制下来,粘到txt重命名,下载后将.sha1文件后缀更改为.sha)
CDH-5.9.1-1.cdh5.9.1.p0.4-el7.parcel
CDH-5.9.1-1.cdh5.9.1.p0.4-el7.parcel.sha1
manifest.json
http://archive.cloudera.com/cdh5/parcels/5.9.1/

在所有节点上拷贝安装文件
将cloudera-manager.repo文件拷贝到所有节点的/etc/yum.repos.d/文件夹下
$ mkdir -p /etc/yum.repos.d/
$ cp /root/cloudera-manager.repo /etc/yum.repos.d/
传给其他节点
$ scp /root/cloudera-manager.repo node1:/root/
$ cp /root/cloudera-manager.repo /etc/yum.repos.d/ //node1
$ cp /root/cloudera-manager.repo /etc/yum.repos.d/ //node2

将下载的RPMS所有文件,拷贝到/opt/cloudera-RPMS/目录下,需要新建目录(主节点全部,从节点部分):
$ mkdir -p /opt/cloudera-RPMS
node中不需要安装server的包,只需要安装下面两个
cloudera-manager-agent-5.9.1-1.cm591.p0.8.el7.x86_64.rpm
cloudera-manager-daemons-5.9.1-1.cm591.p0.8.el7.x86_64.rpm
$ scp /opt/cloudera-RPMS/cloudera-manager-agent-5.9.1-1.cm591.p0.8.el7.x86_64.rpm node1:/opt/cloudera-RPMS/
$ scp /opt/cloudera-RPMS/cloudera-manager-daemons-5.9.1-1.cm591.p0.8.el7.x86_64.rpm node1:/opt/cloudera-RPMS/
$ scp /opt/cloudera-RPMS/cloudera-manager-agent-5.9.1-1.cm591.p0.8.el7.x86_64.rpm node2:/opt/cloudera-RPMS/
$ scp /opt/cloudera-RPMS/cloudera-manager-daemons-5.9.1-1.cm591.p0.8.el7.x86_64.rpm node2:/opt/cloudera-RPMS/

将下载的CDH-Parcel文件(三个)拷贝到/opt/cloudera/parcel-repo 目录下 (如果该目录不存在,手动创建,所有节点)
传给其他节点
//主节点
$ mkdir -p /opt/cloudera/parcel-repo
//从节点
$ mkdir -p /opt/cloudera
$ scp -r /opt/cloudera/parcel-repo/ node1:/opt/cloudera/
$ scp -r /opt/cloudera/parcel-repo/ node2:/opt/cloudera/

所有节点都需要执行的
$ cd /opt/cloudera-RPMS
$ yum -y localinstall --nogpgcheck *.rpm
只需要在主节点(Master)上执行的
将cloudera-manager-installer.bin拷贝到/opt目录下
给.bin文件添加可执行权限
$ sudo chmod +x /opt/cloudera-manager-installer.bin
执行安装
/opt/cloudera-manager-installer.bin
依次出现这些页面








进入web页面210.44.71.51:7180
账号密码都是admin


在搜索框里输入节点名字,搜索,英文逗号分隔



不要选择JDK,已经安装过了

默认即可

设置密码

一定保证所有节点连网 这里图片有个错误,应该包含master节点


修改请看最后教程


默认即可







可能出现的错误
Fatal error

把数据文件删除(改名字)
如果后来又出现错误可继续删除
$ cd /etc/cloudera-scm-server/
$ mv /etc/cloudera-scm-server/db.properties /etc/cloudera-scm-server/db.properties.backup

更改SELinux需要重启
$ reboot
错误3

查看日志文件后发现是获取不到镜像,DNS没配好
错误8

可能是因为cloudera-manager.repo没有拷贝到目标文件夹
或者是因为启动失败,主节点中/etc/yum.repos.d目录下cloudera-manager.repo自动改名导致的,重新拷贝一份进去
cp /root/cloudera-manager.repo /etc/yum.repos.d/
配置时警告错误

1、透明大页面问题
临时关闭:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
修改开机设置
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag

临时修改:
sysctl vm.swappiness=0
永久设置:
vi /etc/sysctl.conf
vm.swappiness = 10
sysctl -p
Hadoop集群安装指南(CHD5.9.1)(分布式+图文详解)的更多相关文章
- 大规模Hadoop集群实践:腾讯分布式数据仓库(TDW)
TDW 是腾讯最大的离线数据处理平台.本文主要从需求.挑战.方案和未来计划等方面,介绍了TDW在建设单个大规模集群中采取的 JobTracker 分散化和 NameNode 高可用两个优化方案. TD ...
- 集群之LVS(负载均衡)详解
提高服务器响应能力的方法 scale on 在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器. scale out 横向扩展,将多台服务器并发向外响应客户端的请求.优点:成本低,扩展 ...
- MySQL集群Percona XtraDB Cluster安装搭建步骤详解
http://www.linuxidc.com/Linux/2017-05/143501.htm http://blog.csdn.net/thundermeng/article/details/52 ...
- Centos mini系统下的Hadoop集群搭建
1.事前了解 1.1 Hadoop 百度百科:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin Hadoop是一个由Apache基金会所开发 ...
- Hadoop集群
你可以用以下三种支持的模式中的一种启动Hadoop集群: 单机模式 伪分布式模式 完全分布式模式 单机模式的操作方法 默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程.这对调试 ...
- Hadoop的学习前奏(二)——Hadoop集群的配置
前言: Hadoop集群的配置即全然分布式Hadoop配置. 笔者的环境: Linux: CentOS 6.6(Final) x64 JDK: java version "1.7 ...
- Hadoop集群搭建
配置IP,修改主机名,关闭防火墙,配置SSH免密码登录
- Hadoop集群搭建的详细过程
Hadoop集群搭建 一.准备 三台虚拟机:master01,node1,node2 时间同步 1.date命令查看三台虚拟机时间是否一致 2.不一致时间同步:ntpdate ntp.aliyun.c ...
- 大数据系列(3)——Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
随机推荐
- Codeforces - 1114C - Trailing Loves (or L'oeufs?) - 简单数论
https://codeforces.com/contest/1114/problem/C 很有趣的一道数论,很明显是要求能组成多少个基数. 可以分解质因数,然后统计各个质因数的个数. 比如8以内,有 ...
- HDOJ1584蜘蛛牌【DFS】
10张牌,大的只能跟小的跑,可以针对每一个状态进行搜索,求一个最小的移动距离. 但是不会怎么遍历整个状态是硬伤? 因为只能大的跟着小的. 先把小的标记,去寻找大的点,最终一定是满足的吧. 比如先标记1 ...
- 优化 SQL 查询:如何写出高性能SQL语句
1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...
- web前端图片预加载
是什么? 浏览器会缓存静态资源(hmtl/css/img等).图片预加载就是让浏览器提前缓存图片,提升用户体验. 浏览器什么情况下会下载图片? 1,解析到html中img的src属性的时候 2,解析到 ...
- 洛谷 P3960 列队
https://www.luogu.org/problemnew/show/P3960 常数超大的treap #pragma GCC optimize("Ofast") #incl ...
- 学习JavaScript数据结构与算法 (一)
学习JavaScript数据结构与算法 的笔记, 包含一二三章 01基础 循环 斐波那契数列 var fibonaci = [1,1] for (var i = 2; i< 20;i++) { ...
- c#学习系列之装箱拆箱
1. 装箱和拆箱是一个抽象的概念 2. 装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的 ...
- 关于list,字符串的小记录
1.关于操作list的命令: a.append("hi") 这个可以在list的最后一项加上个这个字符串"hi",a是list的名字. del a[3] 删去l ...
- Collection2
- Android中ProgressBar显示小数的方法
Android原生的ProgressBar的ProgressDialog.STYLE_HORIZONTAL(即水平样式)默认setMax和setProgress只能传int型的参数,而实际项目中我需要 ...