| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> CDH6安装手册 -> 正文阅读 |
|
[系统运维]CDH6安装手册 |
1. CDH服务器操作系统安装1.1 管理节点分区简单配置管理节点数为1,总共4块盘(每块600G),做raid10,为系统盘;剩余2块硬盘(每块2.4T)整体做RAID1,为数据磁盘 图1-1 namenode服务器配置
1.2 数据节点分区配置数据节点数为2,选择4块600G的硬盘做raid10,为系统盘;5块2.4T的盘整体做JBOD,为数据盘。
图1-2 date node服务器配置 2.服务器网络配置2.1 配置IP登录linux系统配置服务器IP 2.2 禁用IPV6使用vi命令编辑 /etc/sysctl.conf 文件,加入如下内容 命令:vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 并在命令行执行:sysctl -p 3. 基础配置3.1 配置hostsVi /etc/hosts 添加: 10.0.96.141? node1 10.0.96.142 node2 10.0.96.143 nod 注意事项:注意主机名的大小写,若是存在问题,可增加小写别名 设置主机名生效: 命令行执行命令:hostnamectl set-hostname node1 执行命令验证:hostname 3.2 关闭SELINUX修改文件/etc/selinux/config 将其中的SELINUX=enforcing修改为disabled 图3-3 禁用selinux 3.3 查看防火墙状态执行命令:systemctl status firewalld 图3-4 查看防火墙状态 如是启用状态关闭防火墙 执行命令:systemctl stop firewalld 3.4 配置ssh免密登录此处只配置主界面免密访问agent节点 执行生成秘钥: 执行命令:ssh-keygen -t rsa 图3-5 生成秘钥 执行如下命令分发秘钥 执行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@sztpisjfxapp01t 3.5安装oracle JDK关于JDK的安装,根据存在机器的环境来操作,有些机器已经配置好了,可以直接使用。 创建JDK存放目录 执行命令: for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'` do ssh root@$target "mkdir -p /usr/java" Done 切换至JDK tar包存放路径,解压JDK tar包并移动至 /usr/java 图3-6 解压JDK 执行命令:mv jdk1.8.0_144 /usr/java 分发解压包至所有节点/usr/java目录下面 执行命令: for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'` do scp -r /usr/java/jdk1.8.0_144 root@$target:/usr/java/ done 配置环境变量: Vi /etc/profile 添加jdk路径: export JAVA_HOME=/usr/java/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin 图3-7 配置JDK环境变量 使配置文件生效: source /etc/profile 使用openjdk安装: 卸载所有节点上的oracle jdk,安装yum自带的openjdk 执行命令:yum install -y java-1.8.0-openjdk 编辑cm文件:vim /etc/default/cloudera-scm-server 添加:export JAVA_HOME=”usr/lib/jvm/java-1.8.0-opnejdk” 重启cm server:systemctl restart cloudera-scm-server 3.6配置系统yum源准备好安装linux系统的镜像,版本至少要高与当前的系统版本,执行如下命令挂载 执行命令:mount -o loop CentOS-7-x86_64-DVD-1804.iso /media 制作镜像挂载 切换至/etc/yum.repos.d/目录下面,配置本地系统yum源 图3-8 配置系统本地yum源 配置完成执行命令yum clean all && yum makecache 备注:如使用本地yum源则需要每台机器上都进行如下操作,也可以使用ftp yum源! 3.7 安装HTTPD 服务在cm节点安装httpd 执行命令:yum install -y httpd 启动http服务,输入命令:systemctl start httpd 将httpd服务添加到开机启动项,输入命令:chkconfig httpd on 查看httpd 的状态 ,输入命令:systemctl status httpd 图3-9 检查httpd的状态 修改/etc/httpd/conf/httpd.conf配置文件,在<IfModule mime_module>中修改以下内容 AddType?application/x-gzip?.gz?.tgz?.parcel systemctl restart httpd 3.8 安装并配置ntp服务执行如下命令安装ntpd服务 执行命令:yum -y install ntpd 修改所有节点的ntp配置文件 vi /etc/ntp.conf 主节点添加: server 127.127.1.0 fudge 127.127.1.0 stratum 10 图3-10 ntp主节点配置文件 从节点(node1 =sztpisjfxapp01t.cntaiping.com)添加: server sztpisjfxapp01t.cntaiping.com fudge 127.127.1.0 stratum 10 图3-10 ntp从节点配置文件 如服务器时间偏差较大则执行命令手动同步 执行命令: ntpdate sztpisjfxapp01t.cntaiping.com 重启ntp服务 执行命令: systemctl restart ntpd 执行命令: ntpdc -np 图3-11 验证ntp是否同步成功 验证同步情况 =变成*表示同步成功! 3.9 安装createrepo ,配置CDH本地yum源执行命令:yum install -y createrepo 切换至: /etc/yum.repos.d/ touch cloudera-manager.repo 添加内容: name=cloudera-manager,version6.1.1 baseurl=http://10.0.96.141/cdh6.1.1 gpgcheck=0 enabled=1 图3-12 配置cm本地yum源 把cm的安装包放置/var/www/html/cdh6.1.1 目录下面 allkeys.asc cloudera-manager-agent-6.1.1-769885.el7.x86_64.rpm cloudera-manager-daemons-6.1.1-769885.el7.x86_64.rpm cloudera-manager-server-6.1.1-769885.el7.x86_64.rpm cloudera-manager-server-db-2-6.1.1-769885.el7.x86_64.rpm enterprise-debuginfo-6.1.1-853290.el7.x86_64.rpm 执行命令:createrepo cdh6.1.1 执行命令:yum clean all 执行命令:yum makecache 图3-13 重建yum cache 打开浏览器输入:http://10.0.96.141/cdh6.1.1 如能正常显示,表示执行成功。此处注意常用端口被禁问题。 3.10 所有节点关闭透明大页vim /etc/rc.local 添加内容: touch /var/lock/subsys/local echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled 图3-14 关闭透明大页 执行如下命令使生效 echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled 3.11 修改交换内存执行命令:vim /etc/sysctl.conf 在文件/etc/sysctl.conf文件中如下内容 vm.swappiness=0 图3-15 禁用交换内存 并在命令行执行 sysctl -p 3.12 安装psycopg安装依赖包 yum install -y gcc postgresql postgresql-server postgresql-devel python-devel 如果是python3 则安装python3-dev 将之前下载的psycopg文件解压并进入解压的psycopg文件夹执行命令 图3-16 解压psycopg python setup.py build python setup.py install 4. MYSQL安装4.1解压安装mysql安装包解压mysql安装包mysql-5.7.12-1.el7.x86_64.rpm-bundle.tar 删除mysql-community-server-minimal-5.7.12-1.el7.x86_64.rpm 图4-1 mysql安装包 安装mysql包: yum -y install mysql-community-* 4.2 启动mysql数据库启动mysql: systemctl start mysqld 加入开机启动项: systemctl enable mysqld 在日志文件中查看root密码: cat /var/log/mysqld.log | grep password 初始化mysql数据库: 4.3 初始化mysql数据库执行 /usr/bin/mysql_secure_installation 图4-2 初始化mysql数据库 图4-3 初始化mysql数据库 解压包方式安装及远程连接授权的地址: 操作:
修改mysql密码:
开放远程连接:
4.4 创建cm需要的库执行创建cdh使用的数据库: mysql -u root --password='P@ssw0rd' -e 'create database metastore default character set utf8;' mysql -u root --password='P@ssw0rd' -e "CREATE USER 'hive'@'%' IDENTIFIED BY 'P@ssw0rd';" mysql -u root --password='P@ssw0rd' -e "GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';" mysql -u root --password='P@ssw0rd' -e "create user 'amon'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database amon default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on amon .* to 'amon'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'rman'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database rman default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on rman .* to 'rman'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'sentry'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database sentry default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on sentry.* to 'sentry'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'nav'@'%'identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database nav default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on nav.* to 'nav'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'navms'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database navms default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on navms.* to 'navms'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'cm'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database cm default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on cm.* to 'cm'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'oozie'@'%'identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database oozie default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on oozie.* to 'oozie'@'%'" mysql -u root --password='P@ssw0rd' -e "create user 'hue'@'%' identified by 'P@ssw0rd'" mysql -u root --password='P@ssw0rd' -e 'create database hue default character set utf8' mysql -u root --password='P@ssw0rd' -e "grant all privileges on hue.* to 'hue'@'%'" mysql -u root --password='P@ssw0rd' -e "FLUSH PRIVILEGES;" 或者通过navicat工具连接mysql,然后执行下面语句: create database metastore default character set utf8; CREATE USER 'hive'@'%' IDENTIFIED BY 'Mlamp@123'; GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%'; create user 'amon'@'%' identified by 'Mlamp@123'; create database amon default character set utf8; grant all privileges on amon.* to 'amon'@'%'; create user 'rman'@'%' identified by 'Mlamp@123'; create database rman default character set utf8; grant all privileges on rman.* to 'rman'@'%'; create user 'sentry'@'%' identified by 'Mlamp@123'; create database sentry default character set utf8; grant all privileges on sentry.* to 'sentry'@'%'; create user 'nav'@'%' identified by 'Mlamp@123'; create database nav default character set utf8; grant all privileges on nav.* to 'nav'@'%'; create user 'navms'@'%' identified by 'Mlamp@123'; create database navms default character set utf8; grant all privileges on navms.* to 'navms'@'%'; create user 'cm'@'%' identified by 'Mlamp@123'; create database cm default character set utf8; grant all privileges on cm.* to 'cm'@'%'; create user 'oozie'@'%' identified by 'Mlamp@123'; create database oozie default character set utf8; grant all privileges on oozie.* to 'oozie'@'%'; create user 'hue'@'%' identified by 'Mlamp@123'; create database hue default character set utf8; grant all privileges on hue.* to 'hue'@'%'; FLUSH PRIVILEGES; 此处初始化过程是必须的,后面c m服务及组件安装都用到。 5. 安装cm服务5.1 使用JDBC文件放到cm server同一台机器上。 操作一: 创建mysql JDBC jar包存放的路径: for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'` do ssh root@$target "mkdir /usr/share/java/" Done 移动mysql-connector-java-5.1.44-bin.jar至/usr/share/java/ 目录下面 分发至所有节点: for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'` do scp /usr/share/java/mysql-connector-java-5.1.44-bin.jar root@$target:/usr/share/java/ done 创建软连接: for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'` do ssh root@$target "ln -s /usr/share/java/mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar" done 操作二: 启动脚本显示:默认位置 /usr/share/java/ ,默认驱动名 mysql-connector-java.jar # 创建文件夹 mkdir -p /usr/share/java/ # 进入 MySQL 驱动文件目录 cd /usr/share/java/ # 下载 MySQL 驱动 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz # 或者下载jar包: wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar # -bash: wget: 未找到命令 yum -y install wget # 解压压缩包 tar zxvf mysql-connector-java-5.1.46.tar.gz # 复制并且重命名 cp /usr/share/java/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar 图5-1 mysql jdbc 5.2 安装cm server并初始化数据库先获取以下资源: 使用yum 命令安装cloudera manager yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm yum install -y cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm 安装完成后,配置cm数据库。 语法地址: https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/prepare_cm_database.html 描述与实例: /opt/cloudera/cm/schema/scm_prepare_database.sh 数据库类型 数据库 用户名 密码 /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm P@ssw0rd 日志如下: JAVA_HOME=/usr/java/latest Verifying that we can write to /etc/cloudera-scm-server Creating SCM configuration file in /etc/cloudera-scm-server Executing:/usr/java/latest/bin/jav-cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db. [main] DbCommandExecutor INFO Successfully connected to database. All done, your SCM database is configured correctly! 然后启动 CM-server:systemctl start cloudera-scm-server 查看数据库cm,会出现一堆表,说明操作成功。 存在问题: 启动失败,如: 解决思路:确认jdk安装路径 CM会去 /usr/java 目录下加载jdk,对于使用yum/rpm安装的jdk,/usr/java 是默认路径,不会有问题。但对于使用二进制文件手动安装的jdk,可能不在这个路径下,解决方法是使用软连接将java路径连接到 usr/java
还有存在这种原因: ln -s /data/java/jdk1.8.0_333/bin/java /usr/bin/java ln -s /data/java/jdk1.8.0_333/bin/java /bin/java 日志显示正常,但数据库没有表,问题及方案如下。 方案一:解决思路。 问题解决:CDH6.3.1初始化scm_prepare_database数据库scm为空 - 灰信网(软件开发博客聚合) 方案二:从已有版本的数据库手动导表出来,操作如下: 步骤一:在本地一台机器部署mysql,安装 clouder-scm-server 服务,将初始的 scm 表 sql 导出。 mysqldump -uroot -p <scm-dbname> > A_dump.sql 步骤二:将备份的 sql 语句导入到线上 scm 库所在的地址。 mysql -h<mysql-host> -u<mysql-user> -p<mysql-pwd> <scm-dbname> < A_dump.sql 5.3 移动parcel包至cm默认目录主节点执行: 操作一:将CDH目录文件复制到如下目录 mkdir -p /opt/cloudera/parcel-repo CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel manifest_6.11.json 生成sha文件: sha1sum CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel | awk '{print $1}' > CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha 操作二:将CDH压缩包解压后,复制如下文件: CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 manifest.json 并将 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 图5-2 CDH安装包存放目录 注意,此步骤的文件必须操作 5.4 重启cm服务至节点安装重启cm服务: 执行命令:systemctl restart cloudera-scm-server.service 重启过程中,这个目录 /opt/cloudera/parcel-repo下会生成如下文件 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.torrent 若没有这个文件,需要排查原因。可能没有创建这个文件的权限,查看日志文件如下: tail -f 10 /var/log/cloudera-scm-server/cloudera-scm-server.log 等待1分钟,登录浏览器进入页面:10.0.96.141:7180 若是想修改7180,则执行如下操作: mysql -uroot -p use CM; select * from CONFIGS where ATTR='http_port'; update CONFIGS set VALUE='8089' where ATTR='http_port'; 重启服务:systemctl restart cloudera-scm-server.service 若是没有这个记录,则插入一条数据。 修改端口资料链接:https://blog.csdn.net/zcb_data/article/details/80814245 6.网页界面安装6.1 界面安装登录浏览器进入页面:10.0.96.141:7180 用户名admin, 密码 admin 是否已经设置了AUTO-TLS,如果已经在前面设置了,会看到如下的提示,然后进入下一步 如果是连续的IP地址,可以像截图那样写,10.0.96.[141-143],表示总共是3个节点,IP分别为141,142,143,点Search进行扫描,扫描成功后,进入下一步 这里是指定安装包的位置,Cloudera Manager Agent 选择Custom Repository, 使用之前安装CM6的地址,如 http://10.0.96.141/cdh6.1.1 下面是选择CDH的Parcel 包位置,点more options 查看Local Parcel 目录是否为一开始存放Parcel 的位置,默认为/opt/cloudera/parcel-repo 如果不需要修改,点Cancel 关闭选项窗口,这时候如果系统找到安装包,会在外面的主界面上显示相应的CDH版本。如下图所示: 安装JDK, 前面的步骤已经安装JDK了,所以这里直接点下一步就可以了 输入各节点的root 密码,注意: 所有节点的root 密码需一致,然后点击下一步就开始安装了。此处若没有root账号,则使用普通账号免密操作,注意部署过程的文件写入权限问题,需要实时查看日志。 等待安装完成 此处容易出现agent检测问题,如下: 安装失败。 无法接收 Agent 发出的检测信号。 请确保主机的名称已正确配置。 请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。 请确保正在添加的主机上的端口 9000 和 9001 空闲。 检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。 如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。 排查方式:
安装完成后等待健康检查,检查没问题进入下一步 指定节点模版,因为是新装的,所以没有模版,下一步就可以了 根据不同的场景选择,默认为Essentials 这是点击Esstials 方案后,系统自动为每个节点给了的角色分配方案,需根据实时项目情况调整,这里以默认为例,进入下一步 这一步填入MYSQL所在的服务器,及对应数据库的名字,用户名及密码,然后点击下方的“TEST CONNECTION” 进行测试。此处的数据库及账号密码是 4.4 创建c m需要的库 的设置库账号密码 对节点的参数进行设置,本手册以默认配置作为示例 对节点的参数进行设置,本手册以默认配置作为示例 到这一步说明节点配置引导已经全部完成了,点击“Finish”关闭 这时会返回主界面,并能查看各服务的状态,至此,CDH6 的安装完成!!! 6.2 flink组件安装安装教程:CDH6.3.2集成Apache Flink1.12.0 - whcsrl_技术网 问题系列: /opt/cloudera/parcels/FLINK/lib/flink/bin/flink-yarn.sh: line 17: rotateLogFilesWithPrefix: command not found 解决方案: flink/bin/flink-yarn.sh: line 17: rotateLogFilesWithPrefix: command not found_BigBig_Data的博客-CSDN博客 所有机器上,执行如下操作: cd /opt/cloudera/parcels/FLINK/lib/flink/lib/ wget https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-10.0/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar 若是flink-shaded-hadoop-2-uber-2.7.5-10.0.jar版本不行,可以升级jar包 6.3 Hue组件安装7.问题集合7.1 hive问题Required table missing : "VERSION" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.schema.autoCreateTables" 解决方案:去hive安装目录下的bin执行下面命令: bin/schematool -dbType mysql -initSchema --verbose 若是遇到初始化失败问题,参考如下文章处理: 若是存在加载MySQL驱动问题,则下载MySQL驱动到hive的lib目录下 若是执行出现 :Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061) 则删除MySQL的hive表,再重新建库,最后执行如下命令: bin/schematool -dbType mysql -initSchema --verbose |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:21:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |