编写hbase的双节点并将数据集编写到代码打包jar将sub数据导出
关于#hbase#的问题:编写hbase的双节点并将数据集编写到代码打包jar将sub数据导出
编写hbase的双节点并将数据集编写到代码打包jar将sub数据导出
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
为了解决你的问题,我们将按照以下步骤操作:
第一步: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集群部署到数据导入的整个流程。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- 在每台机器上编辑
悬赏问题
- ¥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局部变量对蓝图不可见