共计 7706 个字符,预计需要花费 20 分钟才能阅读完成。
工欲善其事必先利其器,在通过大量的实践学习当前,须要有一个本地的研发环境来进行练手。曾经工作的能够不依赖于公司的环境,在家也能够随便的练习。而自学大数据的同学,也能够进行本地练习,大数据是一门偏实际的学科,在找工作之前进行一些实际操作,也更利于对大数据常识的了解。
本文将从头开始具体的记录整个大数据环境的搭建过程,本文所应用的笔记本电脑内存为 16G,将应用 CDH6.3.2 治理整个大数据集群。
因为 cloudera 官网从 2021 年 2 月 1 日起全面移除的非订阅用户的下载链接,所以本文所有的安装包都曾经备份,能够关注 大数据流动 回复 CDH16G 获取。
本文共四个局部,肯定要保障每一个局部都装置胜利当前再向下进行。
首先要装置好 VMwareWorkstation 软件,随后新建三台 centos 零碎的虚拟机,在三台虚拟机中搭建 CDH 大数据管理工具,最初应用 CDH 搭建大数据集群。
一、装置 VMwareWorkstation 虚拟化软件
首先咱们应用 VMwareWorkstation 来疾速的进行虚拟机的新建。VMwareWorkstation 是一款功能强大的桌面虚构计算机软件,咱们应用的版本为 VMwareWorkstation 16.1.2。
1、关上安装程序,点击下一步。
2、抉择承受条款,点击下一步。
3、批改装置门路,增强型虚构键盘次要作用是进步安全性,这里不勾选。点击下一步。
4、将查看更新和体验晋升都去掉,点击下一步。
5、快捷方式看本人的状况抉择吧,点击下一步。
6、点击装置,开始进行虚拟机装置。
7、装置实现后点击 许可证 用注册机生成的密钥进行产品激活。
8、点击实现,功败垂成。VMwareWorkstation 就胜利装置并激活了。
这样,第一局部 VMwareWorkstation 软件曾经搭建实现。
二、新建三台 Centos 虚拟机
首先筹备 Centos7 的镜像文件,CentOS-7-x86_64-DVD-1908.iso。
请留神三台虚拟机的 CPU 首次设置为 1 核,内存设置为 4G(这样虚拟机占用 12G,留出一些空间),硬盘为 20G,这些当前也是能够批改的。
新建虚拟机
1、关上 VMwareWorkstation,抉择新建虚拟机
2、抉择自定义装置,点击下一步。
3、这里不必批改,是 VMware 的版本和一些限度阐明,点击下一步。
4、这里先抉择稍后装置操作系统,点击下一步。
5、抉择零碎为 Linux,版本为 Centos7 64 位,点击下一步。
6、批改虚拟机名称,地位,点击下一步。
7、CPU 默认为 1 核,点击下一步。
8、内存设置为 4GB,点击下一步。
9、网络应用默认的 NAT,点击下一步。
10、I/O 应用默认
11、磁盘类型默认
12、创立新的虚构磁盘
13、设置磁盘大小为 20GB
14、默认文件名
15、最初能够看到这些设置,点击实现。
16、虚拟机新建实现,能够持续编辑虚拟机,将装置镜像挂载。
装置 Centos 零碎
1、开启此虚拟机
留神:点击进入虚拟机操作,要退出来的话应用 Ctrl + Alt
2、抉择装置 centos7
抉择语言
进行根本设置
设置明码 Bigdataflowing
提醒重启电脑
期待装置实现,实现后重启。进入操作系统
设置虚拟机网络
此时的虚拟机是无奈上网的,须要对网络进行设置。
首先设置主机的网络共享,再看一下 vnet8 的网络 ip,我的是 192.168.137.0
在 vmvare 的虚构网络编辑器中,设置 ip
进入虚拟机进行网卡设置
进入网卡设置目录
cd /etc/sysconfig/network-scripts/
设置网卡
vi ifcfg-ens33
设置如下(重点是上面几个设置,固定 IP)BOOTPROTO=static
IPADDR=192.168.137.101
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
ONBOOT=yes
设置实现后重启网卡
service network restart
重启后验证上网状况
ping www.baidu.com
xshell 近程连贯机器
始终在虚拟机里操作是不不便的,所以咱们通过 xshell 进行近程连贯。网络已通,所以咱们用用户名明码连贯即可。
下面操作实现后,咱们能够应用 vmvare 的克隆性能,疾速的复制出其余两台虚拟机。不过要记得复制完当前。进入零碎把 ip 批改为不同的地址。
克隆虚拟机
克隆自 虚拟机中的以后状态
残缺克隆
克隆实现后,批改 node02 和 node03 的网络设置。
进入网卡设置目录
cd /etc/sysconfig/network-scripts/
设置网卡
vi ifcfg-ens33
设置如下(node02 改成 192.168.137.102 node03 改成 192.168.137.103)IPADDR=192.168.137.101
此时将三台虚拟机开启,最终的成果三台虚拟机失常运行,xshell 能够近程同时操作这三台机器。
这样第二局部,三台 centos 虚拟机新建实现,上面咱们能够进行 CDH 环境的装置了。
三、应用 CDH 搭建 Hadoop 集群环境
CDH(Cloudera’s Distribution, including Apache Hadoop),是 Hadoop 泛滥分支中的一种,由 Cloudera 保护,基于稳固版本的 Apache Hadoop 构建,并集成了很多补丁,可间接用于生产环境。
咱们应用 CDH6.3.2 的版本进行装置。
CDH 分为 Cloudera Manager 治理平台和 CDH parcel(parcel 蕴含各种组件的安装包),须要先装置 CM,再装置 parcel。
CM 6.3.1,CDH 6.3.2(6.3.3 版本及以上的要免费了)
组件版本反对状况
https://docs.cloudera.com/doc…
筹备工作
1、批改文件关上限度
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* soft nproc 131072
2、敞开防火墙
systemctl disable firewalld
systemctl stop firewalld
3、批改主机名及 hosts
顺次批改主机名
vi /etc/hostname
批改 hosts 文件
vi /etc/hosts
192.168.137.101 node01
192.168.137.102 node02
192.168.137.103 node03
失效
source /etc/hosts
4、免密设置
node01 设置
ssh-keygen -t rsa
一路回车
ssh-copy-id node02
ssh-copy-id node03
输出明码
5、装置 jdk
scp jdk-8u221-linux-x64.rpm node02:/opt/
scp jdk-8u221-linux-x64.rpm node03:/opt/
rpm -ivh jdk-8u221-linux-x64.rpm
java -version
vim /etc/profile
# 开端追加以下内容
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
echo $JAVA_HOME
6、敞开 selinux
// 长期失效 selinux 设置
setenforce 0
// 批改配置文件
vi /etc/selinux/config
把 SELINUX=enforcing 批改为 SELINUX=disabled
7、装置 ntp 服务
// 装置 ntp 服务
yum install -y ntp
// 开启并设置开机自启 ntp 服务
systemctl start ntpd
systemctl enable ntpd
// 查看 ntp 服务状态
systemctl status ntpd
8、node01 装置 Mysql
移除 mariadb
yum remove mariadb-libs.x86_64
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
yum localinstall ./mysql80-community-release-el7-1.noarch.rpm
yum install mysql-community-server
service mysqld start
# 查看长期明码
grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -uroot -p
# 输出方才的明码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bigdataflowing@123';
# 新建 scm 用户
CREATE USER 'scm'@'%' IDENTIFIED BY 'Bigdataflowing@123';
grant all privileges on *.* to 'scm'@'%' with grant option;
flush privileges;
新建 CDH 所需的数据库:
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE reports DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
create user 'root'@'localhost' identified by 'Bigdataflowing@123';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
9、各节点筹备 mysql8 的驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -zxf mysql-connector-java-5.1.46.tar.gz
mkdir /usr/share/java/
cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
装置 CDH
1、配置本地 yum 源
node01 装置 httpd createrepo 并设置开机自启动:yum -y install httpd createrepo
systemctl start httpd
systemctl enable httpd
将包放在目录下
mkdir -p /var/www/html/cloudera-repos/cm6
将文件传入此目录下
createrepo .
配置本地 yum 源
备份 cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
cd /etc/yum.repos.d/
vim cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://node01/cloudera-repos/cm6
gpgcheck=0
enabled=1
yum clean all && yum makecache
验证胜利,浏览器拜访 http://192.168.127.101/cloude…
散发包
scp -r cloudera-manager.repo root@node02:$PWD
scp -r cloudera-manager.repo root@node03:$PWD
其余节点
yum clean all && yum makecache
node01 装置cloudera manager server
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
装置完 CM 后 /opt/ 下会呈现 cloudera 目录,上传 cdh parcel 文件到 /opt/cloudera/parcel-repo/
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
初始化数据库
cd /opt/cloudera/cm/schema/
./scm_prepare_database.sh -h localhost -P 3306 mysql scm scm Bigdataflowing@123
胜利音讯
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
3、node02 node03 装置 agent
yum install -y cloudera-manager-daemons cloudera-manager-agent
配置 Agent 文件:vim /etc/cloudera-scm-agent/config.ini
将 server_host=localhost
更改为: server_host=node01
启动
server 和 agent 一起启动,报错看 log /var/log/cloudera-scm-server
node01
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
node02 node03
systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
拜访网址 http://192.168.137.101:7180/c… 胜利!
账号密码 admin/admin
那么 CDH 管理工具曾经装置实现,上面咱们应用 CDH 装置 Hadoop 集群环境。
四、装置部署 HADOOP 大数据集群
开始装置
批准条款
抉择装置版本,能够抉择试用或者免费版
开始装置,输出集群名称
抉择主机
这里有坑,间接抉择后边没法改存储库
这里能够点上方按钮进入主页,先删除主机,再加回来
按上面设置好,大部分曾经默认
JDK 曾经装置 不必选
机器账号密码
这里会做一些检测,根本是一些正告,抉择 i understand 持续。
上面进入到组件的装置,因为内存无限,咱们抉择自定义服务,先只装置 hdfs 和 hive,zookeeper,其余的组件后续也能够减少。
要设置节点的调配,尽量均匀就能够。
这里全副连 node01 的 mysql 库
一些 hdfs 设置,能够默认
期待装置中。。
装置根本实现。
装置实现!能够欢快的游玩了。
再揭示一下
因为 cloudera 官网从 2021 年 2 月 1 日起全面移除的非订阅用户的下载链接,所以本文所有的安装包都曾经备份,能够关注 大数据流动 回复 CDH16G 获取。
踩坑大全
1、客户机操作系统已禁用 CPU,请敞开或重置虚拟机。
大部分是 Vmvare 版本及镜像问题,应用 Vmvare16.1.2 版本
2、mysql 版本:’for the right syntax to use near ‘identified by ‘password’ with grant option’
问题剖析:mysql 版本 8.0.13,在给新用户受权时,产生了变动:
1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘password’ with grant option’ at line 5, Time: 0.000000s
出错的语句:
grant all privileges on . to ‘root’@’172.16.10.203’ identified by ‘password’ with grant option
修改后的语句:离开三次执行
创立账户
create user ‘root’@’172.16.10.203’ identified by ‘password’
赋予权限,with grant option 这个选项示意该用户能够将本人领有的权限受权给他人
grant all privileges on . to ‘root’@’172.16.10.203’ with grant option
改明码 & 受权超用户,flush privileges 命令实质上的作用是将以后 user 和 privilige 表中的用户信息 / 权限设置从 mysql 库 (MySQL 数据库的内置库) 中提取到内存里
flush privileges;
3、missing requires of libmysqlclient.so.18()(64bit)
谬误提醒装置依赖的库文件没有找到:libmysqlclient.so.18()(64bit)
解决:
短少 Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm 这个包
wget http://www.percona.com/redir/…
rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
4、cm 启动后无法访问
centos7 会开启 ipv6,须要禁用掉
vi /etc/default/grub
GRUB_CMDLINE_LINUX=”ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet”
grub2-mkconfig -o /boot/grub2/grub.cfg
5、Parcel hash file missing: CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
短少 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha 文件,增加到指定目录
6、Could not retrieve mirrorlist http://mirrorlist.centos.org/… error was
14: curl#6 – “Could not resolve host: mirrorlist.centos.org; Unknown error”
yum 源有问题,批改 /etc/yum.repos.d 下 yum 配置文件
7、无奈装置 cloudera-manager-agent 包
查看 log 看具体报错信息