需要借鉴的网址:
Haddop: https://blog.csdn.net/zsy2362933250/article/details/120811205
SPARK https://blog.csdn.net/qq_52691614/article/details/120001942
HIVE: https://blog.csdn.net/zsy2362933250/article/details/120811356
基础环境配置
本环境用于为基础设置部分,用于后续的集群搭建。
考核条件如下:
\1. 按照左侧虚拟机名称修改对应主机名(分别为master、slave1、slave2,使用hostnamectl命令)
(0.00 / 1分)
操作环境: master、slave1、slave2
master服务器:
hostnamectl set-hostname master
bash
Slave1服务器:
hostnamectl set-hostname slave1
bash
Slave2服务器:
hostnamectl set-hostname slave2
bash
关闭防火墙(备用):
systemctl status firewalld
systemctl stop firewalld
- 修改host文件添加左侧master、slave1、slave2节点IP与主机名映射(使用内网IP)
(0 / 1分)
操作环境: master、slave1、slave2
vim /etc/hosts
![](https://img.haomeiwen.com/i5459353/979e5a5aa77c09aa.png)
注意替换这里的ip为内网IP
- 时区更改为上海时间(CST+0800时区)
(0 / 1分)
操作环境: master、slave1、slave2
echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile
- 环境已经安装NTP,修改master节点NTP配置,设置master为本地时间服务器,屏蔽默认server,服务器层级设为10
(0 / 3分)
操作环境: master
vim /etc/ntp.conf
最后一行加入
server 127.127.1.0
fudge 127.127.1.0 stratum 10
- 开启NTP服务
(0 / 1分)
操作环境: master
/bin/systemctl restart ntpd.service
操作环境: Slave1 、Slave2
ntpdate master
- 添加定时任务--在早十-晚五时间段内每隔半个小时同步一次本地服务器时间(24小时制、使用用户root任务调度crontab,服务器地址使用主机名)
(0 / 3分)
操作环境: slave1、slave2
crontab -e
键入i,进入编辑模式
*/30 10-17 * * * usr/sbin/ntpdate master
注意时间的变化
- 主节点生成公钥文件id_rsa.pub(数字签名RSA,用户root,主机名master)
(0 / 3分)
操作环境: master
ssh-keygen
一直回车
将.ssh/id_rsa. pub中的公钥存到authorized_keys 中:
cd .ssh
ls
cat id_rsa.pub >> authorized_keys
ssh-copy-id localhost
- 建⽴master⾃身使⽤root⽤户ssh访问localhost免密登录
(0 / 1分)
操作环境: master
ssh localhost
- 建⽴master使⽤root⽤户到slave1的ssh免密登录访问
(0 / 1分)
操作环境: master
scp -r .ssh root@slave1:~/
ssh slave1
exit
过程中会输入密码,拷贝输入左侧的服务器密码
\10. 建⽴master使⽤root⽤户到slave2的ssh免密登录访问
(0 / 1分)
操作环境: master
scp -r .ssh root@slave2:~/
ssh slave2
exit
- 将jdk安装包解压到/usr/java目录(安装包存放于/usr/package277/,路径自行创建,解压后文件夹为默认名称,其他安装同理)
(0 / 1分)
操作环境: master、slave1、slave2
这里的 /usr/package277/ 根据比赛时的要求,灵活改变
cd /usr/package277/
ls
查看安装包,执行下面命令时灵活替换,切记!切记!切记!
mkdir -p /usr/java
tar -zxvf /usr/package/jdk-8u221-linux-x64.tar.gz -C /usr/java/
- 配置系统环境变量JAVA_HOME,同时将JDK安装路径中bin目录加入PATH系统变量,注意生效变量,查看JDK版本
(0 / 3分)
操作环境: master、slave1、slave2
vim /etc/profile
键入 i,Shift+G键快速跳转到末尾, 添加一下内容, 注意路径中 jdk1.8.0_221 的替换
#java
export JAVA_HOME=/usr/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量
source /etc/profile
拷贝到slave1 、slave2
scp -r /usr/java/ root@slave1:/usr/
scp -r /usr/java/ root@slave2:/usr/
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
java -version
操作环境: slave1、slave2
生效环境变量并查看版本
source /etc/profile && java -version
Zookeeper集群环境搭建
考核条件如下:
\1. 将zookeeper安装包解压到指定路径/usr/zookeeper(安装包存放于/usr/package277/)
(0.00 / 3分)
操作环境: master、slave1、slave2
mkdir -p /usr/zookeeper
tar -zxvf /usr/package277/zookeeper-3.4.14.tar.gz -C /usr/zookeeper/
\2. 配置系统变量ZOOKEEPER_HOME,同时将Zookeeper安装路径中bin目录加入PATH系统变量,注意生效变量
(0 / 3分)
操作环境: master、slave1、slave2
vim /etc/profile
键入i,shift+g 跳转到末尾加入
#zookeeper
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin
生效环境变量
source /etc/profile
\3. Zookeeper的默认配置文件为Zookeeper安装路径下conf/zoo_sample.cfg,将其修改为zoo.cfg
(0 / 3分)
操作环境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.14/conf
ll
mv zoo_sample.cfg zoo.cfg
- 设置数据存储路径(dataDir)为/usr/zookeeper/zookeeper-3.4.14/zkdata
(0 / 3分)
操作环境: master、slave1、slave2
- 设置日志文件路径(dataLogDir)为/usr/zookeeper/zookeeper-3.4.14/zkdatalog
(0 / 3分)
操作环境: master、slave1、slave2
- 设置集群列表(要求master为1号服务器,slave1为2号服务器,slave2为3号服务器)
(0 / 3分)
操作环境: master、slave1、slave2
vim zoo.cfg
修改dataDir=/tmp/zookeeper
dataDir=/usr/zookeeper/zookeeper-3.4.14/zkdata
在文末插入(shift+g):
dataLogDir=/usr/zookeeper/zookeeper-3.4.14/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
- 创建所需数据存储文件夹、日志存储文件夹
(0 / 3分)
操作环境: master、slave1、slave2
\8. 数据存储路径下创建myid,写入对应的标识主机服务器序号
(0 / 3分)
操作环境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.14/
mkdir zkdata zkdatalog
cd zkdata
vim myid
操作环境: master
cd zkdata
vim myid
输入 1 即可保存
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /usr/zookeeper/ root@slave1:/usr/
scp -r /usr/zookeeper/ root@slave2:/usr/
操作环境: slave1、slave2
source /etc/profile
vim /usr/zookeeper/zookeeper-3.4.14/zkdata/myid
slave1机器输入2 , salve2机器输入3 ,保存退出即可
- 启动服务,查看进程QuorumPeerMain是否存在
(0 / 3分)
操作环境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.14/
bin/zkServer.sh start
![](https://img.haomeiwen.com/i5459353/ac30efe8c65b4b41.png)
\10. 查看各节点服务器角色是否正常(leader/follower)
(0 / 3分)
操作环境: master、slave1、slave2
bin/zkServer.sh status
执行到这里检验不通过的,可以直接跳过
Hadoop完全分布式集群搭建
- 将Hadoop安装包解压到指定路径/usr/hadoop(安装包存放于/usr/package277/)
(0.00 / 1分)
操作环境: master、slave1、slave2
mkdir -p /usr/hadoop
操作环境: master
tar -zxvf /usr/package/hadoop-2.7.7.tar.gz -C /usr/hadoop/
- 配置环境变量HADOOP_HOME,将Hadoop安装路径中bin目录和sbin目录加入PATH系统变量,注意生效变量
(0 / 2分)
操作环境: master、
vim /etc/profile
键入 i,
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin
环境生效
source /etc/profile
- 配置Hadoop运行环境JAVA_HOME
(0 / 2分)
操作环境: master
cd /usr/hadoop/hadoop-2.7.7/etc/hadoop/
ll
vim hadoop-env.sh
在28行加入:
export JAVA_HOME=/usr/java/jdk1.8.0_221
- 设置全局参数,指定HDFS上NameNode地址为master,端口默认为9000
(0 / 3分)
操作环境: master
\5. 指定临时存储目录为本地/root/hadoopData/tmp(要求为绝对路径,下同)
(0 / 3分)
操作环境: master
vim core-site.xml
ctrl+A 全选后,直接粘贴下面的内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- 指定hdfs的nameservice为h01 -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop数据存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoopData/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
</configuration>
\6. 设置HDFS参数,指定备份文本数量为2
(0 / 3分)
操作环境: master
- 设置HDFS参数,指定NN存放元数据信息路径为本地/root/hadoopData/name;指定DN存放元数据信息路径为本地/root/hadoopData/data(要求为绝对路径)
(0 / 3分)
操作环境: master
- 设置HDFS参数,关闭hadoop集群权限校验(安全配置),允许其他用户连接集群;指定datanode之间通过域名方式进行通信
(0 / 3分)
操作环境: master
vim hdfs-site.xml
ctrl+A 全选后,直接粘贴下面的内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/hadoopData/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/hadoopData/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>true</value>
</property>
</configuration>
保存退出
- 设置YARN运行环境$JAVA_HOME参数
(0 / 3分)
操作环境: master
vim yarn-env.sh
末尾(shift+g)插入以下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_171
- 设置YARN核心参数,指定ResourceManager进程所在主机为master,端口为18141;指定mapreduce 获取数据的方式为mapreduce_shuffle
(0 / 5分)
操作环境: master
vim yarn-site.xml
ctrl+A 全选后,直接粘贴下面的内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.shuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 设置计算框架参数,指定MR运行在yarn上
(0 / 5分)
操作环境: master
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration></configuration>中插入以下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
![](https://img.haomeiwen.com/i5459353/a60da8702b27ed2c.png)
- 设置节点文件,要求master为主节点; slave1、slave2为子节点(0 / 2分)
操作环境: master、slave1、slave2
vim slaves
修改为:
slave1
slave2
保存退出后,修改 master
vim master
插入以下内容:
master
保存退出后,同步到 slave1 和slave2
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
操作环境: slave1、slave2
source /etc/profile
- 对文件系统进行格式化(0 / 5分)
操作环境: master
hadoop namenode -format
\14. 启动Hadoop集群查看各节点服务
(0 / 5分)
操作环境: master
cd /usr/hadoop/hadoop-2.7.7/
sbin/start-all.sh
- 查看集群运行状态是否正常(0 / 5分)
操作环境: master
jps
如果最后一步验证不通过,直接跳过
Hive集群安装
*安装数据库*
考核条件如下:
- 环境中已经安装mysql-community-server,关闭mysql开机自启服务(0.00 / 2分)
操作环境: slave2
卸载 系统自带的Mariadb
rpm -qa|grep mariadb
![](https://img.haomeiwen.com/i5459353/b8dc580c6299d37d.png)
如果执行完如果出现如上图所示,那么执行这个命令,注意版本号
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
mkdir -p /usr/mysql
tar -xvf /usr/package/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar -C /usr/mysql/
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
- 开启MySQL服务(0 / 2分)
操作环境: slave2
重载所有修改过的配置文件:
systemctl daemon-reload
开启服务:
systemctl start mysqld
开机自启:
systemctl enable mysqld
- 判断mysqld.log日志下是否生成初临时密码(0 / 2分)
操作环境: slave2
grep "temporary password" /var/log/mysqld.log
mysql -uroot -p
![](https://img.haomeiwen.com/i5459353/b282418932227143.png)
- 设置mysql数据库本地root用户密码为123456(0 / 2分)
操作环境: slave2
设置密码强度为低级:
set global validate_password_policy=0;
设置密码长度:
set global validate_password_length=4;
修改本地密码:
alter user 'root'@'localhost' identified by '123456';
退出数据库
exit;
以新密码登陆 MySQL:
mysql -uroot -p123456
创建用户:
create user 'root'@'%' identified by '123456';
允许远程连接:
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限:
flush privileges;
退出数据库
exit;
Hive基础环境配置
考核条件如下:
- 将Hive安装包解压到指定路径/usr/hive(安装包存放于/usr/package277/)(0 / 2分)
操作环境: master、slave1
mkdir /usr/hive
tar -zxvf /usr/package277/apache-hive-3.4.4-bin.tar.gz -C /usr/hive/
- 配置环境变量HIVE_HOME,将Hive安装路径中的bin目录加入PATH系统变量,注意生效变量
(0 / 2分)
操作环境: master
设置环境变量:
vim /etc/profile
添加以下内容:
#hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
生效环境变量:
source /etc/profile
scp -r /etc/profile root@slave1:/etc/
scp -r /usr/hive root@slave1:/usr/
操作环境: slave1
source /etc/profile
- 修改HIVE运行环境,配置Hadoop安装路径HADOOP_HOME(0 / 2分)
操作环境: master、slave1
- 修改HIVE运行环境,配置Hive配置文件存放路径HIVE_CONF_DIR
(0 / 2分)
操作环境: master、slave1
- 修改HIVE运行环境,配置Hive运行资源库路径HIVE_AUX_JARS_PATH
(0 / 2分)
操作环境: master、slave1
cd /usr/hive/apache-hive-3.4.4-bin/conf
cp -p hive-env.sh.template hive-env.sh
vim hive-env.sh
添加以下内容:
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export HIVE_CONF_DIR=/usr/hive/apache-hive-3.4.4-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-3.4.4-bin/lib
- 解决jline的版本冲突,将
HADOOP_HOME/share/hadoop/yarn/lib/下
(0 / 2分)
操作环境: master、slave1
cp /usr/hive/apache-hive-3.4.4-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/
rm -rf /usr/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/guava-11.0.2.jar
cp /usr/hive/apache-hive-3.4.4-bin/lib/guava-14.0.1.jar /usr/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/
*配置HIVE元数据至MySQL*
\1. 驱动JDBC拷贝至hive安装目录对应lib下(依赖包存放于/usr/package277/)
(0 / 3分)
**操作环境: slave2
cd /usr/package277/
scp mysql-connector-java-5.1.47-bin.jar root@slave1:/usr/hive/apache-hive-3.4.4-bin/lib
- 配置元数据数据存储位置为/user/hive_remote/warehouse
(0 / 3分)
操作环境: slave1
\3. 配置数据库连接为MySQL
(0 / 3分)
操作环境: slave1
\4. 配置连接JDBC的URL地址主机名及默认端口号3306,数据库为hive,如不存在自行创建,ssl连接方式为false
(0 / 3分)
操作环境: slave1
\5. 配置数据库连接用户
(0 / 3分)
操作环境: slave1
\6. 配置数据库连接密码(0 / 3分)
**操作环境: slave1 **
编辑hive-site.xml
/usr/hive/apache-hive-3.4.4-bin/conf
vim hive-site.xml
<configuration>
<!--Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!--数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateALL</name>
<value>true</value>
</property>
</configuration>
保存退出
配置HIVE客户端
\1. 配置元数据存储位置为/user/hive_remote/warehouse
(0 / 2分)
操作环境: master
\2. 关闭本地metastore模式
(0 / 2分)
操作环境: master
\3. 配置指向metastore服务的主机为slave1,端口为9083
(0 / 2分)
操作环境: master
/usr/hive/apache-hive-3.4.4-bin/conf
vim hive-site.xml
添加以下内容
<configuration>
<!--Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!---使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!--连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>
*启动Hive*
考核条件如下:
- 服务器端初始化数据库,启动metastore服务
(0 / 3分)
操作环境: master
cd /usr/hadoop/hadoop-2.7.7/
sbin/stop-all.sh
sbin/start-all.sh
操作环境: slave1
schematool -dbType mysql -initSchema
cd /usr/hive/apache-hive-3.4.4-bin
bin/hive --service metastore
- 客户端开启进入hive,创建hive数据库
(0 / 3分)
操作环境: master
cd /usr/hive/apache-hive-3.4.4-bin
bin/hive
出现hive>后执行show databases;进行测试
create database hive;
大数据处理与应用
- 修改云主机host文件,添加内网IP,对应映射名为hadoop000,实现云主机自身使用root用户ssh访问hadoop000免密登陆
(0.00 / 2分)
操作环境: Hadoop/Hive
vim /etc/hosts
添加以下内容
127.0.0.1 hadoop000
保存退出
ssh-keygen
cd .ssh
ls
cat id_rsa.pub >> authorized_keys
ssh-copy-id hadoop000
- 格式化HDFS文件系统
(0 / 2分)
操作环境: Hadoop/Hive
hadoop namenode -format
- 启动Hadoop集群
(0 / 2分)
操作环境: Hadoop/Hive
找打hadoop 的路径
whereis hadoop
根据路径
cd /usr/hadoop/hadoop-2.7.7/
sbin/start-all.sh
- 开启mysql服务
(0 / 2分)
操作环境: Hadoop/Hive
systemctl start mysqld
- 初始化Hive元数据库,进入Hive客户端,创建hive数据库
(0 / 2分)
操作环境: Hadoop/Hive
schematool -dbType mysql -initSchema
cd /usr/hive/apache-hive-3.4.4-bin
bin/hive --service metastore
bin/hive
出现Hive后
create database hive;
网友评论