大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!!
本次为师傅们带来的是“红亚杯”大数据环境搭建与数据采集技能线上专题赛——满分解析系列的第①期,让我们先来看看完整赛题叭!
目录
“红亚杯”——大数据环境搭建与数据采集技能线上专题赛
本专题赛主要内容包括基础配置、JDK安装配置,Hadoop集群搭建,zookeeper集群搭建,Hive集群搭建,以闯关游戏化方式考核学生对大数据集群环境使用与管理能力。
集群安装搭建(70 / 70分)
1.比赛框架
本次比赛为分布式集群搭建,共三台节点,其中master作为主节点,slave1、salve2为从节点;
2.比赛内容
-
基础配置:修改主机名、主机映射、时区修改、时间同步、定时任务、免密访问;
-
JDK安装:环境变量;
-
Zookeeper部署:环境变量、配置文件zoo.cfg、myid;
-
Hadoop部署:环境变量、配置文件修改、设置节点文件、格式化、开启集群;
-
Hive部署:Mysql数据库配置、服务器端配置、客户端配置。
3.版本说明
内置安装/依赖包(/usr/package) | 已安装服务 | 系统版本 |
---|---|---|
hadoop-2.7.3.tar.gz | ntp | CentOS Linux release 7.3.1611 (Core) |
zookeeper-3.4.10.tar.gz | mysql-community-server | |
apache-hive-2.1.1-bin.tar.gz | ||
jdk-8u171-linux-x64.tar.gz | ||
mysql-connector-java-5.1.47-bin.jar |
core-site.xml参数配置详情
官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml
core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值
属性 | 值 | 说明 |
---|---|---|
fs.default.name | hdfs://???? | 定义master的URI和端口 |
hadoop.tmp.dir | /???? | 临时文件夹,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务。 |
hdfs-site.xml参数配置详情
属性 | 值 | 说明 |
---|---|---|
dfs.replication | ??? | hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。 |
dfs.namenode.name.dir | file:/usr/hadoop/hadoop-2.7.3/hdfs/???? | NN所使用的元数据保存 |
dfs.datanode.data.dir | file:/usr/hadoop/hadoop-2.7.3/hdfs/???? | 真正的datanode数据保存路径,可以写多块硬盘,逗号分隔 |
yarn-site.xml参数配置详情
属性 | 值 | 说明 |
---|---|---|
yarn.resourcemanager.admin.address | ${yarn.resourcemanager.hostname}:18141 | ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。 |
yarn.nodemanager.aux-services | mapreduce_shuffle | NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 |
mapred-site.xml参数配置详情
属性 | 值 | 说明 |
---|---|---|
mapreduce.framework.name | yarn | 指定MR运行框架,默认为local |
基础环境配置(20 / 20分)
前提说明
-
相关安装包已经存放至环境/usr/package/中
-
对应ntp和mysql已安装,可直接对其进行操作和配置
1.修改主机名,便于识别节点; 2.工具包已保存在环境中; 3.修改hosts文件,添加集群节点映射,按照给出的节点IP和对应的主机名进行设置; 4.要求各节点时区修改为中国时区( 中国标准时间CST+8) 5.安装ntp服务,要求主节点master为本地时钟源,从节点设置定时任务同步本地时间; 6.集群中数据传输需要节点之间免密访问,要求设置主节点之间到从节点的免密访问; 7.Hadoop技术基于Java语言,要求本地源下载对应安装包进行安装配置,注意安装路径要求,无需更改文件名,注意添加环境变量。
考核条件如下:
1. 修改主机名(分别为master、slave1、slave2,临时生效即可,无需重启环境)(1.00 / 1分)
操作环境: master、slave1、slave2
2. 判断是否关闭防火墙(1.00 / 1分)
操作环境: master、slave1、slave2
3. hosts文件添加映射(内网IP)(1.00 / 1分)
操作环境: master、slave1、slave2
4. 时区更改(中国时区)(1.00 / 1分)
操作环境: master、slave1、slave2
5. 确认NTP服务(环境中已经安装)(1.00 / 1分)
操作环境: master、slave1、slave2
6. 屏蔽默认server,设置master为本地时钟源,服务器层级设为10(1.00 / 1分)
操作环境: master
7. 主节点开启NTP服务(1.00 / 1分)
操作环境: master
8. 从节点在早十-晚五时间段内每隔半个小时同步一次主节点时间(24小时制、用户root任务调度crontab)(1.00 / 1分)
操作环境: slave1、slave2
9. 实现主机自身localhost免密访问(内回环)(2.00 / 2分)
操作环境: master
10. 主节点生成公钥文件(数字签名RSA,用户root,主机名master)(1.00 / 1分)
操作环境: master
11. 实现master对slave1的免密登陆(2.00 / 2分)
操作环境: master
12. 实现master到slave2的免密访问(2.00 / 2分)
操作环境: master
13. 将jdk安装包解压到/usr/java目录(安装包存放于/usr/package/,解压后路径不做修改,默认为/usr/java/jdk1.8.0_171,其他安装同理)(2.00 / 2分)
操作环境: master、slave1、slave2
14. /etc/profile中配置JAVA系统环境变量($JAVA_HOME)(1.00 / 1分)
操作环境: master、slave1、slave2
15. 验证jdk是否安装成功(2.00 / 2分)
操作环境: master、slave1、slave2
Zookeeper集群环境搭建(20 / 20分)
Zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
1.配置文件参考:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=????
# 配置数据存储路径
????
# 配置日志文件路径
????
# 配置集群列表
server.1=????
server.2=????
server.3=????
2.Zookeeper一共有三个端口供使用:
2181:对clinet端提供服务 2888:集群内机器通讯使用(Leader监听此端口) 3888:选举leader
3.配置集群时,端口使用如下:
使用server.A=B:C:D A:表示一个数字,这个数字表示第几个服务器,对应myid文件中的序号 B:服务器地址,也就是ip地址 C:本台服务器与集群中的leader服务器交换信息端口 D:如果leader挂了就需要这个端口重新选举
考核条件如下:
1. 将zoo安装包解压到指定路径/usr/zookeeper(安装包存放于/usr/package/)(1.00 / 1分)
操作环境: master、slave1、slave2
2. 配置zookeeper系统环境变量($ZOOKEEPER_HOME)(1.00 / 1分)
操作环境: master、slave1、slave2
3. 修改配置文件zoo.cfg(1.00 / 1分)
操作环境: master、slave1、slave2
4. 设置数据存储路径(dataDir)为/usr/zookeeper/zookeeper-3.4.10/zkdata(1.00 / 1分)
操作环境: master、slave2、slave1
5. 设置日志文件路径(dataLogDir)为/usr/zookeeper/zookeeper-3.4.10/zkdatalog(1.00 / 1分)
操作环境: master、slave1、slave2
6. 设置集群列表(master为1号服务器,slave1为2号,slave2为3号)(2.00 / 2分)
操作环境: master、slave1、slave2
7. 创建所需数据存储文件夹(2.00 / 2分)
操作环境: master、slave1、slave2
8. 创建所需日志存储文件夹(2.00 / 2分)
操作环境: master、slave1、slave2
9. 数据存储路径下创建myid,写入对应的标识主机服务器序号(2.00 / 2分)
操作环境: master、slave1、slave2
10. 启动zookeeper服务(2.00 / 2分)
操作环境: master、slave1、slave2
11. 查看zoo集群状态(5.00 / 5分)
操作环境: master、slave1、slave2
Hadoop完全分布式集群搭建(30 / 30分)
Hadoop是由Java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。
-
HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。
-
MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。
配置文件 | 配置对象 | 主要内容 |
---|---|---|
hadoop-env.sh | hadoop运行环境 | 用来定义Hadoop运行环境相关的配置信息; |
core-site.xml | 集群全局参数 | 定义系统级别的参数,包括HDFS URL、Hadoop临时目录等; |
hdfs-site.xml | HDFS参数 | 定义名称节点、数据节点的存放位置、文本副本的个数、文件读取权限等; |
mapred-site.xml | MapReduce参数 | 包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等; |
yarn-site.xml | 集群资源管理系统参数 | 配置ResourceManager ,nodeManager的通信端口,web监控端口等; |
Hadoop的配置类是由资源指定的,资源可以由一个String或Path来指定,资源以XML形式的数据表示,由一系列的键值对组成。资源可以用String或path命名(示例如下),
-
String:指示hadoop在classpath中查找该资源;
-
Path:指示hadoop在本地文件系统中查找该资源。
<configuration>
<property>
<name>fs.default.name</name>
<value>????</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>????</value>
</property>
</configuration>
考核条件如下:
1. 将Hadoop安装包解压到指定路径/usr/hadoop(安装包存放于/usr/package/)(1.00 / 1分)
操作环境: master、slave1、slave2
2. 配置Hadoop环境变量,注意生效($HADOOP_HOME)(2.00 / 2分)
操作环境: master、slave1、slave2
3. 配置Hadoop运行环境JAVA_HOME(1.00 / 1分)
操作环境: master、slave1、slave2
4. 设置全局参数,指定NN的IP为master(映射名),端口为9000(1.00 / 1分)
操作环境: master、slave1、slave2
5. 指定存放临时数据的目录为hadoop安装目录下/hdfs/tmp(绝对路径,下同)(2.00 / 2分)
操作环境: master、slave1、slave2
6. 设置HDFS参数,指定备份文本数量为2(2.00 / 2分)
操作环境: master、slave1、slave2
7. 设置HDFS参数,指定NN存放元数据信息路径为hadoop目录下/hdfs/name(2.00 / 2分)
操作环境: master、slave1、slave2
8. 设置HDFS参数,指定DN存放元数据信息路径为hadoop安装目录下/hdfs/data(2.00 / 2分)
操作环境: slave1、master、slave2
9. 设置YARN运行环境JAVA_HOME参数(2.00 / 2分)
操作环境: master、slave1、slave2
10. 设置YARN核心参数,指定ResourceManager进程所在主机为master,端口为18141(2.00 / 2分)
操作环境: master、slave1、slave2
11. 设置YARN核心参数,指定NodeManager上运行的附属服务为shuffle(2.00 / 2分)
操作环境: master、slave1、slave2
12. 设置计算框架参数,指定MR运行在yarn上(2.00 / 2分)
操作环境: master、slave1、slave2
13. 设置节点文件,要求master为主节点; slave1、slave2为子节点(2.00 / 2分)
操作环境: master、slave1、slave2
14. 文件系统格式化(2.00 / 2分)
操作环境: master
15. 启动Hadoop集群(5.00 / 5分)
操作环境: master、slave1、slave2
构建数据仓库(30 / 30分)
1.比赛框架
本次比赛为分布式集群搭建,共三台节点,其中master作为主节点,slave1、salve2为从节点;
2.比赛内容
-
基础配置:修改主机名、主机映射、时区修改、时间同步、定时任务、免密访问;
-
JDK安装:环境变量;
-
Zookeeper部署:环境变量、配置文件zoo.cfg、myid;
-
Hadoop部署:环境变量、配置文件修改、设置节点文件、格式化、开启集群;
-
Hive部署:Mysql数据库配置、服务器端配置、客户端配置。
3.版本说明
内置安装/依赖包(/usr/package) | 已安装服务 | 系统版本 |
---|---|---|
hadoop-2.7.3.tar.gz | ntp | CentOS Linux release 7.3.1611 (Core) |
zookeeper-3.4.10.tar.gz | mysql-community-server | |
apache-hive-2.1.1-bin.tar.gz | ||
jdk-8u171-linux-x64.tar.gz | ||
mysql-connector-java-5.1.47-bin.jar |
4.数据仓库架构说明
集群中使用远程模式,使用外部数据库MySQL用于存储元数据,使用client/thrift server的连接方式进行访问。其中slave2节mysql数据库,slave1作为hive服务器端,master作为hive客户端。
安装数据库(5 / 5分)
前提说明
-
相关安装包已经存放至环境/usr/package/中
-
对应ntp和mysql已安装,可直接对其进行操作和配置
1.环境中已经安装mysql-community-server,注意mysql5.7默认安装后为root用户随机生成一个密码;
-
直接查看密码:grep "temporary password" /var/log/mysqld.log
-
登入数据库:mysql -uroot -p
-
输入随机密码即可登录
2.根据要求设置密码,注意对应的安全策略修改;
-
设置密码强度为低级:set global validate_password_policy=????;
-
设置密码长度:set global validate_password_length=????;
-
修改本地密码:alter user 'root'@'localhost' identified by '????';
3.根据要求满足任意主机节点root的远程访问权限(否则后续hive无法连接mysql);
-
GRANT ALL PRIVILEGES ON . TO '????'@'%' IDENTIFIED BY '????' WITH GRANT OPTION;
4.注意刷新权限;
-
flush privileges;
5.参考命令
-
启动mysql服务:sudo systemctl start mysqld.service
-
关闭mysql服务:sudo systemctl stop mysqld.service
-
查看mysql服务:sudo systemctl status mysqld.service
考核条件如下:
1. 判断是否安装mysql-community-server(1.00 / 1分)
操作环境: slave2
2. 判断是否开启MySQL服务(1.00 / 1分)
操作环境: slave2
3. mysqld.log日志下生成初临时密码(1.00 / 1分)
操作环境: slave2
4. 设置MySQL本地root用户密码为123456(2.00 / 2分)
操作环境: slave2
Hive基础环境配置(8 / 8分)
Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。
1.讲指定版本的Hive安装包解压到指定路径,添加系统并生效; 2.修改Hive运行环境
# 配置Hadoop安装路径
export HADOOP_HOME=????
# 配置Hive配置文件存放路径为conf
export HIVE_CONF_DIR=????
# 配置Hive运行资源库路径为lib
export HIVE_AUX_JARS_PATH=????
3.由于客户端需要和Hadoop通信,为避免jline版本冲突问题,将Hive中lib/jline-2.12.jar拷贝到Hadoop中,保留高版本.
考核条件如下:
1. 将Hive安装包解压到指定路径/usr/hive(安装包存放于/usr/package/)(2.00 / 2分)
操作环境: master、slave1
2. 设置HIVE系统环境变量($HIVE_HOME)(2.00 / 2分)
操作环境: master、slave1
3. 设置HIVE运行环境(2.00 / 2分)
操作环境: master、slave1
4. 解决jline的版本冲突(2.00 / 2分)
操作环境: master、slave1
配置HIVE元数据至MySQL(9 / 9分)
1.slave1作为服务器端需要和Mysql通信,所以服务端需要将Mysql的依赖包放在Hive的lib目录下。 mysql-connector-java是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。
2.配置文件参考:
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>????</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>????</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://????:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>????</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>????</value>
</property>
</configuration>
考核条件如下:
1. 驱动拷贝(依赖包存放于/usr/package/)(2.00 / 2分)
操作环境: slave1
2. 配置元数据数据存储位置为/user/hive_remote/warehouse(1.00 / 1分)
操作环境: slave1
3. 配置数据库连接驱动为MySQL(2.00 / 2分)
操作环境: slave1
4. 配置连接JDBC的URL地址主机名及默认端口号3306,数据库为hive,如不存在自行创建,ssl连接方式为false(2.00 / 2分)
操作环境: slave1
5. 配置数据库连接用户(1.00 / 1分)
操作环境: slave1
6. 配置数据库连接密码(1.00 / 1分)
操作环境: slave1
配置HIVE客户端(3 / 3分)
1.master作为客户端,可进入终端进行操作; 2.关闭本地模式; 3.将hive.metastore.uris指向metastore服务器URL; 4.配置文件参考:
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>????</value>
</property>
<!--- 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>????</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://????</value>
</property>
</configuration>
考核条件如下:
1. 配置元数据存储位置为/user/hive_remote/warehouse(1.00 / 1分)
操作环境: master
2. 关闭本地metastore模式(1.00 / 1分)
操作环境: master
3. 配置指向metastore服务的主机为slave1,端口为9083(1.00 / 1分)
操作环境: master
启动Hive(5 / 5分)
1.服务器端初始化数据库,并启动metastore服务; 2.客户端开启Hive client,即可根据创建相关数据操作。
考核条件如下:
1. 初始化数据库,启动metastore服务,开启客户端(5.00 / 5分)
操作环境: slave1、maste