一、了解CDH

在众多 Hadoop 版本中, CDH 是 Hadoop 众多分支中比较出色的版本, 它由Cloudera 发行和维护。CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作。

1.1 Hadoop

  • 属于开源软件,采用Apache 2.0许可协议
  • 官方版本称为社区版Hadoop

1.2 比较流行Hadoop版本

  • Apache Hadoop
    维护人员比较多,更新频率比较快,稳定性相对比较差
  • Cloudera Hadoop(CDH)
    Cloudera公司的发行版本,基于Apache Hadoop的二次开发,优化了组件兼容和交互接口、简化安装配置、增加Cloudera兼容特

1.3 Cloudera Hadoop(CDH)概述

  • Hadoop发行版除了社区的Apache hadoop外,Cloudera、Hortonworks、MapR、EMC、IBM、INTEL、华为等都提供自己的商业版本
  • CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作
  • CDH常用安装方式
    Cloudera Manager在线安装
    Parcel安装
    YUM安装·RPM安装

二、部署CDH

环境配置
  • 资源分配

    cdhmaster节点 至少2C6G

    cdhslave01/cdhslave02节点至少2C4G

  • 修改主机名

    hostnamectl set-hostname cdhmaster
    hostnamectl set-hostname cdhslave01
    hostnamectl set-hostname cdhslave02
    
  • 所有节点添加hosts解析

    cat >> /etc/hosts << EOF
    172.16.10.10 cdhmaster
    172.16.10.11 cdhslave01
    172.16.10.12 cdhslave02
    EOF
    
  • 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭内核安全机制

    sed -i "s/.*SELINUX=.\*/SELINUX=disabled/g" /etc/selinux/config
    
  • 时间同步

    yum -y install chrony
    systemctl start chronyd
    chronyc sources -v
    

2.1 安装JDK环境

  • 所有集群节点都要执行
# 解压
tar zxvf jdk-8u171-linux-x64.tar.gz -C /opt
# 改名
mv /opt/jdk1.8.0_171 /opt/jdk
# 修改环境变量
cat >> /etc/profile << EOF
export JAVA_HOME=/opt/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
# 刷新环境变量
source /etc/profile
# 查看版本
java -version

2.2 配置免密登录

  • 仅在cdhmaster节点执行
  • cdhmaster 节点需要通过 SSH 对 cdhslave 节点进行管理,需要配置 SSH 免密码登录
ssh-keygen
ssh-copy-id cdhslave01
ssh-copy-id cdhslave02

2.3 交换分区和大页设置

  • 所有集群节点都要执行

  • 禁用交换分区和透明大页,否则会在安装配置 CDH 群集环境检测中报错

sysctl -w vm.swappiness=0
echo “vm.swappiness=0” >> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hughugepage/enabled" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

2.4 部署数据库

  • 仅在cdhmaster节点执行
#卸载mariadb
for i in $(rpm -qa | grep mariadb);do rpm -e ;done
# 安装mysql
yum -y install libaio
# 创建用户
useradd -s /sbin/nologin mysql
# 解压msyql安装
tar zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# 移动安装路径
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
# 初始化数据库
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
# 复制mysql服务启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 上传mysql的配置文件my.cnf(需要手写)文件并移动到/etc/下
mv my.cnf  /etc/
# 启动mysql
/etc/init.d/mysqld start
# 创建软链接,方便使用mysql命令
ln -s /usr/local/mysql/bin/mysql /usr/sbin/ # 登录mysql
mysql -uroot -p
# 修改密码
alter user 'root'@'localhost' identified by '123456';
# 创建数据库并授权
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on *.* to 'cdh'@'localhost' identified by '123456' with grant option;
grant all privileges on *.* to 'cdh'@'%' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'127.0.0.1' identified by '123456' with grant option;
grant all privileges on *.* to 'scm'@'127.0.0.1' identified by '123456' with grant option;
# 刷新权限
flush privileges;
#退出mysql
exit

2.5 部署CDH

2.5.1 安装依赖包

  • 所有集群节点都要执行
yum -y install psmisc libxslt libxslt-python perl

2.5.2 安装cloudera-manager

  • 仅在cdhmaster节点执行
tar zxf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt/
# 改名
mv /opt/cm-5.14.0/ /opt/cm

2.5.3 安装JDBC驱动

  • 仅在cdhmaster节点执行
tar zxf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46/
chmod +x mysql-connector-java-5.1.46-bin.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cm/share/cmf/lib/mysql-connector-java.jar
mkdir /usr/share/java
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

2.5.4 创建Cloudera Manager 用户

  • 所有集群节点都要执行
useradd --system --home=/opt/cm/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

2.5.5 初始化 Cloudera Manager 数据库

  • 仅在cdhmaster节点执行
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -h localhost -uroot -p'123456' scm '123456'

2.5.6 修改 Cloudera Manager 配置文件

  • 仅在cdhmaster节点执行
# 在cdhmaster主节点上修改 Cloudera Manager 的配置文件,将 server_host 设置项的值改为主节点 cdhmaster 主机的 IP 地址,让从节点去找主节点
vim /opt/cm/etc/cloudera-scm-agent/config.ini
server_host=172.16.10.10# 将文件推送到slave节点,同步 Cloudera Manager 数据到其他节点
scp -r /opt/cm/ cdhslave01:/opt/
scp -r /opt/cm/ cdhslave02:/opt/

2.5.7 上传 Parcel 文件

  • 仅在cdhmaster节点执行
mv manifest.json CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 /opt/cloudera/parcel-repo/
# 改名
cd /opt/cloudera/parcel-repo/
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha

2.5.8 启动Cloudera Manager 服务

  • 仅在cdhmaster节点执行
#添加认证
echo "com.cloudera.cmf.db.useSSL=true" >> /opt/cm/etc/cloudera-scm-server/db.properties
# 创建cloudera-scm-server服务启动目录
mkdir /var/lib/cloudera-scm-server
# 启动
/opt/cm/etc/init.d/cloudera-scm-server start
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口(时间会比较长)
netstat -anpt | grep 7180
  • slave节点启动cloudera-scm-agent
  • 在slave节点执行
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口
netstat -anpt | grep -E '19001|9000'

2.6 安装配置CDH群集

2.6.1 使用 CDH 管理控制台

打开浏览器,并在地址栏输入“http://172.16.10.10:7180”,将登录 Cloudera Manager的 Web 管理控制台,默认的用户名和密码分别是 admin 和 admin





  • 到这先不要点继续,回到虚拟机中,执行以下操作:
  • 在slave节点执行
# 解压mysql-connector
tar zxf mysql-connector-java-5.1.46.tar.gz
  • 在所有节点执行
cd mysql-connector-java-5.1.46/
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /var/lib/oozie/mysql-connector-java.jar
# 查看是否复制成功
ll /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
ll /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
ll /var/lib/oozie/mysql-connector-java.jar
  • 然后回到浏览器点击 继续

2.6.2 群集设置

  • 选择自定义服务,选择HDFS/Hive/Oozie/YARN
  • 选择之前已经创建的数据库,输入用户和密码,并测试数据库连接,hive


  • 安装完成后需要回到master节点安装kafka

2.6.3 配置并添加 Kafka 服务

  • 上传 Kafka 介质

  • 在master节点执行

mv KAFKA-1.2.0.jar /opt/cloudera/csd
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel /opt/cloudera/parcel-repo
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha1 /opt/cloudera/parcel-repo/KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha
  • 分配、激活 Parcel




  • 先添加zookeeper服务,在添加ksfka服务



  • 添加kafka服务






大数据之CDH(web页面部署Hadoop)相关推荐

  1. 大数据基石-Hadoop3.x学习教程-Hadoop产品了解与快速上手

    大数据基石-Hadoop Hadoop3.x版本全系列教程 === 楼兰 === 文章目录 一.关于Hadoop 1.关于Hadoop产品 2.Hadoop课程内容 3.Hadoop的主要组件 二.H ...

  2. 大数据生态系统 修仙之道 Hadoop Blog

    大数据生态系统 修仙之道 Hadoop Blog @(2019-01-22)[Docs Language:简体中文 & English|Programing Language:Hadoop|W ...

  3. GitChat·大数据 | 史上最详细的Hadoop环境搭建

    GitChat 作者:鸣宇淳 原文: 史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末彩蛋] 前言 Hadoop在大数据技术体系中的地位至关重要 ...

  4. 时空大数据实践之GeoWave安装部署实践

    2019独角兽企业重金招聘Python工程师标准>>> 时空大数据实践之GeoWave安装部署实践 GeoWave是由国家地理空间情报局(NGA)与RadiantBlue和Booz ...

  5. 学习大数据的第46天(Hadoop篇)——Hadoop框架的认识以及基础命令的认识

    学习大数据的第46天(Hadoop篇)--Hadoop框架的认识以及基础命令的认识 Hadoop的学习笔记 大数据的特点: 大量.高速.多样化 概述: Hadoop是一个适合海量数据的分布式存储和分布 ...

  6. 大数据学习笔记第1课 Hadoop基础理论与集群搭建

    大数据学习笔记第1课 Hadoop基础理论与集群搭建 一.环境准备 二.下载JDK 三.安装JDK 四.下载hadoop 五.安装hadoop集群 六.打通3台服务器的免密登录 七.hadoop集群配 ...

  7. 大数据目标检测推理管道部署

    大数据目标检测推理管道部署 本文提供了一个用于对象检测的深度学习推理的概述. 自主车辆软件开发需要大规模的数据.计算和算法创新,这些都是gpu实现的.一组神经网络构成了感知和决策系统的基础.神经网络的 ...

  8. 【JavaScript】实现将从Excel中复制的数据粘贴到WEB页面Grid中

    WEB项目中,我们有时会碰到这样的情况,需要将从Excel中复制的数据粘贴到WEB页面Grid中(当然复制的数据格式与Grid中数据显示格式是一致的),用JS实现起来并不难,重要的是如何准确得到从Ex ...

  9. 大数据平台CDH搭建

    一.概述 Cloudera版本(Cloudera's Distribution Including Apache Hadoop,简称"CDH"),基于Web的用户界面,支持大多数H ...

  10. 大数据之cdh集群安装

    安装前的准备工作 配置主机名.hosts.开启PermitRootLogin.设置密码 .做免密 .java环境变量.时间同步 安装过程概述(Ubuntu18.04安装) (centos7离线安装参考 ...

最新文章

  1. CSS中关于清除浮动的问题
  2. 如何配置和部署安全的.NET三层应用
  3. 使用java导入某个msn帐号的好友列表并发送消息
  4. 中间件中渲染Razor视图
  5. MongoDB的快速手动安装
  6. Student学生管理系统
  7. js处理16进制hex转str出现的中文乱码问题
  8. python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统
  9. 2.写给设计师看的HTMLCSS入门指导
  10. Remix恢复已部署的合约
  11. Atitit 命令行返回 cli 返回解析 tab分割csv格式 v4 t34.docx Atitit 命令行返回 cli 返回解析 csv 格式 cliutil 目录 1.1. 线使用tab
  12. element ui 表格拆分表格_python拆分表格数据
  13. hl7 java_HL7 2.X解析(JAVA版)
  14. 矩阵的舒尔补(Schur complement)
  15. 大整数除一相对较小的数
  16. 年月日、年积日、简化儒略日、GPS周之间相互转换(C++)
  17. 机器学习中 熵的理解
  18. PS实例之制作晶莹剔透气泡
  19. 《在难搞的日子笑出声来》
  20. win10 计算机管理器没有ime,win10电脑任务栏输入法初选ime禁用的解决方法

热门文章

  1. 什么是IPv6,IPv6有什么优势
  2. 接口(interface、implement)
  3. umts是移动还是联通_WCDMA/GSM是什么意思 是电信移动还是联通
  4. 宝妈群体又一次遭受职场歧视?公司要求怀孕即离职?或许抖音小店是突破口
  5. 中央财经大学研究生入学考试 901C语言程序设计
  6. 5G NR 随机接入 总结
  7. 基于AD7705的32路AD采集
  8. 本科计算机er发篇论文,其实没有那么难
  9. redis创建集群,redis-trib.rb命令详解
  10. 英文PDF怎么翻译成中文?两分钟让你学会翻译PDF