# 非比寻常大数据 **Repository Path**: ljcvip/unusual-bigdata ## Basic Information - **Project Name**: 非比寻常大数据 - **Description**: 这个是一个用于记录大数据的的搭建过程,但他真正的只会记录安静的记录搭建吗??? - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-23 - **Last Updated**: 2024-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

搭建笔记

这是一个非比寻常的学习笔记,搭建大数据平台的时候总是走些歪门邪道。 ### 01 Centos7 [Centos下载](https://wiki.centos.org/Download) -------2021-7-13发布 > 拉到下面的版本 > > 1708版本或者1804都行 ![image-20230223113113104](imgs/image-20230223113113104.png) > 点击了Tree继续选择下载 > > 其他的不用管按照这个路径选过去就行了: 点击进入isos文件夹 然后进入x86_64/文件夹 ![image-20230223113903221](imgs/image-20230223113903221.png) 安装过程省略... #### 分区提一嘴: ​ **boot分区**:200-800M之间都可以 ​ **swap分区:**2048-4096M之间都可以 **/分区(根分区):**剩下的内存直接分 ***分区绝对不花里胡哨!!!*** ### 02 配置Centos7 #### 基本配置 ```shell rpm -qa |grep vim #查看是否安装vim编辑器 yum -y install vim* #安装 yum install net-tools #安装网络包 ifconfig #查看网络 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #修改网络 systemctl restart network #重启网络 vim /etc/hostname #修改主机名(hadoop102、hadoop103、hadoop104) #三台主机关闭防火墙 systemctl stop firewalld systemctl disable firewalld #在三台主机的/etc/hosts配置ip地址与主机名映射 vim /etc/hosts 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 ``` #### SSH免密登录 ```shell 1)生成公钥和私钥: ssh-keygen -t rsa 然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥) 2)将公钥拷贝到要免密登录的目标机器上 ssh-copy-id hadoop102 ssh-copy-id hadoop103 ssh-copy-id hadoop104 3)重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。 ``` #### 创建集群同步脚本 在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下: ```shell mkdir bin cd bin/ yum -y install rsync #安装rsync同步 vi xsync #创建文件 ``` 在该文件中编写如下代码 ```shell #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=103; host<105; host++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done ``` 修改脚本 xsync 具有执行权限 ```shell chmod 777 xsync ``` ### 03 JAVA安装 > Java必是安装在Centos里面啊!!! 下个Java的包如:“jdk-8u212-linux-x64.tar"格式的 随便解压到哪个路径都行,知道就可以了。 创建个专门配置环境变量的文件: ```shell vim /etc/profile.d/my_env.sh ``` 然后填入下面的环境变量,路径看着改。 配置一些环境变量: ```shell #JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin ``` ### ### 04 MySQL安装 略。。。有时间再补充 ### 0X CDH安装 在经过修改各种配置,并部署了3台以上服务器。就可以完成部署了。 部署前先关闭一下selinux: ```shell vim /etc/selinux/config #修改下面的配置就可以了 SELINUX=disable ``` 创建CDH需要的数据库 ```mysql GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm'; CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; #Hive数据库 CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Oozie数据库 CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Hue数据库 CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ``` 下载第三方依赖 三台节点上全部执行下面依赖的语句,需要联网 ```shell yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse- libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python fuse-libs fuse ``` 配置时间同步 NTP服务器配置 ```shell yum install ntp #集群中所有节点安装ntp # vim /etc/ntp.conf #注释掉所有的restrict开头的配置 #添加下面一行 #集群所在网段的网关(Gateway),子网掩码(Genmask) restrict 192.168.10.2 mask 255.255.255.0 nomodify notrap #将所有server配置进行注释 #添加下面两行内容 server 127.127.1.0 fudge 127.127.1.0 stratum 10 ``` 启动NTP服务 ```shell systemctl start ntpd.service ``` NTP客户端配置(hadoop103,hadoop104) ```shell vim /etc/ntp.conf #注释所有restrict和server配置 #添加下面一行 server 192.168.10.102 ``` 手动测试 ```shell ntpdate 192.168.186.102 显示如下内容为成功: 22 Jun 15:09:23 ntpdate[29268]: adjust time server 192.168.186.102 offset 0.006673 sec 如果显示如下内容需要先关闭ntpd: 22 Jun 15:17:28 ntpdate[49701]: the NTP socket is in use, exiting ``` 启动ntpd并设置为开机自启(每个节点hadoop102,hadoop103,hadoop104) ```shell chkconfig ntpd on service ntpd start ``` 使用群发date命令查看结果,时间相同,同步完成,finalshell可以群发命令的 添加 MySQL 驱动 在/usr/share/目录下创建java目录,**没有就创建一个** ```shell #创建文件夹 mkdir /usr/share/java #将mysql-connector-java-5.1.34.jar拷贝至/usr/share/java目录下,并重命名为mysql-connector-java.jar cp mysql-connector-java-5.1.34.jar /usr/share/java/mysql-connector-java.jar #将mysql-connector-java.jar驱动包分发至其他节点上 xsync /usr/share/java/mysql-connector-java.jar ``` 创建CDH的元数据库 ```mysql CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; #暂时不需要的库 CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; #选择性执行(不懂就别执行) GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'root'; ``` 安装CDH平台 上传CDH所需要的文件: > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel > > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha > > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 > > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha256 > > cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm > > cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm > > cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm > > cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm > > manifest.json 共9个文件 ![image-20230223161431520](imgs/image-20230223161431520.png) 将agent和daemons文件分发至Hadoop102和Hadoop104中(分发到副节点) ```shell xsync cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm xsync cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm ``` Hadoop102(主节点)开始安装: **安装的顺序不能乱!!!daemons => server => agent ** ```shell rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm rpm -ivh cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm ``` Hadoop103,Hadoop104(副节点)安装: **安装顺序:daemons => agent** ```shell rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm ``` 继续修改Hadoop103,Hadoop104(副节点)的文件: ```shell vim /etc/cloudera-scm-agent/config.ini #修改为主节点的主机名 server_host=hadoop102 ``` ![image-20230223162436523](imgs/image-20230223162436523.png) 初始化`scm`数据库(在安装server的节点`Hadoop102`(主节点)上操作) ```shell scm_prepare_database.sh [options] ``` databaseName:数据库名称 databaseUser:数据库用户名,没有就是root password:密码 例如: ```shell /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root root ``` 初始化完成后,进行CDH源设置。不然安装的时候还是需要重新回来设置 ```shell CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha256 manifest.json ``` 将以上的文件全部移动到/opt/cloudera/parcel-repo/目录下 ```shell mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha256 manifest.json /opt/cloudera/parcel-repo/ ``` 就完成了操作! Hadoop102(主节点)启动service服务 ```shell # 启动server systemctl start cloudera-scm-server # 查看server状态 systemctl status cloudera-scm-server # 设置开机自启 systemctl enable cloudera-scm-server ``` **如果查看服务的时候,是启动失败如有以下情况:** **没有日志输出,/var/log/cloudera-scm-server这个地方没有日志文件** **没有报错详细信息:执行journalctl -xe 命令没有然后一点提示** **那么一定是Java的锅!!!** 原来CDH会去使用/usr/java下的jdk。,这个问题没有日志报错很难发现!! 解决方法: ```shell mkdir -p /usr/java #路径看着改/usr/java/default这个路径别改,但是default可这个路径以试试不加 ln -s /opt/module/jdk1.8.0_212/ /usr/java/default ``` 继续启动service服务 Hadoop102,Hadoop103,Hadoop104(主副节点)启动agent服务 ```shell # 启动agent systemctl start cloudera-scm-agent # 查看agent状态 systemctl status cloudera-scm-agent # 设置开机自启 systemctl enable cloudera-scm-agent ``` 开始安装就可以照着网上的安装了。 打开浏览器:【hostname】:【7180】 我这里是:hadoop102:7180 账号密码都是:admin 这里参考: [CDH安装][https://blog.csdn.net/SUMU31707/article/details/119853486] 只用看web页面安装就行了,里面的部署大部分都搞好了