2401_85540850 2024-06-19 16:10 采纳率: 82.6%
浏览 4
已结题

关于#hbase#的问题:编写hbase的双节点并将数据集编写到代码打包jar将sub数据导出

img


编写hbase的双节点并将数据集编写到代码打包jar将sub数据导出

img

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-19 16:10
    关注

    引自免费微信小程序:皆我百晓生

    为了解决你的问题,我们将按照以下步骤操作:

    第一步:HBase 双节点集群部署

    配置环境

    确保两台机器上都安装了 JDK 1.8 和 Zookeeper 3.0+。

    HBase 配置

    • 在每台机器上编辑hbase-site.xml:
    <configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://master:9000/hbase</value>
        </property>
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>node1,node2</value>
        </property>
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
    </configuration>
    
    • 配置ZooKeeper:
      • zoo.cfg文件中设置server.id=node_ip:port

    启动集群

    • node1启动ZooKeeper。
    • node2启动ZooKeeper。
    • node1启动HMaster。
    • node2启动HRegionServer。

    第二步:编写 MapReduce 程序导入数据

    假设CSV文件格式如下:

    student_id,subject,score
    202100001,语文,73
    ...
    

    Java程序

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.IntWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.Reducer;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
    import org.apache.hadoop.hbase.mapreduce.TableOutputFormat;
    
    import java.io.IOException;
    
    public class SubjectScoreLoader {
    
        public static class SubjectScoreMapper extends Mapper<Object, Text, ImmutableBytesWritable, Put> {
            private final static ImmutableBytesWritable rowKey = new ImmutableBytesWritable();
            private Put put = new Put();
    
            @Override
            protected void map(Object key, Text value, Context context) throws IOException, InterruptedException {
                String[] parts = value.toString().split(",");
                String studentId = parts[0];
                String subject = parts[1];
                int score = Integer.parseInt(parts[2]);
    
                rowKey.set(studentId);
                put.add("cf".getBytes(), subject.getBytes(), new IntWritable(score).get());
                context.write(rowKey, put);
            }
        }
    
        public static void main(String[] args) throws Exception {
            Configuration conf = HBaseConfiguration.create();
            Job job = Job.getInstance(conf, "Subject Score Loader");
            job.setJarByClass(SubjectScoreLoader.class);
            job.setMapperClass(SubjectScoreMapper.class);
            job.setOutputKeyClass(ImmutableBytesWritable.class);
            job.setOutputValueClass(Put.class);
            job.setInputFormatClass(TextInputFormat.class);
            job.setOutputFormatClass(TableOutputFormat.class);
            FileInputFormat.addInputPath(job, new Path(args[0]));
            TableOutputFormat.configureJobForDirectWrite(job, "subject", "cf");
            System.exit(job.waitForCompletion(true) ? 0 : 1);
        }
    }
    

    第三步:打包程序

    使用Maven或Gradle打包上述Java程序为JAR文件。

    第四步:运行MapReduce作业

    使用Hadoop命令行提交JAR文件运行MapReduce作业:

    hadoop jar subject-score-loader.jar SubjectScoreLoader /input/subject_score.csv output
    

    第五步:文档编写

    创建文档,详细记录上述步骤,包括环境配置、代码实现、运行结果截图等。

    第六步:验证数据

    通过HBase shell或HBase UI检查数据是否正确导入。

    以上步骤应能帮助你完成从HBase集群部署到数据导入的整个流程。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月19日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见