IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2021-10-17 -> 正文阅读

[人工智能]2021-10-17

数据竞赛本地源介绍 .................................................................................................................1
大数据竞赛题目操作手册 .........................................................................................................2
基础部分 .....................................................................................................................................2
1 、基础搭建 .......................................................................................................................2
1.1 更改本地源 ...........................................................................................................2
1.2 配置 hosts 文件 ....................................................................................................2
1.3 关闭防火墙 ..........................................................................................................3
1.4 时间同步 ..............................................................................................................3
1.5 下载 ntp.................................................................................................................4
1.6 制作定时任务 ......................................................................................................5
1.5 配置 ssh 免密 .......................................................................................................6
2 、安装 JDK ......................................................................................................................6
3 、安装 zookeeper.............................................................................................................7
3.1 下载软件 ..............................................................................................................7
3.2 配置 zookeeper 环境变量 ...................................................................................7
3.3 配置文件 zoo.cfg.................................................................................................8
3.4 启动 ZooKeeper 集群 ...........................................................................................9
4 、安装 hadoop..................................................................................................................9
4.1 解压安装包,配置环境变量 ..............................................................................9
4.2 配置 hadoop 各组件 ..........................................................................................10
5 、安装 hive.....................................................................................................................14
5.1slave2 上安装 MySQL server..............................................................................14
5.2 数据仓库下载安装 .............................................................................................16
5.3 hive 元数据配置到 MySQL( 服务器端 slave1 ..............................................17
5.4 Master 作为客户端配置 hive.............................................................................18
5.7 成功启动 Hive....................................................................................................18
10. 数据分及可视化 ..........................................................................................................20
10.1 共享单车数据分析 ...........................................................................................20
11. 数据抓取 ......................................................................................................................25
11.1 提供爬虫环境 ...................................................................................................25
11.2 数据爬取要求 ...................................................................................................26
12. 报错说明及对应修改方式 ............................................................. 错误 ! 未定义书签。 2019 年第二届全国大学生大数据技能竞赛
1
数据竞赛本地源介绍
本次比赛提供相应的软件压缩包以及相关的 xml 配置文件、数据集,其地址为
内网地址: http://172.16.47.240/bigdata/ (用于实验中下载对应软件,以下源地址使用内网 IP
外网地址: http://39.101.211.115/bigdata/ (供浏览器访问查看具体路径及内容)
相关安装软件、 xml 配置文件 Bigdata_Conf.tar.gz 的路径在 bigdata_tar/ 下。
注意:配置文件需要自己修改。
MySQL Server yum 源路径为 http://172.16.47.240/bigdata/repofile ,这里直接提供 repo
文件为 bigdata.repo ,直接将其下载至 /etc/yum/repos.d/ 即可,然后就可以下载 MySQL Server 2019 年第二届全国大学生大数据技能竞赛
大数据竞赛题目操作手册
基础部分
1 、基础搭建
本次集群搭建共有三个节点,包括一个主节点 master ,和两个从节点 slave1 slave2
具体操作如下:
1.1 更改本地源
1. 使用本地 Windows 操作机提供的 Xshell MobaXterm 连接比赛平台所提供的 master
slave1 slave2 三台机器,并按照比赛平台提供的 linux 用户和密码进行登录,登录成功后开
始进行接下来的比赛。
注意连接工具没有在桌面上,点击(或者键入)左下角“ windows ”,即可看到连接工具。
? 修改主机名: hostnamectl set-hostname master (在 master 执行)
? 立即生效: bash
同理修改 slave1 slave2 的主机名。
? hostnamectl set-hostname slave1 (在 slave1 执行)
? hostnamectl set-hostname slave2 (在 slave2 执行)
2. 配置本地源。通过比赛平台提供源文件下载路径,将本地源文件下载到 /etc/yum.repos.d/
目录下(三台机器都执行)。
? 发信号给 yum 进程: pkill -9 yum
? 进入 yum 源配置文件: cd /etc/yum.repos.d
? 删除所有文件: rm -rf *
? 下载 yum 源: wget http://172.16.47.240/bigdata/repofile/bigdata.repo
? 清除 YUM 缓存: yum clean all
1.2 配置 hosts 文件
可以通过 ifconfig 命令进行查看机器的 ip 地址或者直接输入比赛平台提供的 ip 地址。
查看节点地址之后将三个节点的 ip 地址以及其对应的名称写进 hosts 文件。这里我们设
置为 master slave1 slave2 。注意保存退出。
? vim /etc/hosts (三台机器都执行)
2 2019 年第二届全国大学生大数据技能竞赛
1.3 关闭防火墙
? 关闭防火墙: systemctl stop firewalld
? 查看状态: systemctl status firewalld
注意:当环境重置之后,防火墙会自动开启。
1.4 时间同步
? 选择时区: tzselect
3 2019 年第二届全国大学生大数据技能竞赛
4
给出相应的提示之后,将时间设置写入环境变量。
? echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile
1.5 下载 ntp
? yum install -y ntp
批注 [U1]: 考核
rpm -qa | grep ntp 2019 年第二届全国大学生大数据技能竞赛
5
master 作为 ntp 服务器:
修改 ntp 配置文件。屏蔽掉默认的 server ,设置 master 作为局域网内时钟源,设置时间
服务器的层级为 10 ,为集群主机提供时间服务。
? vim /etc/ntp.conf
# 注释掉 server 0 ~ n
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #stratum 设置为其它值也是可以的,其范围为 0~15
修改后注意保存退出。
重启 ntp 服务 (master 上执行 )
? /bin/systemctl restart ntpd.service
其他机器进行同步(在 slave1 slave2 中执行)
? ntpdate master
1.6 制作定时任务
确保 crontab 服务开启:
service crond status
/sbin/service crond start
要求:从节点( slave1 slave2 )在早八晚五时间段每隔半个小时同步一次时间
? crontab -e
? 输入 i
? 添加定时任务: */30 8-17 * * * /usr/sbin/ntpdate master
批注 [U2]: 添加考核
服务器配置
批注 [U3]: restrict
作用:对 ntp 做权限控制
ignore :忽略所有类型的 NTP 连接请求
nomodify :限制客户端不能使用命令 ntpc ntpq 来修改服
务器端的时间
noquery :不提供 NTP 网络校时服务
notrap :不接受远程登录请求
notrust :不接受没有经过认证的客户端的请求
【如果没有用任何参数,那么表示不做任何限制】
# 开放本机的任何访问
restrict 127.0.0.1
restrict -6 ::1
restrict 10.220.5.0 mask 255.255.255.0 nomodify
<<<允许 10.220.5.0/24 网段主机进行时间同步
server
作用:指定 ntp 服务器的地址
格式:server [ip or hostname] [perfer]
例子:server 127.127.1.0 <<<将当前主机作为时间服务
fudge
作用:设置时间服务器的层级
格式: fudge ip [startnum int]
例子: fudge 10.225.5.1 startnum 10
注意: fudge 必须和 server 一块用, 而且是在 server
下一行
startnum
0~15
0 :表示顶级
10 :通常用于给局域网主机提供时间服务
批注 [U4]: 是否同步 ;
history
关键字: ntpdate master 2019 年第二届全国大学生大数据技能竞赛
? 查看定时任务列表: crontab –l
1.5 配置 ssh 免密
1. master 上执行如下命令生成公私密钥: (注意 master 上执行)
? ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2. 然后将公钥文件内容添加到授权文件。
? cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys
可以将 master 授权文件复制到 slave1 slave2 信任授权设置。
? scp ~/.ssh/authorized_keys root@slave1:~/.ssh/
? scp ~/.ssh/authorized_keys root@slave2:~/.ssh/
注意: SSH 只需要 namenode datanode 之间通信, datanode 之间并没有交互,所以
SSH 公钥只需要 namenode datanode 之间交换。
2 、安装 JDK
以下操作为先在 master 上操作,然后远程复制到 slave1 slave2 。参赛选手仅供参考。
首先在根目录下建立工作路径 /usr/java
? mkdir -p /usr/java
进入创建的 java 工作路径。
? cd /usr/java
下载 java 安装包 (master 上执行 )
? wget http://172.16.47.240/bigdata/bigdata_tar/jdk-8u171-linux-x64.tar.gz
? tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/
? rm -rf /usr/java/jdk-8u171-linux-x64.tar.gz
? 修改环境变量: vim /etc/profile
添加内容如下:
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
6 2019 年第二届全国大学生大数据技能竞赛
7
? 生效环境变量: source /etc/profile
? 查看 java 版本: java -version
master 中将 JDK 复制到 slave1 slave2 中。(在 master 执行)
? scp -r /usr/java root@slave1:/usr/
? scp -r /usr/java root@slave2:/usr/
注意:此时需要去 slave1 slave2 上配置 java 的环境变量,并使环境变量生效。
3 、安装 zookeeper
3.1 下载软件
创建工作路径 /usr/zookeeper ,下载相应软件,解压至工作路径。
mkdir -p /usr/zookeeper && cd /usr/zookeeper
wget http://172.16.47.240/bigdata/bigdata_tar/zookeeper-3.4.10.tar.gz
tar -zxvf /usr/zookeeper/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/
rm -rf /usr/zookeeper/zookeeper-3.4.10.tar.gz
3.2 配置 zookeeper 环境变量
? vi /etc/profile
#zookeeper
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
PATH=$PATH:$ZOOKEEPER_HOME/bin
? 生效环境变量: source /etc/profile 2019 年第二届全国大学生大数据技能竞赛
3.3 配置文件 zoo.cfg
1. 进入 zookeeper 配置文件夹 conf ,将 zoo_sample.cfg 文件拷贝一份命名为 zoo.cfg
Zookeeper 在启动时会找这个文件作为默认配置文件。
? cd /usr/zookeeper/zookeeper-3.4.10/conf/ && mv zoo_sample.cfg zoo.cfg && vim
zoo.cfg
2. zoo.cfg 文件配置如下:
? vim zoo.cfg
修改如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
3. zookeeper 的目录中,创建配置中所需的 zkdata zkdatalog 两个文件夹。(在 master
执行)
? cd /usr/zookeeper/zookeeper-3.4.10 && mkdir zkdata zkdatalog
8 2019 年第二届全国大学生大数据技能竞赛
4. 进入 zkdata 文件夹,创建文件 myid ,用于表示是几号服务器,用来标识当前主机。 master
主机中,设置服务器 id 1 。(集群中设置 master 1 号服务器, slave1 2 号服务器, slave2
3 号服务器)
? cd /usr/zookeeper/zookeeper-3.4.10/zkdata
? echo 1 >> myid
3.4 启动 ZooKeeper 集群
ZooKeeper 集群的每个结点上,执行启动 ZooKeeper 服务的脚本。 注意在 zookeeper
目录下:(三台机器都执行)
? 开启服务: zkServer.sh start
? 查看状态: zkServer.sh status
通过上面状态查询结果可见,一个节点是 Leader ,其余的结点是 Follower
至此, zookeeper 安装成功。
4 、安装 hadoop
以下步骤逻辑仅供选手参考:即 hadoop 安装同样在主节点 master 上进行配置操作,然
后将文件复制到到子节点 slave1 slave2
4.1 解压安装包,配置环境变量
1. 创建工作路径 /usr/hadoop ,下载相应软件,解压至工作路径。
? mkdir -p /usr/hadoop && cd /usr/hadoop
? wget http://172.16.47.240/bigdata/bigdata_tar/hadoop-2.7.3.tar.gz
? tar -zxvf /usr/hadoop/hadoop-2.7.3.tar.gz -C /usr/hadoop/
? rm -rf /usr/hadoop/hadoop-2.7.3.tar.gz
9 2019 年第二届全国大学生大数据技能竞赛
10
2. 添加 hadoop 环境变量(三台机器执行)
? vim /etc/profile
添加如下内容:
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使用以下命令使 profile 生效:
? source /etc/profile
4.2 配置 hadoop 各组件
hadoop 的各个组件的都是使用 XML 进行配置,这些文件存放在 hadoop etc/hadoop
录下。
配置文件
配置对象
主要内容
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 监控端口等;
1. hadoop-env.sh 运行环境
? cd $HADOOP_HOME/etc/hadoop
? vim hadoop-env.sh
输入以下内容,修改 java 环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_171
? 也可以直接输入命令: echo "export JAVA_HOME=/usr/java/jdk1.8.0_171" >> hadoop-env.sh
键入“ Esc ”,退出编辑模式,使用命令“ :wq ”进行保存退出。
2. core-site.xml 全局参数
? vim core-site.xml
<configuration> 2019 年第二届全国大学生大数据技能竞赛
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.7.3/hdfs/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>
master :在主节点的 ip 或者映射名。
9000 :主节点和从节点配置的端口都是 9000
3. hdfs-site.xml 配置文件
dfs.replication :因为 hadoop 是具有可靠性的,它会备份多个文本,这里 value 就是指备
份的数量(小于等于从节点的数量)。
<configuration></configuration> 中加入以下代码:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
</property>
4. YARN 框架运行环境
找到 JAVA_HOME 参数位置,将前面的 # 去掉,将其值修改为本机安装的 JDK 的实际位
11 2019 年第二届全国大学生大数据技能竞赛
置。
vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171
也可以直接输入命令:
echo "export JAVA_HOME=/usr/java/jdk1.8.0_171" >> yarn-env.sh
5. YARN 框架的核心配置
YARN 框架的核心配置文件,用于配置 YARN 进程及 YARN 的相关属性。
首先需要指定 ResourceManager 守护进程所在主机,默认为 0.0.0.0 ,即当前设备,所以
这里指定为 master ,端口为 18141
其次需要设置 NodeManager 上运行的辅助服务,需配置成 mapreduce_shuffle 才可运行
MapReduce 程序。
<configuration></configuration> 中加入以下代码:
<!-- 指定 ResourceManager 的地址 -->
<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>
<!-- 指定 reducer 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
12 2019 年第二届全国大学生大数据技能竞赛
13
</property>
6. 编辑配置计算框架
该文件是 MapReduce 的核心配置文件,用于指定 MapReduce 运行时框架。
? cp mapred-site.xml.template mapred-site.xml && vim mapred-site.xml
<configuration></configuration> 中加入以下代码:
<property>
<!-- 指定 Mapreduce 运行在 yarn -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
注意保存退出。
7. 编写 slaves master 文件
编写 slaves 文件,添加子节点 slave1 slave2
编写 master 文件,添加主节点 master
? echo master > master && echo slave1 > slaves && echo slave2 >> slaves
8. 格式化 hadoop
? 格式化 namenode hadoop namenode -format ( 仅在 master 中进行操作 )
当出现“ Storage directory /usr/hadoop/hadoop-2.7.3/hdfs/name has been successfully
formatted. ”的时候,表明格式化成功。
9. 开启 hadoop 集群
仅在 master 主机上开启操作命令。它会带起从节点的启动。 (仅在 master 中进行操作)
? 主节点开启服务: start-all.sh
批注 [U5]: 考核
批注 [U6]:
再次之前
分发 hadoop 文件到 slave1 slave2 两个子节点
? scp -r /usr/hadoop root@slave1:/usr/
? scp -r /usr/hadoop root@slave2:/usr/
格式化本质是进行文件系统的初始化操作,创建一些
hadoop 自己所需要的文件。 2019 年第二届全国大学生大数据技能竞赛
14
使用 hadoop 命令“
hadoop fs ”进行相关操作。
5 、安装 hive
实验中我们选用 hive 的远程模式, slave2 安装 mysql server 用于存放元数据, slave1 作为
hive server 作为 thrift 服务器, master 作为 client 客户端进行操作。
5.1slave2 上安装 MySQL server
1. 配置过本地源了,安装 MySQL Server
? 安装 MySQL yum -y install mysql-community-server
2. 启动服务
? 重载所有修改过的配置文件: systemctl daemon-reload
? 开启服务: systemctl start mysqld
? 开机自启: systemctl enable mysqld
3. 登陆 MySQL
安装完毕后, MySQL 会在 /var/log/mysqld.log 这个文件中会自动生成一个随机的密码,
获取得这个随机密码,以用于登录 MySQL 数据库:
? 获取初密码: grep "temporary password" /var/log/mysqld.log
? 登陆 MySQL mysql -uroot -p (注意中英文)
批注 [U7]: 第一次启动后会有个初始化的过程,会产生
root 账户的随机密码
批注 [U8]: 删除此考核 2019 年第二届全国大学生大数据技能竞赛
15
4.MySQL 密码安全策略设置
? 设置密码强度为低级: set global validate_password_policy=0;
? 设置密码长度: set global validate_password_length=4;
? 修改本地密码: alter user 'root'@'localhost' identified by '123456';
? 退出: \q
密码强度分级如下:
? 0 low 级别,只检查长度;
? 1 medium 级别(默认),符合长度为 8 ,且必须含有数字,大小写,特殊字符 ;
? 2 strong 级别,密码难度更大一些,需要包括字典文件。
? 密码长度最低长为 4 ,当设置长度为 1 2 3 时,其长度依然为 4
5. 设置远程登录
?
以新密码登陆 MySQL mysql -uroot -p123456
? 创建用户: create user 'root'@'%' identified by '123456';
? 允许远程连接: grant all privileges on *.* to 'root'@'%' with grant option;
? 刷新权限: flush privileges;
批注 [U9]: host 字段的值改为 % 就表示 在任何客户端
机器上能以 root 用户登录到 MySQL 服务器 ,建议在开
发时设为 % 2019 年第二届全国大学生大数据技能竞赛
6. 创建数据库 hongyaa
5.2 数据仓库下载安装
1. 下载解压
同样 slave1 上建立文件夹 /usr/hive ,然后 master 中将安装包远程复制到 slave1
? mkdir -p /usr/hive && cd /usr/hive
? wget http://172.16.47.240/bigdata/bigdata_tar/apache-hive-2.1.1-bin.tar.gz
? tar -zxvf /usr/hive/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
? rm -rf /usr/hive/apache-hive-2.1.1-bin.tar.gz
也可以使用如下命令:
? mkdir -p /usr/hive && cd /usr/hive/ && wget
http://172.16.47.240/bigdata/bigdata_tar/apache-hive-2.1.1-bin.tar.gz && tar -zxvf
/usr/hive/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/ && rm -rf
/usr/hive/apache-hive-2.1.1-bin.tar.gz
2. 设置系统变量
修改 /etc/profile 文件设置 hive 环境变量。( master slave1 都执行)
? vim /etc/profile
#hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
? 生效环境变量: source /etc/profile
3. 设置 HIVE 运行环境
? cd $HIVE_HOME/conf && vim hive-env.sh
对应设置如下:
# 配置 Hadoop 安装路径
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
# 配置 Hive 配置文件存放路径
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
# 配置 Hive 运行资源库路径
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib
4. jline 版本冲突问题
由于客户端需要和 hadoop 通信,所以需要更改 Hadoop jline 的版本,即保留一个高版
本的 jline-jar 包。
? cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/
16 2019 年第二届全国大学生大数据技能竞赛
5.3 hive 元数据配置到 MySQL( 服务器端 slave1
1. 驱动拷贝
因为服务端需要和 Mysql 通信,所以服务端需要将 Mysql 的依赖包放在 Hive lib 目录
下。
mysql-connector-java MySQL JDBC 驱动包,用 JDBC 连接 MySQL 数据库时必须使
用该 jar 包。
? cd $HIVE_HOME/lib && wget
http://172.16.47.240/bigdata/bigdata_tar/mysql-connector-java-5.1.47-bin.jar
2. Slave1 作为服务器端配置 hive
? cd $HIVE_HOME/conf
hive 配置可以参考官方文档:
https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
修改 hive-site.xml 文件
<configuration>
<!-- Hive 产生的元数据存放位置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!-- 数据库连接 driver ,即 MySQL 驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 数据库连接 JDBC URL 地址 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&useSSL=false</v
alue>
</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>
17 2019 年第二届全国大学生大数据技能竞赛
18
</configuration>
5.4 Master 作为客户端配置 hive
slave1 中配置方式类似,直接进入 conf ,进行设置。
Hive 服务和 metastore 在不同的进程内,可能是不同的机器,该模式需要将
hive.metastore.local 设置为 false
hive.metastore.uris 设置 metastore 服务器 URL ,端口设定为 9083
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>
5.7 成功启动 Hive
1. 初始化数据库
slave1 上:
? schematool -dbType mysql -initSchema
2. 启动 hive server 服务
设置成远程模式之后必须保证先启动 metastore 服务或者进程,之后才能进行开启客户端。
? hive --service metastore (注意空格)
3. 启动 hive client
? hive
批注 [U10]: 去除
批注 [U11]: Hive 服务和 metastore 在不同的进程内,
可能是不同的机器,该模式需要将 hive.metastore.local
设置为 false ,将 hive.metastore.uris 设置为
metastore 服务器 URL
批注 [U12]: 指向 metastore 服务的主机 2019 年第二届全国大学生大数据技能竞赛
19
创建数据库 hongyaa
? hive>create database hongyaa; 2019 年第二届全国大学生大数据技能竞赛
备注:以下步骤可自行选择前后顺序。
6. 数据分及可视化
本次比赛数据为两部分: bike.csv ,路径为: /root/college(master 主机 )
6.1 共享单车数据分析
数据说明
本数据为某年某段时间某地区的共享单车数据集,可以适用于大数据分析和挖掘。通过
对共享单车的骑行规律,用户群体,单日活月用户等数据的分析,给出运营思路和方法上的
建议,对共享单车的发展有一个整体的把握。基于对数据的分析,可以进行活动推广、会员
特定优惠,也可进行专线共享大巴等活动策划。
数据文件中字段对应的含义如下:
骑行时间(毫秒为单位): duration (ms)
开始时间: startdate
结束时间: enddate
开始地点数: startnum
开始地点: startstation
结束地点数: endnum
结束地点: dndstation
单车车号: bikenum
用户类型: type Member 会员 / Casual 临时会员)
示例数据 :
197068,2017-10-1 0:00,2017-10-1 0:03,31214,17th & Corcoran St NW,31229,New
Hampshire Ave & T St NW,W21022,Member
上传数据
创建指定文件夹,将数据上传至 hdfs 指定目录 /college/ 下。
建表
建库:
create database hive;
use hive;
建表:
create table bike (
duration int,
startdate timestamp,
enddate timestamp,
20 2019 年第二届全国大学生大数据技能竞赛
21
startnum int,
startstation string,
endnum int,
endstation string,
bikenum string,
type string) row format delimited
fields terminated by ',';
数据导入
将本地数据导入至对应表中。
统计表数据 , 结果写入本地 /root/college000/01/ 中。
常规分析
1. 统计本次数据所有单车数量,结果写入本地 /root/college001/ 中。
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符。
2. 计算单车平均用时,结果写入本地 /root/college002/ 中。
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符。
其他说明:以分钟为单位,对数据结果取整数值(四舍五入);
3. 统计常年用车紧张的地区站点,结果写入本地 /root/college003/ 中。 ( startstation 为准 )
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照用车总辆进行降序排列,再按照开始地区升序排列。
其他说明:数目限制为 10
4. 统计国庆期间各地区车辆使用情况,结果写入本地 /root/college004/ 中。(以
startstation,startdate 为准)
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照用车总辆进行降序排列,再按照开始地区升序排列;
其他说明:统计前 20 地区。
5. 给出一年中共享单车单日租赁排行榜,结果写入本地 /root/college005/ 中。(以 startdate
为准)
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照租赁总量进行降序排列,再按照开始时间升序排列;
其他说明:数据为年月日,以开始时间为数据标准 , 排行前 5 2019 年第二届全国大学生大数据技能竞赛
22
6. 给出建议维修的单车编号,结果写入本地 /root/college006/ 中。
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照用车总辆进行降序排列,再按照单车编号升序排列;
其他说明:使用磨损较高的单车(使用次数),数目为 10
7. 给出可进行会员活动推广的地区,结果写入本地 /root/college007/ 中。(以 startstation
准)
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照用车总辆进行降序排列,再按照开始地区升序排列;
其他说明:以非会员用户用车为数据标准,地区数目为 10
8. 给出可舍弃的单车站点,结果写入本地 /root/college008/ 中。(以 endstation 为准)
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符;
复合排列:先按照用车总辆进行升序排列,再按照结束地区升序排列;
其他说明:以会员目的地为数据标准,地区数目为 10
数据挖掘
根据 Apriori 算法计算两地之间的关联关系,用于讨论是否开车共享大巴路线等优惠活动。
请根据 Apriori 关联规则算法的原理找出与排名最高的结束地点(目的地,后项)之间的
关联度最强的开始地点(始发地,前项) , 并计算出其支持度与置信度。要求如下:
支持度写到本地 /root/college009/ ( 保留五位小数 )
置信度写到本地 /root/college010/ ( 保留五位小数 )
公式参考如下:
前项: A 后项: B
支持度:表示同时包含 A B 的事务占所有事务的比例。如果用 P(A) 表示使用 A 事务
的比例。 Support=P(A&B)
置信度:表示使用包含 A 的事务中同时包含 B 事务的比例,即同时包含 A B 的事务
占包含 A 事务的比例。 Confidence=P(A&B)/P(A)
可视化
1. 制作上半年不同用户类型之间的用车情况示意图。
要求如下:
1 )图形类别为折线图;
2 )标题为: '2017 上半年会员与非会员用车情况 ( 数量 )'
3 )标签依次为: ' 会员 ' ' 非会员 '
4 )横坐标时间顺序依次为 1 月、 2 月、 …… 6 月;
5 )以开始时间( startdate )为准;
6 )要求结果如下图: 2019 年第二届全国大学生大数据技能竞赛
2. 绘出 12 月份用车紧张地区示意图。
要求如下:
1 )图形类别:柱状图;
2 )标题为: '12 月份用车紧张地区及用户使用情况 '
3 )标签依次为: ' 会员 ' ' 非会员 '
4 )类目轴:按照紧张程度由上至下降序排列地区名称;
5 )建议使用 stack 进数值堆叠放置;
6 )以开始时间( startstation )为准。
7 )要求视图如下:
23 2019 年第二届全国大学生大数据技能竞赛
24 2019 年第二届全国大学生大数据技能竞赛
7. 数据抓取
7.1 提供爬虫环境
根据指定网页进行数据爬取,平台中 master 等三个主机已经提供 Python 爬虫环境,支持
的库如下:
beautifulsoup4 4.8.0
bs4 0.0.1
certifi 2019.6.16
chardet 3.0.4
html5lib 1.0.1
idna 2.8
lxml 4.4.1
pip 18.1
requests 2.22.0
setuptools 40.6.2
25 2019 年第二届全国大学生大数据技能竞赛
26
six 1.12.0
soupsieve 1.9.3
urllib3 1.25.3
webencodings 0.5.1
另外在选手操作机上,已提供 anaconda3 pycharm
7.2 数据爬取要求
根据比赛中提供的环境,进行数据爬取,要求如下:
1. 爬取数据包括如下内容:
爬取内容字段
示例
帖子 ID
1
用户名
cs4bxCo
积分
66
等级
注册会员
帖子标题
什么发帖软件最好?
帖子内容
我觉得是帖帖不休~
完整数据示例如下:(数据之间分隔符可自定义)
1,cs4bxCo,66, 注册会员 , 什么发帖软件最好? , 我觉得是帖帖不休 ~
2. 结果保存在 /root/college021/data.txt 中(数据中无需存放字段名称)。
3. 注意:由于编码错误,导致中文乱码
乱码解决方式: iconv -f gbk -t utf8 a.txt –o b.txt
1.创建爬虫数据表,要求如下:
表: hive.data
表格字段: tid ,author,score,grade ,title,content
数据类型 :tid/score int 型,其他为 string
2 . 将数据导入 data 表。
3. 统计总用户数,并将最后数目写入 /root/college022/ 目录下。
4. 统计活跃用户 top10 ,将结果用户名及对应发帖数目写入 /root/test023/ 目录下,要求如
下:
复合排列:先按照第二列发帖数倒叙排列,再按照第一列用户名升序排列
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符。 2019 年第二届全国大学生大数据技能竞赛
27
5. 查找结果 4 中排序 no.1 的用户等级,结果写入 /root/college024/
6. 根据积分排名,找出 top5 的用户,结果写入 /root/college025/ 目录下,要求如下:
复合排列:先按照第一列积分数倒叙排列,再按照第二列用户名升序排列
格式:对于结果中的二维数据,要求使用“
\t ”作为声明文件分隔符。
8. 集群节点增加与删除
8.1 添加 DataNode --------------slave3
1. 基础操作
配置本地源;
关闭防火墙;
临时主机名;
生效时区;
2. 修改所有机器的 hosts 文件
添加 slave3 IP 及映射。(所有节点)
vim /etc/hosts
xxxxxx master
xxxxxx slave1
xxxxxx slave2
xxxxxx slave3
3. 同步 master 时间
下载 ntp yum install -y ntp && ntpdate master
关闭提示信息: echo "unset MAILCHECK">> /etc/profile && source /etc/profile
4.NN DN 之间免密
需要在 master 机器中将 .ssh 目录下的公钥认证列表 authorized_keys 发送给 slave3
scp ~/.ssh/authorized_keys root@slave3:~/.ssh/
5. 安装 JDK Hadoop
在新的服务器中安装好 jdk 环境以及 hadoop, 生效环境变量。
环境变量: vim /etc/profile
#Java
export JAVA_HOME=/usr/java/jdk1.8.0_171 2019 年第二届全国大学生大数据技能竞赛
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
6. 修改 salves 文件
修改 hadoop 配置目录下 slaves 文件,添加 slave3 ( 所有节点 )
vim $HADOOP_HOME/etc/hadoop/slaves
slave1
slave2
slave3
7. 启动节点进程
启动 datanode 进程: $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
启动 nodemanage 进程: $HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
8. 查看集群状态
主节点刷新: hdfs dfsadmin -refreshNodes
均衡 block sbin/start-balancer.sh
查看存活的节点: hdfs dfsadmin -report
28 2019 年第二届全国大学生大数据技能竞赛
也通过浏览器访问 namenode mapreduce ,看集群中是否添加了一个节点。
29 2019 年第二届全国大学生大数据技能竞赛
8.2 删除 DataNode--------------slave2
1. 临时删除节点:(仅做参考)
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop tasktracker
2. 永久删除:(通过此步骤执行)
master 主机中 hdfs-site.xml 配置如下:
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/hadoop/hadoop-2.7.3/etc/hadoop/excludes</value>
<description> 拒绝加入集群的节点列表 </description>
</property>
3. 然后在 conf 目录下创建一个 excludes 文件,将需要删除的节点机器名添加到文件中即可。
4. 强制重新加载配置:
主节点刷新所有 DataNode hdfs dfsadmin -refreshNodes
查看存活的节点: hdfs dfsadmin -report
30 2019 年第二届全国大学生大数据技能竞赛
可以看到该 datanode 状态转为 Decommission In Progress ( 退役 )
执行完毕之后显示 Decommission Status : Decommissioned
6. 删除节点上关闭进程:( slave2
hadoop-daemon.sh stop datanode
yarn-daemon.sh stop nodemanager
7. (时间间隔较久, 500s )再次查看节点状态: hdfs dfsadmin -report
31 2019 年第二届全国大学生大数据技能竞赛
8. 最后更新集群配置
数据块重新分布: sbin/start-balancer.sh (数据均衡)
NameNode excludes 文件及 slaves 文件、 hosts 文件中去掉已经移除的主机名
32
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:25:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:32:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码