CDH安装及使用CM安装集成livy和zepplin

CDH安装及使用CM安装集成livy和zepplin,第1张

CDH安装及使用CM安装集成livy和zepplin 首先转载几位大佬的几篇文章;

CDH6.2.0搭建 https://blog.csdn.net/weixin_38201936/article/details/106006335
CDH6.2.0搭建(2)https://blog.csdn.net/weixin_38201936/article/details/106140498

CDH使用CM安装整合livy和zepplin(已攻略)
https://blog.csdn.net/qq_36428889/article/details/119778919?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242.2

制作Zeppelin的Parcel包和csd文件
https://blog.csdn.net/weixin_43215250/article/details/90406232
Cloudera Manager中安装部署Livy服务
https://blog.csdn.net/weixin_43215250/article/details/89157348
Cloudera Manager中安装部署Zeppelin服务
https://blog.csdn.net/weixin_43215250/article/details/90406780?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-17.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-17.essearch_pc_relevant

跟着大佬搞一遍基本没什问题!
但是CDH今年开始收费了 所以版本与大佬们有些不同这里简单记录下 搭建过程

一、安装概述 (一)软件环境

1.软件配置清单

(二)、配置规划


建议各位配置搞的大一点 我这和闹着玩一样

二、基本环境安装

提前声明:整个安装过程使用root用户

(一)、基本环境 1.修改主机名(所有节点)

#按照规划依次修改,修改完成记得重启服务器
vi /etc/hostname

(二)配置主机映射(所有节点)

vi /etc/hosts

192.168.100.10 cdh01
192.168.100.20 cdh02
192.168.100.30 cdh03
192.168.100.40 cdh04

(三)关闭防火墙和安全子系统(所有节点)

关闭防火墙

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

关闭安全子系统

vi /etc/selinux/configSELINUX=disabled

(四)配置ssh免密钥登陆(所有节点)

生成公钥私钥并进入到./ssh目录查看
ssh-keygen -t rsa
cd .ssh
将公钥分别传输到另外几台集群服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh01
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh02
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh03
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh04
测试ssh免密是否成功
ssh cdh02

如果不成功,怎么办:
删除用户主目录下的.ssh目录,重新搞一遍,这时候就可以找百度问问了

rm -r /root/.ssh

(五)修改linxu内核参数(所有节点)

设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将swappiness 设置为 10:

查看swappiness
cat /proc/sys/vm/swappiness
永久性修改,执行下面两条命令
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf

(六)安装jdk(所有节点)

注意:JDK必须安装在/usr/java目录
这波因为装在了/usr/local目录下 启动spark2时报错 找不到java路径 后来加了软连接 本文配置暂未更改
软连接方式:

ln -s /usr/local/jdk1.8.0_171 /usr/java/default

1.查询java相关的安装包
rpm -qa | grep java
2.卸载查询出来的所有的包
rpm -e --nodeps xxx
3.解压
tar -zxf jdk-8u171-linux-x64.tar.gz
4.配置环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

5.source生效并测试
source /etc/profile
java -version

(七)配置NTP时间同步服务

基本原理:将cdh01节点作为整套集群的时间同步服务器,其他的节点都向cdh01节点同步时间,这样即使cdh01节点不是标准的互联网时间,但是其他节点也只能向cdh01节点同步时间,并以其为统一的集群时间

1.所有节点安装ntp服务

yum -y install ntp

2.在cdh01节点

vi /etc/ntp.conf
增加,限制只允许192.168.100.10,也就是集群中其他节点向cdh01节点同步时间
restrict 192.168.100.0 mask 255.255.255.0
增加 设置cdh01节点为集群的时间同步服务器
server 127.127.1.0
同时将以下四行进行注释掉,不主动同以下时间服务器同步时间
#server 0.centos.pool.nep.org iburst
#server 1.centos.pool.nep.org iburst
#server 2.centos.pool.nep.org iburst
#server 3.centos.pool.nep.org iburst

3.在cdh02-cdh04节点

vi /etc/ntp.conf
增加,限制只允许192.168.100.10,也就是集群中其他节点向cdh01节点同步时间
server 192.168.100.10
同时将以下四行进行注释掉,不主动同以下时间服务器同步时间
#server 0.centos.pool.nep.org iburst
#server 1.centos.pool.nep.org iburst
#server 2.centos.pool.nep.org iburst
#server 3.centos.pool.nep.org iburst

4.所有节点(cdh01-cdh05)

先与网络服务器同步时间

ntpdate ntp1.aliyun.com

启动ntp服务,并设置其为开机启动

systemctl start ntpd.servicesystemctl enable ntpd.service

5.测试其它节点能否向cdh01同步时间

ntpdate -u cdh01


6.为了进一步保证,也可以编写定时任务来每10分钟同步一次

crontab -e

*/10 * * * * /usr/sbin/ntpdate -u cdh01

(八) 安装依赖(所有节点)

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb mod_ssl unzip

三、mysql安装 (一) 下载

weget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

(二)解压

tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

(三)卸载自带的mysql和mariadb

rpm -qa | grep mysql // 这个命令就会查看该 *** 作系统上是否已经安装了mysql数据库
yum -y remove mysql //使用命令卸载

(四)依次安装各个rpm的mysql组件包
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm  --nodeps --force

rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm  --nodeps --force

rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm --nodeps --force
(五)启动服务

systemctl start mysqld

(六)查询初始密码

cat /var/log/mysqld.log | grep passw


如果无法找到密码,请按照以下步骤:

vi /etc/my.cnf
在如下位置添加一项配置
Disabling symbolic-links is recommended to prevent assorted security risks
添加skip-grant-tables这句话,这时候登入mysql就不需要密码
skip-grant-tables
( 知识拓展 :如果想要左边有行号 输入 :set nu 就可以显示 )


重启mysql服务

systemctl restart mysqld

无密码登录

mysql

(七)登陆,修改密码安全策略,授权远程登陆
mysql -u root -p

# 修改密码安全策略

set global validate_password_policy=0;

#修改密码长度限制

set global validate_password_length=1;

#设置密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

#授权外部主机访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

#刷新授权

FLUSH PRIVILEGES;

# 测试能否进行外部访问,在window的连接工具中,或者其他节点的命令行终端

mysql -h cdh01 -u root -p

四、cloudera manager Server & Agent安装 (一) 在所有节点上创建 /opt/cloudera-manager

mkdir /opt/cloudera-manager

(二) 将cm的tar安装包上传到每个节点的/opt/cloudera-manager目录下,并解压

tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz

(三)在所有节点上创建cloudera-scm伪(系统)用户

useradd --system --home=/opt/cloudera-manager/cm5.16.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm

(四)配置cm-agent(所有节点)/opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent/config.ini

vi config.ini
server_host=192.168.100.10

(五)配置CM数据库拷贝mysql-connector-java.jar到/usr/share/java/目录下,注意jdbc驱动包的名称必须是mysql-connector-java.jar

1. 在所有节点上,如果没有/usr/share/java目录,请先自己 创建

cp mysql-connector-java-5.1.43.jar /usr/share/java/mysql-connector-java.jar

2. 在主节点上

cp mysql-connector-java-5.1.43.jar /opt/cloudera-manager/cm-5.16.2/share/cmf/lib/

(六) 配置cm数据库进入到/opt/cloudera-manager/cm-5.16.2/share/cmf/schema,执行mysql的建库建表语句

./scm_prepare_database.sh mysql -h cdh01 -uroot –p123456 --scm-host cdh01 scm scm scm

格式: 数据库类型、 数据库名称、 数据库服务器地址、 用户名 、密码 、server主机名 、数据库、授权访问scm的用户名和密码
注意:执行到这一步可能会报密码过于简单的一个错误可以将 scm的密码设置的复杂一点
例如:./scm_prepare_database.sh mysql -h cdh01 -uroot –p123456 --scm-host cdh01 scm scm Scm123…@

(七)创建后续部署hive,hue等组件所需的数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    

create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 


 --可以使用以下方式进行授权外部主机访问
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'*' IDENTIFIED BY 'hive' WITH GRANT OPTION;   

GRANT ALL PRIVILEGES ON amon.* TO 'amon'@'*' IDENTIFIED BY 'amon' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'*' IDENTIFIED BY 'hue' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON monitor.* TO 'monitor'@'*' IDENTIFIED BY 'monitor' WITH GRANT OPTION;   

GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'*' IDENTIFIED BY 'oozie' WITH GRANT OPTION;

注意:创建hue数据库的时候可能会报密码长度不够 虽然前面set global validate_password_length=1; 修改密码长度限制为1 但是会报一个最小长度为4的错误 可以增加密码长度
例如: GRANT ALL PRIVILEGES ON hue.* TO ‘hue’@’*’ IDENTIFIED BY ‘huee’ WITH GRANT OPTION;

(八) 制作parcels

在chd01节点上创建/opt/cloudera/parcel-repo目录

mkdir -p /opt/cloudera/parcel-repo

在agent(cdh01-cdh04)节点上创建/opt/cloudera/parcels目录

mkdir -p /opt/cloudera/parcels

上传以下文件到cdh01节点的/opt/cloudera/parcel-repo的目录下

CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel
CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1
manifest.json

注意:必须将CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1最后的1去掉,否则无法生效
更改 /opt/cloudera/parcel-repo(server)和/opt/cloudera/parcels(agent)目录的所属者与所属组为cloudera-scmagent

server(cdh01)

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/

agent(cdh01-cdh04)

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/

  1. 启动 CM Manager&Agent 服务
    注意:首次启动,耗时较长
    在server(cdh01)节点启动cloudera-scm-server
 cd /opt/cloudera-manager/cm-5.16.2/etc/init.d 

 ./cloudera-scm-server start

在agent(cdh02-cdh05)节点启动cloudera-scm-agent

 cd /opt/cloudera-manager/cm-5.16.2/etc/init.d
 
 ./cloudera-scm-agent start

启动成功后,打开web浏览器访问http://cdh01:7180
用户名和密码均为 admin

五、安装服务

进入页面安装服务这里就不截图了 可以参考大佬的安装步骤 添加服务不建议直接安装全部服务 启动一堆红看脑阔疼
这里介绍一下spark2 和 livy,zeppelin 的安装过程(zeppelin需要livy才能启动)

(一)上传CSD包到CM主节点(cdh01)的/opt/cloudera/csd目录

1.如果没有/opt/cloudera/csd手动创建

mkdir /opt/cloudera/csd

2.上传csd包到/opt/cloudera/csd/并修改所属用户为

cloudera-scmchown -R cloudera-scm:cloudera-scm /opt/cloudera/csd/

(二) 上传parcel的3个包到CM主节点(cdh01)的/opt/cloudera/parcel-repo目录下

(三) 重启CM和集群
cm-server节点

/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server restart

cm-agent节点

/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent restart
(四)部署Spark2.4

1.检查或者配置jdk(从一开始就是符合要求的jdk1.8,因此这一步可以不做,建议搞一下)


点击 分配 激活 我这里已经激活了


选择与其他框架的集成依赖



六、制作Zeppelin的Parcel包和csd文件 (一)安装git、java、mave配置java,maven等环境变量

git安装

yum install -y git

mave安装
上传安装包 mv改个名

配置环境变量

vi /etc/profile

export MVN_HOME=/usr/local/maven
export PATH=$MVN_HOME/bin:$PATH

(二)下载livy,zeppelin所需要的资源包

需要从livy、zepplin官网上下载我们安装的软件包:livy-0.5.0-incubating-bin.zip和zeppelin-0.8.2-bin-all.tgz。(建议版本别整太高)
链接:livy官网下载地址
zeppelin官网下载地址

去github:livy_zeppelin_cdh_csd_parcels上去下载它的zip文件

继续下载一个项目:git clone https://github.com/cloudera/cm_ext.git。把文件包扔到livy_zeppelin_cdh_csd_parcels目录中去

我们需要编辑下build.sh

由于之前我们已经下载了livy-0.5.0-incubating-bin.zip和zeppelin-0.8.2-bin-all.tgz,直接放到livy_zeppelin_cdh_csd_parcels目录下。cm_ext也放下,这样脚本里的下载就不会执行了,节约时间。

(三)生成livy和zeppelin的parcel包和csd文件
#首先先给个权限
chmod 755 build.sh

sh build.sh parcel
sh build.sh csd

此时还缺少:LIVY-0.5.0-el7.parcel.sha,ZEPPELIN-0.8.2-el7.parcel.sha

可以用如下命令在LIVY-0.5.0_build目录下执行

sha1sum ./LIVY-0.5.0-el7.parcel |awk '{print $1}' > ./LIVY-0.5.0-el7.parcel.sha

在ZEPPELIN-0.8.2_build目录下执行

sha1sum ./ZEPPELIN-0.8.2-el7.parcel |awk '{print $1}' > ./ZEPPELIN-0.8.2-el7.parcel.sha

(四)生成包所遇到的问题!!!

1.maven问题

[ERROR] Plugin org.apache.maven.plugins:maven-jar-plugin:2.3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.3.1: Could not transfer artifact org.apache.maven.plugins:maven-jar-plugin:pom:2.3.1 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Connection refused -> [Help 1]

解决方法: 配置阿里云加速地址 修改maven安装目录下的conf/setting.xml文件,将中央仓库地址阿里云镜像地址

 
  alimaven
  aliyun maven
  http://maven.aliyun.com/nexus/content/groups/public/
  central       

2.maven打包测试报错

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project cloudera-manager-schema: There are test failures.

解决办法:进入cm_ext目录下,运行下面打包命令 跳过测试环节

mvn clean package -Dmaven.test.skip=true

(五)部署parcel和csd

找到安装cm的目录/opt/cloudera/
把parcel、parcel.sha 文件cp到/opt/cloudera/parcel-repo目录下
把jar、manifest.json 文件cp到/opt/cloudera/csd目录下,上述两个文件manifest.json可以合成一个,自己编辑下,放parcels这个数组里就好。(这个manifest.json这个文件不放在csd文件下 貌似也能正常分配 激活)

(六)部署Livy遇到的问题;

问题1:parcel已经分配,激活但是在添加服务的时候没有出现livy。 可以看一下cm-server重启的时候日志,如果有这个错

Could not install csd [LIVY-0.5.0]. Skipping java.lang.IllegalArgumentException: Could not read source file [aux/client/livy-env.sh]

解决方法:LIVY-0.5.0.jar包里的文件aux找不到了,livy_csd_build 里面是 _aux ,需要把livy_csd_build 里的_aux目录重命名改成aux目录重新打LIVY-0.5.0.jar包

jar -cvf LIVY-0.5.0.jar -C LIVY-0.5.0_build/ .

问题2.添加livy时报错

Error found before invoking supervisord: ‘getpwnam():name not found livy’

解决办法:在Livy REST Server所在服务器上增加livy用户及用户组 顺便把zeppelin的用户及用户组也搞上

groupadd -r zeppelin
useradd -r -g zeppelin zeppelin
groupadd -r livy
useradd -r -g livy livy
cd /var/log
mkdir  livy
chown livy:livy /var/log/livy
mkdir -p /var/log/zeppelin
chown zeppelin:zeppelin /var/log/zeppelin


在HDFS的core-site.xml 中添加一下配置:

```bash

    hadoop.proxyuser.livy.groups
    *


    hadoop.proxyuser.livy.hosts
    *

3.启动报错没有权限Permission deny:
解决方法:把/opt/cloudera/parcels/LIVY-0.5.0/bin 下 chmod 755

(七)部署zeppelin遇到的问题

1.添加服务时报错

Non-zero error code running command: hdfs dfs -put -f /var/run/cloudera-scm-agent/process/645-zeppelin-ZEPPELIN_SERVER/zeppelin-conf/interpreter.json file:///opt/cdh/zeppelin/conf

解决:
把opt/cdh/zeppelin/目录的所属用户组修改为zeppelin就好了

chown zeppelin:zeppelin /opt/cdh/zeppelin/


2.添加服务时报错

java.lang.IllegalArgumentException: The variable [${zeppelin_java_options}] does not have a corresponding value

ZEPPELIN --> 配置 --> 搜索 zeppelin_java_options --> 添加参数 -Xms1024m

配置zeppelin-conf/zeppelin-site.xml 的 Zeppelin Server 高级配置代码段(安全阀):

  zeppelin.server.addr
  0.0.0.0
  Server binding address

七、访问zeppelin界面

直接通过页面访问失败的话 可能需要去hosts配置一下

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存