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
(四)配置ssh免密钥登陆(所有节点)关闭防火墙
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
关闭安全子系统
vi /etc/selinux/configSELINUX=disabled
生成公钥私钥并进入到./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目录,重新搞一遍,这时候就可以找百度问问了
(五)修改linxu内核参数(所有节点)rm -r /root/.ssh
设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将swappiness 设置为 10:
(六)安装jdk(所有节点)查看swappiness
cat /proc/sys/vm/swappiness
永久性修改,执行下面两条命令
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf
注意: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
(七)配置NTP时间同步服务5.source生效并测试
source /etc/profile
java -version
基本原理:将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
三、mysql安装 (一) 下载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
(二)解压weget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
(三)卸载自带的mysql和mariadbtar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
(四)依次安装各个rpm的mysql组件包rpm -qa | grep mysql // 这个命令就会查看该 *** 作系统上是否已经安装了mysql数据库
yum -y remove 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
(二) 将cm的tar安装包上传到每个节点的/opt/cloudera-manager目录下,并解压mkdir /opt/cloudera-manager
(三)在所有节点上创建cloudera-scm伪(系统)用户tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz
(四)配置cm-agent(所有节点)/opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent/config.iniuseradd --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数据库拷贝mysql-connector-java.jar到/usr/share/java/目录下,注意jdbc驱动包的名称必须是mysql-connector-java.jarvi config.ini
server_host=192.168.100.10
1. 在所有节点上,如果没有/usr/share/java目录,请先自己 创建
cp mysql-connector-java-5.1.43.jar /usr/share/java/mysql-connector-java.jar
2. 在主节点上
(六) 配置cm数据库进入到/opt/cloudera-manager/cm-5.16.2/share/cmf/schema,执行mysql的建库建表语句cp mysql-connector-java-5.1.43.jar /opt/cloudera-manager/cm-5.16.2/share/cmf/lib/
./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…@
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;
在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/
- 启动 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才能启动)
1.如果没有/opt/cloudera/csd手动创建
mkdir /opt/cloudera/csd
2.上传csd包到/opt/cloudera/csd/并修改所属用户为
(二) 上传parcel的3个包到CM主节点(cdh01)的/opt/cloudera/parcel-repo目录下 (三) 重启CM和集群cloudera-scmchown -R cloudera-scm:cloudera-scm /opt/cloudera/csd/
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,因此这一步可以不做,建议搞一下)
点击 分配 激活 我这里已经激活了
选择与其他框架的集成依赖
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也放下,这样脚本里的下载就不会执行了,节约时间。
#首先先给个权限 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目录下,运行下面打包命令 跳过测试环节
(五)部署parcel和csdmvn clean package -Dmaven.test.skip=true
找到安装cm的目录/opt/cloudera/
把parcel、parcel.sha 文件cp到/opt/cloudera/parcel-repo目录下
把jar、manifest.json 文件cp到/opt/cloudera/csd目录下,上述两个文件manifest.json可以合成一个,自己编辑下,放parcels这个数组里就好。(这个manifest.json这个文件不放在csd文件下 貌似也能正常分配 激活)
问题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 中添加一下配置: ```bashhadoop.proxyuser.livy.groups * hadoop.proxyuser.livy.hosts *
3.启动报错没有权限Permission deny:
解决方法:把/opt/cloudera/parcels/LIVY-0.5.0/bin 下 chmod 755
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界面zeppelin.server.addr 0.0.0.0 Server binding address
直接通过页面访问失败的话 可能需要去hosts配置一下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)