• cdh集群搭建(6.3)


    如果你的虚拟机给的内存少于14G,不用往下看了,机器压力非常大,建议先装内存条。

    我们做大数据的,机器就是要大硬盘,大内存,高核cpu,其他无所谓,如果要做机器学习,那你显卡还得很好。

    cdh的好处,一键启动和关闭组件,可以拓展各种组件,可以直接查看某个组件的日志,以及监控状态。核心就是不需要你在去用命令启动,和关闭。最好的,我觉得是,比如你hbase出了问题,要去维护,你不需要手动先去关闭hdfs、hive等,你只用点一下关闭hdfs的按钮,他会自动帮你先去关闭哪些依赖的组件,如果你点的是关闭hbase集群,你不需要一台一台点,也不用自己写脚本,他也会帮你挨着关闭。启动也是一样。

    目录

    如果你的虚拟机给的内存少于14G,不用往下看了,机器压力非常大,建议先装内存条。

    我们做大数据的,机器就是要大硬盘,大内存,高核cpu,其他无所谓,如果要做机器学习,那你显卡还得很好。

    前言

    配置与安装要求

    硬件要求:

    虚拟机配置:

    资源准备:

    cm资源准备:

    cdh资源准备:

    mysql资源准备:

    虚拟机搭建以及修改网卡(其中的centos7):

    集群基础环境搭建

    安装步骤介绍

    正式开始安装

    免密登录

    关闭selinux和swap(所有节点)

    httpd安装与yum.repo配置(含cdh服务安装)

    上传资源

    分发脚本的修改

    将tools中的

    sh /ssync /software/

    关闭防火墙(所有节点)

    http服务搭建

    cdh本地存储库建立与cm安装

    建立cm库

    建立cdh库

    创建cloudera-repo本地仓库位置

    本地yum源配置

    安装jdk

    安装jdk(所有节点)

    配置环境变量

    分发

    更新环境变量,并验证(所有节点)

    安装Cloudera Manager

    Mysql配置

    mysql跳过ssl验证

    ​编辑

     创建cdh集群所需要的库

    几个需要干的事

    执行scm数据库建立脚本

    脚本是否执行成功校验

    hostname、network、host同步

    cdh组件集群

    cdh基本环境配置

    启动cdh

    ​编辑进入页面192.168.30.101:7180

     选择社区版本

    选择机器

    存储库设定

    选择自定义存储库

    Parcel包选择

     继续安装,输入密码,他自动通过多线程安装

    检查主机

    第一个问题(每台机器)

    第二个问题(每台机器)

    Parcel集群组件服务选择

    数据库设置

    hive元数据配置、hue、ooize

    点击测试连接

     hdfs配置,选择默认

     目录记录

    继续

    等他安装

    进行排错

    zk问题

    节点问题

    hdfs问题

    cloudera Service 

    问题汇总

    httpd问题

    httpd访问界面Testing123

    cdh安装问题

    执行 sudo yum -y install cloudera-manager-daemons cloudera-manager-server出现拒绝连接

    没有可用软件包 cloudera-manager-daemons。没有可用软件包 cloudera-manager-agent。错误:无须任何处理

    cdh scm_prepare_database.sh脚本执行后没有反应,mysql的scm库中没有相关表

    cdh执行/opt/cloudera/cm/schema/scm_prepare_database.sh出现错误

    cdh界面,勾选集群,当前受管

     Cdh中Parcel存储库界面,遭遇页面不能点击继续

     遇到install时,一个节点卡死,很慢,一直等着激活


    前言

    时隔2年,重新复习一遍

    6.3是社区的免费版,再往后是收费版

    文档老了,花了2天,解决完所有bug,先来一张图

    又花了1天,把集群内部东西全部修复

    我打算全部删除,重新来一次,文档要修改的非常细,这样我以后就可以3小时内搭完。


    配置与安装要求

    硬件要求:

    官方建议,主节点内存32GB,2核心以上,从节点16GB,2核以上

    虚拟机化测试,官方建议,社区版,最低要求每台8G,企业版最低要求,10G

    经过测试,发现只有主节点要求高,从节点不需要太高

    本人硬件:32GB内存,16核cpu的笔记本电脑。

    虚拟机配置:

    节点名称硬盘内存
    hadoop1150G12G
    hadoop250G6G
    hadoop350G6G

    主节点内存要大于12G,(如果是三台机器的话,那么主节点的压力很大,建议内存是从节点的两倍)

    从节点,我使用后发现,给的8G完全够了,所以这次给6G

    hive安装的话,官方建议最低核数为4,所以建议主节点给4核,其他2核

    cdh建议,datanode至少3个,主节点1个,从节点2个。如果datanode也放在主节点上,那么内存就不够了,就会全部预警。实际开发中,至少4台,但是我们内存有限就3台虚拟机,所以datanode还是只给2个

    资源准备:

     下载地址:  Index of /test/cdh6

    由于cdh在线安装会由于网络原因失败,自己建立本地httpd,进行安装。所以需要下载所有相关的资源。

    cm资源准备:

    他是cdh管理平台的相关安装包

    cdh资源准备:

    他是cdh的parcel包,里面包含各种大数据组件的安装包(如hdfs、hive、zookeeper、hbase、spark...)

    什么hdfs,hive都在这个压缩文件里

    mysql资源准备:

    cm管理和监控 大数据组件,需要通过mysql进行监控,并且像hive(存储元数据)、hue这些组件需要依赖于外部mysql

    我选择的mysql是外部安装(没有什么压力的节点),没有装在cdh的节点,这样就可以防止当某台节点过大,挂了,导致mysql挂,而mysql又是其他节点的元数据,引起都挂的情况

     工具资源;

    自己写的同步文件脚本,mysql-connector-java-5.1.47.jar(cdh与mysql通信需要这个),指定版本jdk(cdh对jdk要求很严,sun公司的jdk几乎都不支持)

    虚拟机搭建以及修改网卡(其中的centos7):

    vmware虚拟机安装教程-边搭边写_我要用代码向我喜欢的女孩表白的博客-CSDN博客

    搭建3台,hadoop1(12g,150gb,4核),hadoop2(6g,50gb,2核),hadoop3(6g,50gb,2核)

    若为正式环境,按自己需求配置,cdh6建议不少于5台datanode

    集群基础环境搭建

    安装步骤介绍

    免密登录

    hdfs和其他通信是通过ssh,如果不配置,则每次心跳感应,需要你输入密码

    关闭selinux和swap

    关闭selinux(cdh官方等都建议关闭它,它的作用是限制资源访问,比如给你的impala限制了资源,由于impala用户权限低,查询就会很慢,失去了它的作用)

    关闭swap(避免交换内存,默认是开启,如果你内存不够,那么他就会先写到磁盘上,然后释放的时候,会将磁盘中的内存,加载了内存中,如果磁盘中的消耗的资源大于内存,结果就是宕机,关闭后,相当于是一种保护策略)

    httpd安装与yum.repo配置(含cdh服务安装)

    我通过本地yum,访问httpd源,进行安装,全部都是本地环境进行下载,所以快,cdh安装自定义源也是httpd,这一步也会对cdh进行安装,包含关闭防火墙,关闭后,所有端口都可以访问,就可以通过我的windows访问服务端的httpd,cdh页面,服务端也能访问mysql

    hostname、network、host同步

    不配置的话,在cdh页面安装时会出现agent心跳接收不到,而且hosts必须是faq写法(就是ip 域名 别名),如果域名和别名名字不一样,会出现警告

    mysql安装与scm脚本执行

    这步会提前创建好,各个大数据组件的mysql库,并且会执行scm脚本,检测方式是,如果成功,启动cm-server后,则会在scm库下出现各种cdh的日志监控表,这个成功了,才能通过7180接口,进入到cdh界面

    cdh启动

    启动cm-server还有cm-agent

    页面组件安装

    如果上面步骤都成功了,则可以进入可视化的网页进行部署了

    正式开始安装

    免密登录

    通过ssh生成密钥(所有节点)

    ssh-keygen

    遇到提示全部按enter

    发送密钥到其他节点

    在hadoop1(就是101)节点 执行,他问你问题,你就yes,过程中需要输入其他节点的密码

    ssh-copy-id 192.168.30.102

    ssh-copy-id 192.168.30.103

    这样从hadoop1通过ssh到hadoop2和hadoop3就不需要密码

    同样在hadoop2执行

    ssh-copy-id 192.168.30.101

    ssh-copy-id 192.168.30.103

    在hadoop3执行

    ssh-copy-id 192.168.30.101

    ssh-copy-id 192.168.30.102

    如果节点很多,建议写个脚本,最后单元测试下,看看是否能跳转成功,避免后续因为这个问题,找不到原因,力求,每步都是对的。

    关闭selinux和swap(所有节点)

    关闭selinux

    先临时关闭

    setenforce 0

    在永久关闭

    vi /etc/selinux/config

    修改SELINUX为disabled,并且注释掉之前的enforcing

    这里我用了同步脚本(ssync,作用就是将文件,复制到其他节点),由于里面都是相同内容,我才使用。使用同步脚本前,先看旁边的脚本说明

    关闭swap(所有节点)

    临时关闭

    swapoff -a

    永久关闭

    vi /etc/fstab

    注释掉swap这一行

    登录到其他节点,执行临时关闭,并注释掉这一行不能使用同步脚本,因为每个节点的uuid不同)

    httpd安装与yum.repo配置(含cdh服务安装)

    上传资源

    创建software目录

    mkdir /software

    将资源复制到这个目录下,由于编码问题,我复制过去,改成了英文

    cm6,cdh6,tools 分别对应 cm管理平台资源,cdh大数据组件资源,cdh工具资源

    分发脚本的修改

    将ssync复制到根目录

    1. cd /software/
    2. cp ssync /

    分发脚本步骤

    配置节点ip特殊说明

    vi /ssync

     将/software资源通过ssync发送到其他节点

    将tools中的

    sh /ssync /software/

    关闭防火墙(所有节点)

    1. #关闭防火墙
    2. systemctl stop firewalld.service
    3. #查看防火墙状态
    4. systemctl status firewalld.service
    5. #永久关闭防火墙(其实就是关闭后,设置开机不自动启动)
    6. systemctl disable firewalld.service

    windows本地防火墙也要关闭,集群要与本地mysql元数据通信(我是windows上的mysql作为集群元数据)

    http服务搭建

    安装httpd

    选择任意一台机器安装,我选择的101节点

    1. # 安装httpd,安装本地仓库和Cloudera Manager Server都依赖httpd
    2. sudo yum -y install httpd
    3. # 启动httpd
    4. sudo systemctl start httpd
    5. # 查看httpd状态
    6. service httpd status
    7. #开机自启
    8. sytemctl enable httpd

    修改httpd配置

    vi /etc/httpd/conf/httpd.conf

    修改Listen端口号,默认是80,改成9999,因为我80端口在使用。

    增加.parcel(这样cdh的包也能通过yml解析到)

     httpd的默认文件是/var/www/html

    配置完成,重启服务,更新

    sudo systemctl restart httpd

    通过浏览器访问,查看是否成功

    如果直接是httpd文件服务器页面,就ok,如果为Testing 123..(apache默认首页),请移步到最下方问题汇总进行解决

    cdh本地存储库建立与cm安装

    我们安装cdh都是离线安装,在线安装太慢,离线安装实际上也是模仿在线安装,只是把在线安装的httpd地址,改成了我们自己本地的httpd服务器。

    建立cm库

    httpd中的地址,我没有修改,所以文件必须放在/var/www/html默认目录下

    cloudera-manager的安装包是存放在cm6目录下的

    cdh大数据的相关组件是存放在cdh6目录下的

    创建文件夹cm6

    mkdir -p /var/www/html/cloudera-repos/cm6

    进入/software目录,我上传资源的目录

    --strip-components=1的意思是,直接解压内部的内容,到cm6的目录

    如果不加,则会在外面创建一个目录,解压到创建的目录中,这样cdh会读取不到

    -C 的意思是指定解压位置

    1. cd /software/cm6
    2. #解压cm压缩包,到httpd服务cm6文件夹
    3. tar -zxvf cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6/ --strip-components=1
    4. #修改权限
    5. sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6

    将此资源目录的2个文件也传过去

    allkeys.asc 文件密钥

    manifest.json 各兼容组件版本

    1. cp allkeys.asc /var/www/html/cloudera-repos/cm6/
    2. cp manifest.json /var/www/html/cloudera-repos/cm6/

    建立cdh库

    创建文件夹cdh6

    mkdir -p /var/www/html/cloudera-repos/cdh6

    进入cdh6资源目录

    1. cd /software/cdh6
    2. #将cdh资源目录的内容复制到httpd的cdh6目录中
    3. cp * /var/www/html/cloudera-repos/cdh6/
    4. #修改权限
    5. sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6

    记得将.sha1后缀文件改为.sha

    创建cloudera-repo本地仓库位置

    目录不要改变,cdh默认目录它,如果你要改变,还需要改cdh配置

    这个,在cdh的页面设置parcel源的时候,指定本地地址就是它

    1. sudo mkdir -p /opt/cloudera/parcel-repo
    2. #将cdh资源目录下的内容复制过去
    3. cd /software/cdh6
    4. #将cdh资源目录的内容复制到httpd的cdh6目录中
    5. cp * /opt/cloudera/parcel-repo

    记得修改 .sha1改为.sha

    本地yum源配置

    # 创建 /etc/yum.repos.d/cloudera-repo.repo 文件

    vi /etc/yum.repos.d/cloudera-repo.repo

    cloudera-repo.repo文件的内容如下, 是parcel仓库服务器的主机名或ip地址


    [cloudera-repo]
    name=cloudera-repo
    baseurl=http:///cloudera-repos/cm6/
    enabled=1
    gpgcheck=0
     

    安装jdk

    注意:版本不能随便使用,cdh不兼容sun公司jdk,对版本要求比较苛刻

    安装jdk(所有节点)

    进入/software/tools资源目录

    1. cd /software/tools
    2. #安装
    3. rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

    配置环境变量

    刚刚自动安装,目录在这  /usr/java/jdk1.8.0_181-cloudera

    vi /etc/profile

    里面在最后填写

    export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera

    export PATH=$PATH:$JAVA_HOME/bin

    分发

    sh /ssync /etc/profile

    更新环境变量,并验证(所有节点)

    1. source /etc/profile
    2. java -version

    安装Cloudera Manager

    安装守护进程、和server以及agent

    注意

    server是只有101,主节点安装

    agent是 所有节点,都安装

    1. # 在cmserver服务器上安装Cloudera Manager Server
    2. sudo yum -y install cloudera-manager-daemons cloudera-manager-server
    3. # 在所有需要cm server监控的服务器上安装Cloudera Manager agent,101,102,103
    4. sudo yum -y install cloudera-manager-daemons cloudera-manager-agent

    Mysql配置

    这里我已经在本地搭建过了mysql(传送门中的mysql是8.0,cdh6不支持8.0,只支持5.7,自己下载5.7的版本,安装步骤可以服用传送门中mysql,  mysql8.0搭建传送门

    这里只说与cdh相关的部分

    mysql跳过ssl验证

    ssl验证,如果是http请求会被警告,而我本地没有ssl证书,那就是http请求

    centos7中的是在conf中,而windows是在bin目录中自己建立的my.ini

     创建cdh集群所需要的库

    sql语句(其中scm是cm平台的核心)

    1. # 创建Cloudera组件所需的数据库
    2. CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    3. CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    4. CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    5. CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
    6. CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    7. CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    8. CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    9. CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    10. CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;


    几个需要干的事

    mysql外部时间与本机是同步(所有机器)

    由于是虚拟机,关机后时间就不走了。所以同步一下

    1. yum install ntpdate -y #安装
    2. ntpdate ntp1.aliyun.com #同步阿里云
    3. date #查看现在时间,看看是否改变

    设置对外授权,其他ip也能访问mysql,以及更新配置
     

    1. grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    2. flush privileges;

    cdh要能读到mysql连接的jar包
     

    创建目录(cdh读取mysql连接的目录,不能随便改变)

    mkdir /usr/share/java

    从tools资源包中,复制mysql到这个目录中

    1. cd /software/tools
    2. cp mysql-connector-java-5.1.47.jar /usr/share/java/

    改名

    mv /usr/share/java/mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

    分发到其他节点

    sh /ssync /usr/share/java/mysql-connector-java.jar

    执行scm数据库建立脚本

    主节点执行

    mysql第一个参数是代表数据类型,元数据库用哪种库

    scm是第二个参数,代表哪个库

    root是第三个参数,代表哪个用户

    -h代表是否外部数据库,如果不写默认localhost,我的是外部数据库(没有压力的节点),因为如果是放在一台中,这个节点挂了,那么他的mysql也挂,其他的服务都依赖mysql,所以都会挂。

    更多详情,请查看官方文档,以及sh脚本内部

    sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root -h 192.168.30.101

    输入root的密码,执行完毕

    脚本是否执行成功校验

     打开mysql查看scm表是否有数据

    没有数据

     启动scm-server

    sudo systemctl status cloudera-scm-server


    查看,发现数据刷新成功,脚本只是写入,通过systemctl,才会真正把数据写到mysql

    hostname、network、host同步

    cm的server和agent是通过读取host进行识别和心跳的,如果hostname和network不同步的话,会导致cdh页面安装,agent心跳感知不到

    官方的hosts配置的主机名必须是fqdn(ip 域名 主机名)必须写满

    这里域名要和主机名保持一致,不然会报警告

    (正常情况下主机名就是域名,为了方便这里我都写主机名),

    并且hostname是唯一(节点之间不能重复)

    修改hosts(每台节点)

    vi /etc/hosts

    加入ip 节点域名 节点名称

     修改hostname(所有节点-不同节点,名称不同,如果192.168.30.101节点就是hadoop1)

    hostnamectl set-hostname hadoop1

    cdh组件集群

    cdh基本环境配置

    启动cdh

    主节点启动,server和agent

    1. service cloudera-scm-server start
    2. service cloudera-scm-agent start

    其他节点全部启动agent

    service cloudera-scm-agent start

    进入页面192.168.30.101:7180

    初始账号、密码都是admin


     选择社区版本

     集群名称

    选择机器

    【1-3】代表搜索1-3

     点击继续

    存储库设定

    选择自定义存储库

    和我们之前搭好的httpd对应

     地址与httpd对应

    Parcel包选择

     CDH and other software 选择使用 Parcel包

    更多选项里,删除所有远程parcel存储库的URL(下载不下来的,因为官方很慢)

    选择我们对应的httpd地址,复制到下面的URL中(橙色部分)

     配置成功没有问题的话,CDH版本下面会出现

     继续安装,输入密码,他自动通过多线程安装

    我这里密码一样,方便使用

    上面步骤如果没有错误,就会像我一样,安装过程不会遇到问题

     之后他会自动进行下一步安装,此时你应该能听到,散热器发出的声音

    检查主机

    跟着他的点就行了(把页面的检查网络性能检查主机都点),我这是点击了,网页翻译后

    遇到警告

    显示检查器结果

    第一个问题(每台机器)

    按照他说的改,首先设置为小于10

    每台机器执行(临时的)

    sudo sysctl vm.swappiness=10

    然后永久修改(每台机器)

    echo 'vm.swappiness=10'>> /etc/sysctl.conf

    第二个问题(每台机器)

    按照他说的命令复制

    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    重新运行检测

    Parcel集群组件服务选择

    先给大家看看,我的内存负荷

     好,我们继续按照

    我选择了spark,hive,zookeeper,hue(数据工程),当然后面你也可以自己加

     我选择了datanode(所有节点,但是很丑,默认是3个节点,但是cdh你给3台主机,他只给你2个节点,真正的cdh是4台)

     主服务器负荷太多,因为,没有内存,做真cdh4台了

    点继续

    数据库设置

    hive元数据配置、hue、ooize

    这里选择使用jdbc

    填写账号密码,连接地

    jdbc:mysql://192.168.30.2:3306/metastore?useSSL=false&useUnicode=true&&characterEncoding=utf-8

    库要对应

    注意,hive的库是metastore

    红色的地方是容易写错的点

    点击测试连接

     hdfs配置,选择默认

     

     目录记录

     这个地方最好保留下来,方便你下次找不到,文件看日志的时候,可以看这个

    (邮件告警我没有做,正常应该写一个脚本告警,然后脚本给某人发邮件),我下次写一个py脚本,然后放上去,给某人发邮件。以前写爬虫的时候做过。

    datanode 目录 /dfs/dn

    namenode 数据目录 /dfs/nn

    hdfs检查点目录 /dfs/snn

    hive仓库位置 /user/hive/warehouse

    hive元数据端口 9083

    hostMonitor目录 /var/lib/cloudera-host-monitor

    serviceMonitor存储目录 /var/lib/cloudera-service-monitor

    ooize 目录 /user/oozie

    ooize 服务目录 /var/lib/oozie/data

    nodeMnager(yarn) 目录 /yarn/nm

    zk数据目录 /var/lib/zookeeper

    zk事务目录 /var/lib/zookeeper

    继续

    等他安装

    此时,如果你内存太小,会安装失败,此时,你将再次听到,散热器的声音

     

    完成

    进行排错

     有的时候有很多红色,需要解决。

    这次,我没有做宕机实验,上次直接关闭了虚拟机,模仿宕机,所以再次出现就有了很多红色,只有一些黄色需要解决,我挂起一下虚拟机,下次从这里进行排错

    挂起虚拟机后,需要时间同步

    1. # 安装NTP
    2. yum -y install ntp
    3. # 添加NTP远程时间同步服务器,通常安装后会自动配置,没有的话在自行添加
    4. # vim /etc/ntp.conf
    5. # 启动NTP
    6. sudo systemctl start ntpd
    7. # 设置NTP服务开机自动重启
    8. sudo systemctl enable ntpd
    9. # 同步节点的时间
    10. # 命令格式(ntp_server为/etc/ntp.conf 配置文件中的NTP服务器地址):ntpdate -u
    11. ntpdate -u 0.centos.pool.ntp.org
    12. # 同步系统时钟
    13. hwclock --systohc

    zk问题

     zk至少要3台,我只给了1台,所以报这个警告,添加多个zk就好

     解决

    节点问题

     他说分配有问题,这个直接点, Memory Overcommit Validation Threshold 

    设置成0.9就行

    hdfs问题

    点进去是这样 

     这个没有办法,CDH6对hdfs备份采取了更加强大的模式,有好几种,但是对节点要求最小的模式,也至少要5台,所以这个警告,我们无视,CDH5没有这种功能,所以不会警告

    另一个警告

    他说namenode至少要1G,所以我们改成1024 兆字节就好

    cloudera Service 

    点进去改就行

    内存够,就没有问题,但是内存不够,所以这些报警就忽略。

    其中4个报警,3个是因为内存达到阈值,超过百分之90的配置就会警告(默认是百分之80)

    还有1个是,hdfs的节点要求,至少5台,才能用这个默认模式的高效存储。

    至此,结束 

    问题汇总

    httpd问题

    httpd访问界面Testing123

    这是apache 的默认界面,能访问代表你配置成功,但是他的页面覆盖了你的文件系统,需要删除默认界面,再进行重启

    vi /etc/httpd/conf.d/welcome.conf

    将其内容全部注释掉

    重启http

    systemctl restart httpd

    成功


    cdh安装问题

    执行 sudo yum -y install cloudera-manager-daemons cloudera-manager-server
    出现拒绝连接

     httpd的默认接口不要修改,yum,读取本地默认为80端口。

    有2个解决方法:

    1)修改httpd为80,这我肯定是不会去修改的,为什么我也说过

    2) 修改cdh的yum.repo,让他指向你指定的端口

    我采用的第二种方法

    vi /etc/yum.repos.d/cloudera-repo.repo

    加上端口号

     重新执行

    sudo yum -y install cloudera-manager-daemons cloudera-manager-server

    安装成功


    没有可用软件包 cloudera-manager-daemons。
    没有可用软件包 cloudera-manager-agent。
    错误:无须任何处理

     原因是因为,你的yum里面没有配置,我是从节点,没有把主节点的clouder.repo复制过来,所以在从节点执行yum,他在自己的yum仓库中没有找到,所以会出现这个错误。

     解决方式,将你配置了cloudera.repo的yum文件复制到,其他节点的yum仓库中

    sh /ssync /etc/yum.repos.d/cloudera-repo.repo

    再次执行,安装agent命令

    sudo yum -y install cloudera-manager-daemons cloudera-manager-agent

    正常安装

    cdh scm_prepare_database.sh脚本执行后没有反应,mysql的scm库中没有相关表

     sudo /opt/cloudera/cm/schema/scm_prepare_database.sh

    满足这几个就没有问题

    首先mysql要能被连接,

    关闭防火墙,

    设置让任何用户ip都能通过密码访问,记得要刷新

    本机与mysql节点时间要相同,

    cdh要能读到mysql连接的jar包

    最后显示脚本成功后,一定要重新启动cm-server,他是启动时,将sh中命令,执行表到数据库中。

    cdh执行/opt/cloudera/cm/schema/scm_prepare_database.sh出现错误

    DbCommandExecutor              ERROR Error when connecting to database.
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection 

     原因是,我没有建立scm库

    sql执行

    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

    之后在执行还是错误,因为我连接的是-h 192.168.30.101

    我忘记了我是外部数据库,外部数据库的节点是192.168.30.2(自己设置的vm8的网络适配器的ip,这样就算我换wifi,服务端照样可以访问)

    改为-h 192.168.30.2

    cdh界面,勾选集群,当前受管

    进入集群->点击cloudera Manager删除机器

     删除

    勾选后,点击已选择的操作(千万不要点成了,从群集中删除,因为你没有集群,你要从cloudera中删除)

    Remove From cloudera Manager 

    然后点击添加集群,就好了

     Cdh中Parcel存储库界面,遭遇页面不能点击继续

    1)由于修改了存储库的parcel(更多选项),他没有反应过来 ,点击返回上一级,在返回上一级,然后重新继续,就能加载出来了

    2)是检查,httpd上的,后缀为sha的文件,必须把.sha1改成sha。

    cd /var/www/html/cloudera-repos/cdh6

    mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

    3)是检查 /opt/cloudera/parcel-repo 是否.sha1没有改成sha

    cd /opt/cloudera/parcel-repo

    mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

    最后重启cm-server,cm-agent

    /var/www/html/xxxx中的sha1改为sha

     /opt/cloudera/parcel-repo中的sha1修改为sha

     弄完重启

    节点

    service cloudera-scm-server restart

    service cloudera-scm-agent restart

    再次进入,出现了

     遇到install时,一个节点卡死,很慢,一直等着激活

    已分配是0 

    查看top,以为是内存问题,结果发现并不是,于是查看agent状态

    service cloudera-scm-agent status 

    发现和其他成功节点不一样,他有错误

    /opt/cloudera/cm-agent/lib/python2.7/site-packages/psutil/_pslinux.py:477: RuntimeWarning: dirty, writeback, mapped, commit_limit memor...ere set to 0
    运行警告,内存不能设置为0

    查看日志

      File "/opt/cloudera/cm-agent/lib/python2.7/site-packages/flood/util/rpc.py", line 33, in resolveHostPort
        return HostPort(socket.gethostbyname(w[0]), port)
    gaierror: [Errno -2] Name or service not known
    看到name我就想到了host

    修改/etc/hosts(我之前把他注释掉了)

    终于从0B开始走了

     成功


  • 相关阅读:
    yolov5的trick总结
    在定义指针的时候,写成「int* p;」和「int *p;」哪个更好?
    最护眼的灯是白炽灯吗?专业的护眼台灯推荐
    Python数据结构与算法10
    对于xshell连接不上虚拟机的一些解答
    Scala Important Tips For Newbie => Scala入门小纸条(1)
    聊聊“JVM 调优&JVM 性能优化”是怎么个事?
    跨境电商的推广方式有哪些
    全网最全fiddler使用教程和fiddler如何抓包
    YYDS!由浅入深学习阿里JDK源码,已在阿里内部疯拿3个金奖
  • 原文地址:https://blog.csdn.net/qq_38403590/article/details/125847502