怎么连接梓豪平台的数据库

使用Navcat连接服务器3306端口及HC系统默认凭证

通过navcat 直接连接 服务器的3306 端口即可

HC小区管理系统 默认账号密码为 TT/hc12345678

![](https://cdn.jsdelivr.net/gh/King-CS/Cdn@main/blog/202311171126856.png) ### 题目重述 本文件描述了三个与 Hadoop 和 MapReduce 相关的实验任务: - **实验1**:在 Linux 环境下运行 Hadoop 自带的词频统计(WordCount)程序。包括修改配置、启动集群、创建本地文件 `wordcount.txt`、上传至 HDFS 并执行 MapReduce 作业。 - **实验2**:在 Windows 系统中使用 IntelliJ IDEA 编写并运行自定义的 MapReduce 单词计数程序,涉及开发环境搭建、代码编写与结果验证。 - **实验3**:编程实现对多个输入文件中的整数进行全局升序排序,输出格式为每行两个整数:第一个是排序位次(从 1 开始),第二个是原始数值。提供输入输出样例。 此外,附图展示了实际命令行操作记录,包括: - 文件内容显示; - 使用 `hadoop fs -put` 上传文件; - 执行 Hadoop 内置 JAR 包中的 WordCount 程序; - 尝试删除文件时提示 “No such file or directory”。 现在根据要求补充学生信息:**姓名:梁梓豪,学号:202312410417**。 --- ### 详解 #### 实验1:运行 Hadoop 自带 WordCount 程序 1. **配置 MapReduce 支持** 确保 `$HADOOP_HOME/etc/hadoop/mapred-site.xml` 中包含: ```xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` 2. **启动 Hadoop 集群** ```bash start-dfs.sh start-yarn.sh ``` 3. **创建本地文件 `wordcount.txt`(含姓名和学号)** ```bash echo -e "hadoop flink java\nmysql hadoop\nhdfs mysql spark\njava hadoop\nHBASE HBASE\nliangzihao 202312410417" > wordcount.txt ``` 4. **上传到 HDFS** ```bash hdfs dfs -put wordcount.txt / ``` 5. **执行 WordCount 程序** ```bash hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount wordcount.txt result14 ``` 6. **查看结果** ```bash hdfs dfs -cat result14/part-r-00000 ``` 预期输出中应包含: ``` liangzihao 1 202312410417 1 ``` > ⚠️ 图中命令报错:`rm:wordcount.txt': No such file or directory`,说明当前目录下不存在该文件,可能是误输命令或文件已被删除。 --- #### 实验2:IntelliJ IDEA 编写 WordCount 程序 1. **配置 Windows Hadoop 环境** - 下载适用于 Windows 的 Hadoop 二进制包(如 [winutils](https://github.com/cdarlint/winutils)); - 设置 `HADOOP_HOME` 环境变量; - 将 `winutils.exe` 放入 `%HADOOP_HOME%\bin`; - 添加 `%HADOOP_HOME%\bin` 到 `PATH`。 2. **创建 Maven 项目并添加依赖** ```xml <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.3.4</version> </dependency> ``` 3. **编写 MapReduce 代码(关键部分)** 在 Mapper 类中正常处理文本,最终输出会统计 `liangzihao` 和 `202312410417` 各出现一次。 4. **打包并提交到 Hadoop 集群** - 构建为 JAR 包(如 `wordcount.jar`); - 上传至 Linux 服务器; - 执行: ```bash hadoop jar wordcount.jar WordCount /input /output2 ``` 5. **验证结果** ```bash hdfs dfs -cat /output2/part-r-00000 | grep -E "(liangzihao|202312410417)" ``` 应输出: ``` liangzihao 1 202312410417 1 ``` --- #### 实验3:整数排序 MapReduce 程序 目标:将多个输入文件中的所有整数合并后升序排列,输出 `<排名, 数值>`。 ##### 思路设计: - Mapper 发送整数作为 Key; - Reducer 接收时已按键排序; - 使用计数器输出排名。 ##### Java 实现核心代码(略去导入) ```java public class SortIntegers { public static class IntMapper extends Mapper<LongWritable, Text, IntWritable, NullWritable> { private final IntWritable num = new IntWritable(); @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { try { int n = Integer.parseInt(value.toString().trim()); num.set(n); context.write(num, NullWritable.get()); } catch (NumberFormatException e) { /* 忽略非法行 */ } } } public static class IntReducer extends Reducer<IntWritable, NullWritable, IntWritable, IntWritable> { private final IntWritable rank = new IntWritable(1); @Override protected void reduce(IntWritable key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException { for (NullWritable ignored : values) { context.write(rank, key); rank.set(rank.get() + 1); } } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "Integer Sorting - 梁梓豪 202312410417"); job.setJarByClass(SortIntegers.class); job.setMapperClass(IntMapper.class); job.setReducerClass(IntReducer.class); job.setOutputKeyClass(IntWritable.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } ``` > ✅ 提示:可在 Job 名称中加入姓名和学号以便识别任务来源。 --- ### 知识点 - **MapReduce执行流程**:数据分片 → Map映射 → Shuffle → Reduce归约 → 输出结果,适用于批处理场景。 - **HDFS基本操作命令**:`hdfs dfs -put`上传文件,`-cat`查看内容,掌握路径管理与权限基础。 - **键排序与Reducer输出控制**:利用MapReduce默认按键排序特性,在Reducer中维护计数器实现排名输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值