
大数据应用与服务交流:982262433
在大数据技术快速发展的今天,房地产市场正经历着数字化转型。传统的房地产交易和分析模式主要依赖经纪人的个人经验和直觉,这种方式不仅效率低下,而且难以准确把握市场动态。随着大数据技术的应用,房地产行业正在向数据驱动的决策模式转变,这使得市场分析更加精准,服务更加个性化。 房地产大数据分析平台通过采集和处理海量的交易数据、用户行为数据和市场环境数据,可以全方位地描绘市场格局。这些数据包括但不限于房源基本信息、交易历史、区域配套设施、用户浏览轨迹、市场成交周期等。通过对这些数据的深度分析,可以准确预测房价走势、评估投资价值、识别市场机会,从而为购房者、房产经纪和开发商提供数据支持。为完成二手房销售数据分析工作,你所在的小组将应用大数据技术,通过 Python 语言以数据采集为基础,将采集的数据进行相应处理,并且进行数据标注、数据分析与可视化、通过大数据业务分析方法实现相应数据分析。运行维护数据库系统保障存储数据的安全性。通过运用相关大数据工具软件解决具体业务问题。你们作为该小组的技术人员,请按照下面任务完成本次工作。
1.子任务一:基础环境准备 本任务需要使用 root 用户完成相关配置,安装 Hadoop 需要配置前置环境。命令中要求使用绝对路径,具体要求如下: (1)配置三个节点的主机名,分别为 master、slave1、slave2,然后修改三个节点的 hosts 文件,使得三个节点之间可以通过主机名访问,在 master上将执行命令 cat /etc/hosts 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下; (2)将 /opt/software 目录下将文件 jdk-8u191-linux-x64.tar.gz 安装包(若slave1、slave2节点不存在以上文件则需从master节点复制)解压到 /opt/module 路径中(若路径不存在,则需新建),将 JDK 解压命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (3)在 /etc/profile 文件中配置 JDK 环境变量 JAVA_HOME 和 PATH 的值,并让配置文件立即生效,将在 master上 /etc/profile 中新增的内容复制并粘贴至【提交结果.docx】中对应的任务序号下; (4)查看 JDK 版本,检测 JDK 是否安装成功,在 master 上将执行命令java -vserion 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下; (5)创建 hadoop 用户并设置密码,为 hadoop 用户添加管理员权限。在 master 上将执行命令 grep ‘hadoop’ /etc/sudoers 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下; (6)关闭防火墙,设置开机不自动启动防火墙,在 master 上将执行命令 systemctl status fireawlld 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下; (7)配置三个节点的SSH免密登录,在 master 上通过 SSH 连接 slave1 和 slave2 来验证。 2.子任务二:Hadoop 完全分布式安装配置 本任务需要使用 root 用户和 hadoop 用户完成相关配置,使用三个节点完成 Hadoop 完全分布式安装配置。命令中要求使用绝对路径,具体要求如下: (1)在 master 节点中的 /opt/software 目录下将文件 hadoop-3.3.6.tar.gz 安装包解压到 /opt/module 路径中,将 hadoop 安装包解压命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (2)在 master 节点中将解压的 Hadoop 安装目录重命名为 hadoop ,并修改该目录下的所有文件的所属者为 hadoop,所属组为 hadoop,将修改所属者的完整命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (3)在 master 节点中使用 hadoop 用户依次配置 hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、masters 和 workers 配置文件,Hadoop集群部署规划如下表,将 yarn-site.xml 文件内容复制并粘贴至【提交结果.docx】中对应的任务序号下;
*服务器* | *master* | *slave1* | *slave2* |
|---|---|---|---|
DHFS | NameNode | ||
HDFS | SecondaryNameNode | ||
HDFS | DataNode | DataNode | DataNode |
YARN | ResourceManager | ||
YARN | NodeManager | NodeManager | NodeManager |
历史日志服务器 | JobHistoryServer |
(4)在 master 节点中使用 scp 命令将配置完的 hadoop 安装目录直接拷贝至 slave1 和 slave2 节点,将完整的 scp 命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (5)在 slave1 和 slave2 节点中将 hadoop 安装目录的所有文件的所属者为 hadoop,所属组为 hadoop。 (6)在三个节点的 /etc/profile 文件中配置 Hadoop 环境变量 HADOOP_HOME 和 PATH 的值,并让配置文件立即生效,将 master 节点中 /etc/profile 文件新增的内容复制并粘贴至【提交结果.docx】中对应的任务序号下; (7) 在 master 节点中初始化 Hadoop 环境 namenode,将初始化命令及初始化结果(截取初始化结果日志最后 20 行即可)粘贴至【提交结果.docx】中对应的任务序号下; (8) 在 master 节点中依次启动HDFS、YARN集群和历史服务。在 master 上将执行命令 jps 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下; (9) 在 slave1 查看 Java 进程情况。在 slave1上将执行命令 jps 的结果复制并粘贴至【提交结果.docx】中对应的任务序号下。 3.子任务三:Zookeeper 集群安装配置 本任务需要使用 root 用户完成相关配置,已安装 Hadoop 及需要配置前置环境,具体要求如下: (1)在 master 节点将 /opt/software 目录下的 apache-zookeeper-3.8.3-bin.tar.gz 包解压到 /opt/module 路径下, 将解压命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (2)把解压后的 apache-zookeeper-3.8.3-bin 文件夹更名为 zookeeper-3.8.3,将命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (3)设置 zookeeper 环境变量,将新增的环境变量内容复制并粘贴至【提交结果.docx】中对应的任务序号下; (4)创建 zookeeper 配置文件 zoo.cfg 并配置 master、slave1、slave2 三个节点的集群配置,其中 dataDir 参数设置为 /opt/module/zookeeper-3.8.3/data ,提交 zoo.cfg 配置内容至【提交结果.docx】中对应的任务序号下; (5)在 master 节点上创建文件 myid 用于标识服务器序号,并将文件内容设置为1; (6)在 master 节点上将配置的 zookeeper 环境变量文件及 zookeeper 解压包拷贝到 slave1、slave2 节点,提交命令至【提交结果.docx】中对应的任务序号下; (7)在 slave1 节点上修改 myid 文件内容修改为 2,在 slave2 节点上修改 myid 文件内容修改为 3,提交命令和结果截图粘贴至【提交结果.docx】中对应的任务序号下; (8)在 master 节点、slave1 节点、slave2 节点分别启动 zookeeper,提交命令和结果截图粘贴至【提交结果.docx】中对应的任务序号下; (9)在 master 节点、slave1 节点、slave2 节点分别查看 zookeeper 的状态,提交命令和结果截图粘贴至【提交结果.docx】中对应的任务序号下; (10)在 master 节点查看 Java 进程,提交命令和结果截图粘贴至【提交结果.docx】中对应的任务序号下。 4.子任务四:Kafka 安装配置 本任务需要使用 root 用户完成相关配置,已安装 Hadoop 及需要配置前置环境,具体要求如下: (1)从 master 中的 /opt/software 目录下将文件 kafka_2.12-3.6.1.tgz 解压到 /opt/module 目录下,把解压后的 kafka_2.12-3.6.1 文件夹更名为 kafka,将 Kafka 解压命令复制并粘贴至【提交结果.docx】中对应的任务序号下; (2)配置好 zookeeper,其中 zookeeper 使用集群模式,分别将 master、slave1、slave2 作为其节点(若 zookpeer 已安装配置好,则无需再次配置); (3)配置 Kafka 环境变量,并使环境变量生效,将新增的环境变量内容截图粘贴至【提交结果.docx】中对应的任务序号下; (4) 使用 kafka-server-start.sh --version 查看 Kafka 的版本内容, 并将命令和结果截图粘贴至【提交结 果.docx】中对应的任务序号下; (5)修改 server.properties 配置文件,并分发 Kafka 文件到 slave1、slave2 中,并在每个节点启动 Kafka,将启动命令和结果截图粘贴至【提交结 果.docx】中对应的任务序号下; (6)创建 Topic,其中 Topic 名称为 installtopic,分区数为 2,副本数为 2,将创建命令和创建成果截图粘贴至【提交结果.docx】中对应的任务序号下。
*字段* | *类型* | *中文含义* | *备注* |
|---|---|---|---|
*house_id* | int | 房源编号 | 主键 |
*community* | varchar(100) | 小区名称 | 不能为空 |
*district* | varchar(50) | 所在区域 | 不能为空 |
*layout* | varchar(50) | 户型 | 不能为空 |
*area* | decimal(10,2) | 建筑面积 | 不能为空 |
*price* | decimal(12,2) | 挂牌价格 | 不能为空 |
*floor_info* | varchar(50) | 楼层信息 | |
*orientation* | varchar(50) | 朝向 | |
*status* | enum | 房源状态 | 默认"在售" |
(2)根据以下数据字段在 house_market 数据库中创建小区信息表(community_info)。小区信息表字段如下:
*字段* | *类型* | *中文含义* | *备注* |
|---|---|---|---|
*community_id* | int | 小区编号 | 主键 |
*community_name* | varchar(100) | 小区名称 | 不能为空 |
*district* | varchar(50) | 所在区域 | 不能为空 |
*build_year* | year | 建成年份 | |
*property_fee* | decimal(10,2) | 物业费用 | |
*subway_distance* | int | 地铁距离 | 单位:米 |
(3)根据以下数据字段在 house_market 数据库中创建交易记录表(transaction_records)。交易记录表字段如下:
*字段* | *类型* | *中文含义* | *备注* |
|---|---|---|---|
*record_id* | int | 记录编号 | 主键 |
*house_id* | int | 房源编号 | 外键 |
*transaction_date* | date | 成交日期 | 不能为空 |
*transaction_price* | decimal(12,2) | 成交价格 | 不能为空 |
*price_change* | decimal(12,2) | 价格变动 | |
*transaction_type* | varchar(50) | 交易类型 | 默认"二手房" |
将这三个 SQL 建表语句分别复制粘贴至【提交结果.docx】中对应的任务序号下。 (4)将提供的数据文件 house_market_data.sql 导入数据库 house_market中并编写如下 SQL 查询语句: 统计每个区域的在售房源数量和平均价格 查询成交价格高于该区域平均成交价格的房源信息 查询距离地铁站1000米以内的小区及其房源数量 统计每种户型的平均单价(按面积计算)并按降序排列 查询最近一个月内成交的房源信息及其所在小区详情 将这五个 SQL 查询语句分别复制粘贴至【提交结果.docx】中对应的任务序号下。
*编号* | *小区* | *面积(㎡)* | *价格(万元)* | *价格区间* |
|---|---|---|---|---|
1 | 某某小区 | 90 | 300 | 中档型 |
将 price_range_mark.csv 打开后的直接截图(不用下拉)复制粘贴至【提交结果.docx】中对应的任务序号下。 2. 子任务二:市区热门度标注 使用 Python 编写脚本,根据每个市区的房源数量标注市区的热门度。具体的分类要求如下: (1)高热门:市区内房源数量高于全市平均数量的120%; (2)中热门:市区内房源数量在全市平均数量的80%至120%之间; (3)低热门:市区内房源数量低于全市平均数量的80%。 在数据集中新增一列“区域热门度”,根据上述标准对每个区域进行热门度标注,存入 area_popularity_mark.csv 文件中。具体格式如下:
*编号* | *小区* | *市区* | *面积(㎡)* | *价格(万元)* | *区域热门度* |
|---|---|---|---|---|---|
1 | 育慧里一区 | 朝阳 | 52 | 343 | 高热门 |
将 area_popularity_mark.csv 打开后的直接截图(不用下拉)复制粘贴至【提交结果.docx】中对应的任务序号下。
1.子任务一:数据分析 数据分析对于理解房地产市场至关重要,可以揭示销售趋势、区域特点和市场需求。本任务中,我们将使用Python对二手房销售数据进行深入分析。参赛者需要使用Python的数据处理和分析库,如Pandas来完成以下任务: (1)分析不同市区的二手房销售量,统计每个市区的房源销售数量,并进行倒序排序展示前三名; (2)计算各户型的平均售价,并进行倒序排序展示前三种户型; (3)计算每个市区的平均售价,进行倒序排序展示前三名; (4)统计不同装修情况的房源数量,并进行正序排序展示; (5)筛选出售价在平均售价以下且面积超过平均面积的房源,并统计这些房源的数量。 将这5个统计结果在 IDE 的控制台中打印并分别截图复制粘贴至【提交结果.docx】中对应的任务序号下。 2.子任务二:数据可视化 在这个任务中,参赛者将使用 Matplotlib 库来创建直观的图表,以揭示数据中的关键模式和趋势。具体要求如下: (1)使用柱状图展示各市区的二手房销售数量,柱状图中的每个柱子代表一个市区,高度代表该市区的房源销售数量; (2)创建条形图比较不同户型的平均售价,条形图中横轴表示平均售价,纵轴表示户型; (3)使用折线图展示不同年份的二手房平均售价趋势; (4)制作散点图探索售价与面积之间的关系,散点图中的横轴为售价,纵轴为面积,每个点代表一套房源。 将该 4 个可视化图表分别截图复制粘贴至 【提交结果.docx】中对应的任务序号下。
业务分析在二手房市场中至关重要,它可以帮助揭示客户需求、价格敏感度和市场发展趋势。在本任务中,我们将使用Python对二手房销售数据进行简单的业务分析,目的是识别市场的主要特征,并基于数据提出营销策略。 使用提供的二手房销售数据集,计算以下指标: (1)平均售价:计算数据集中所有房源的平均售价。 (2)最受欢迎的户型:根据销售量,确定哪种户型最受欢迎。 (3)高销量市区特征:识别销售量在前25%的市区共有的特征(如售价范围、面积等)。 根据上述分析结果,撰写一段简短的描述,提出至少两条针对二手房市场的营销策略建议。将内容复制粘贴至【提交结果.docx】中对应的任务序号下。