栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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 2019 年第二届全国大学生大数据技能竞赛 fs.default.name hdfs://master:9000 hadoop.tmp.dir /usr/hadoop/hadoop-2.7.3/hdfs/tmp io.file.buffer.size 131072 fs.checkpoint.period 60 fs.checkpoint.size 67108864 master :在主节点的 ip 或者映射名。 9000 :主节点和从节点配置的端口都是 9000 。 3. hdfs-site.xml 配置文件 dfs.replication :因为 hadoop 是具有可靠性的,它会备份多个文本,这里 value 就是指备 份的数量(小于等于从节点的数量)。 在 中加入以下代码: dfs.replication 2 dfs.namenode.name.dir file:/usr/hadoop/hadoop-2.7.3/hdfs/name dfs.datanode.data.dir file:/usr/hadoop/hadoop-2.7.3/hdfs/data 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 程序。 在 中加入以下代码: yarn.resourcemanager.address master:18040 yarn.resourcemanager.scheduler.address master:18030 yarn.resourcemanager.webapp.address master:18088 yarn.resourcemanager.resource-tracker.address master:18025 yarn.resourcemanager.admin.address master:18141 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.auxservices.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler 12 2019 年第二届全国大学生大数据技能竞赛 13 6. 编辑配置计算框架 该文件是 MapReduce 的核心配置文件,用于指定 MapReduce 运行时框架。 ⚫ cp mapred-site.xml.template mapred-site.xml && vim mapred-site.xml 在 中加入以下代码: mapreduce.framework.name yarn 注意保存退出。 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 文件 hive.metastore.warehouse.dir /user/hive_remote/warehouse javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionURL jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&useSSL=false javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 17 2019 年第二届全国大学生大数据技能竞赛 18 5.4 Master 作为客户端配置 hive 和 slave1 中配置方式类似,直接进入 conf ,进行设置。 Hive 服务和 metastore 在不同的进程内,可能是不同的机器,该模式需要将 hive.metastore.local 设置为 false 。 将 hive.metastore.uris 设置 metastore 服务器 URL ,端口设定为 9083 。 hive-site.xml 配置如下: hive.metastore.warehouse.dir /user/hive_remote/warehouse hive.metastore.local false hive.metastore.uris thrift://slave1:9083 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 配置如下: dfs.hosts.exclude /usr/hadoop/hadoop-2.7.3/etc/hadoop/excludes 拒绝加入集群的节点列表 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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号