# 非比寻常大数据
**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都行

> 点击了Tree继续选择下载
>
> 其他的不用管按照这个路径选过去就行了:
点击进入isos文件夹 然后进入x86_64/文件夹

安装过程省略...
#### 分区提一嘴:
**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个文件

将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
```

初始化`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页面安装就行了,里面的部署大部分都搞好了