1. 项目背景
目前本地有50G的企业年报csv数据, 需要清洗出通信地址,并需要与原有的亿条数据合并以供业务查询最新的企业通信地址
2. 技术选型
Hadoop + ClickHouse
3. Hadoop数据清洗
我们50G的数据无须上传至集群处理,上传目前带宽2M/S, 巨慢,我直接在本地hadoop处理
我们先看下数据格式,以@_@分割,最后一列是杂乱的数据
315@_@102878404@_@91430802MA4PPBWA9Y@_@3@_@2021-03-19 15:29:05@_@2021-03-19 15:29:04@_@-@_@2019@_@ 统一社会信用代码/注册号 91430802MA4PPBWA9Y 企业名称 张家界恒晟广告传媒有限公司 企业联系电话 15874401535 邮政编码 427000 企业经营状态 开业 从业人数 1人 电子邮箱 - 是否有网站或网店 否 企业通信地址 湖南省张家界市永定区大庸桥办事处大庸桥居委会月亮湾小区金月阁5601号 企业是否有投资信息 或购买其他公司股权 否 资产总额 企业选择不公示 所有者权益合计 企业选择不公示 销售总额 企业选择不公示 利润总额 企业选择不公示 营业总收入中主营业务收入 企业选择不公示 净利润 企业选择不公示 纳税总额
public class Company implements Tool {
private Configuration conf;
@Override
public int run ( String [ ] args) throws Exception {
Configuration conf = new Configuration ( ) ;
Job job = Job . getInstance ( conf, "company" ) ;
job. setJarByClass ( CompanyDriver . class ) ;
job. setMapperClass ( CompanyMapper . class ) ;
job. setReducerClass ( CompanyReducer . class ) ;
job. setMapOutputKeyClass ( Text . class ) ;
job. setMapOutputValueClass ( NullWritable . class ) ;
job. setOutputKeyClass ( Text . class ) ;
job. setOutputValueClass ( NullWritable . class ) ;
job. setNumReduceTasks ( 1 ) ;
FileInputFormat . addInputPath ( job, new Path ( args[ 0 ] ) ) ;
FileOutputFormat . setOutputPath ( job, new Path ( args[ 1 ] ) ) ;
return job. waitForCompletion ( true ) ? 0 : 1 ;
}
@Override
public void setConf ( Configuration conf) {
this . conf = conf;
}
@Override
public Configuration getConf ( ) {
return conf;
}
public static class CompanyMapper extends Mapper < LongWritable , Text , Text , NullWritable > {
private Text keyOut = new Text ( ) ;
private Text valueOut = new Text ( ) ;
@Override
protected void map ( LongWritable key, Text value, Context context) throws IOException , InterruptedException {
String line = value. toString ( ) ;
String [ ] words = line. split ( "@_@" ) ;
keyOut. set ( key. toString ( ) ) ;
String company_id = words[ 1 ] ;
String unified_code = words[ 2 ] ;
String year = words[ 7 ] ;
String company = StringUtils . substringBetween ( words[ 8 ] , " 统一社会信用代码/注册号 ", " 企业名称 ")
. replaceAll ( "\"" , "" ) ;
String mailAddress = StringUtils . substringBetween ( words[ 8 ] , " 企业通信地址 ", " 企业是否有投资信息")
. replaceAll ( "\"" , "" ) ;
if ( ! company. contains ( "td" ) && ! mailAddress. contains ( "td" ) ) {
valueOut. set ( key. toString ( ) + '@' + company_id + '@' + unified_code + '@' + year + '@' + company + '@' + mailAddress) ;
context. write ( valueOut, NullWritable . get ( ) ) ;
}
}
}
public static class CompanyReducer extends Reducer < Text , NullWritable , Text , NullWritable > {
@Override
protected void reduce ( Text key, Iterable < NullWritable > values, Reducer < Text , NullWritable , Text , NullWritable > . Context context) throws IOException , InterruptedException {
for ( NullWritable value : values) {
context. write ( key, NullWritable . get ( ) ) ;
}
}
}
}
public class CompanyDriver {
private static Tool tool;
public static void main ( String [ ] args) throws Exception {
Configuration conf = new Configuration ( ) ;
switch ( args[ 0 ] ) {
case "company" :
tool = new Company ( ) ;
break ;
default :
throw new RuntimeException ( " No such tool: " + args[ 0 ] ) ;
}
int run = ToolRunner . run ( conf, tool, Arrays . copyOfRange ( args, 1 , args. length) ) ;
System . exit ( run) ;
}
}
参数传递运行与先前文章一致,25.hadoop系列之Yarn Tool接口实现动态传参 不在重复,10分钟左右处理完毕,处理后约1.8G
4. ClickHouse ReplaceMergeTree实践
现在我们将处理后数据导入ClickHouse
4.1 创建表company_report及导入处理后的part-r-00000文件
CREATE TABLE etl.company_report (
id String,
company_id String,
unified_code String,
year String,
company String,
mail_address String
) ENGINE MergeTree()
PARTITION BY substring(unified_code, 2, 2) PRIMARY KEY (id) ORDER BY (id);
clickhouse-client --format_csv_delimiter="@" --input_format_with_names_use_header=0 --query="INSERT INTO etl.company_report FORMAT CSV" --host=192.168.0.222 --password=shenjian < part-r-00000
4.2 关联插入dwd_company表
在左连接的子查询中,我们取当前企业最新的年报中的通信地址,如下图所示
# 关联导入,可能DataGrip 客户端超时,就在ClickHouse - Client 命令行运行即可
INSERT INTO etl. dwd_company ( district, ent_name, reg_addr, unified_code, authority, region_code, reg_addr1, province_code, city_code, province_name, city_name, region_name, mail_address)
SELECT district, ent_name, reg_addr, unified_code, authority, region_code, reg_addr1, province_code, city_code, province_name, city_name, region_name, cr. mail_address
FROM etl. dwd_company c
LEFT JOIN (
SELECT unified_code, argMax ( mail_address, year) mail_address, argMax ( year, year) new_year FROM etl. company_report GROUP BY unified_code
) cr ON c. unified_code= cr. unified_code
WHERE cr. mail_address!= '' and cr. mail_address is not null ;
这插入速度还行吧,插入后,存在两条记录,对于ReplaceMergeTree来说,无妨,看过之前文章的你应该很熟悉为啥了吧
4.3 清洗企业通信地址
新建字段mail_address1,剔除省市区前缀信息,列式存储,全量更新很快,请不要单条那种更新
ALTER TABLE etl.dwd_company update mail_address1=replaceRegexpAll(mail_address, '^(.{2,}(省|自治区))?(.{2,}市)?(.{2,}(区|县))?', '') WHERE 1=1
4.4 手动执行分区合并
如果线上对ClickHouse服务稳定性要求极高不建议这样操作,可能影响服务,可以参考9.ClickHouse系列之数据一致性保证
optimize table etl.dwd_company final;
后面可以将dwd_company中所需字段数据导入数据中间层dwm_company,略
欢迎关注公众号算法小生与我沟通交流
你可能感兴趣的:(大数据,hadoop,大数据,分布式)
Kafka集群部署实战
Gold Steps.
技术博文分享 kafka 分布式
服务背景ApacheKafka作为分布式流处理平台,在金融交易系统、物联网数据处理、实时日志分析等场景中发挥关键作用。某电商平台日均处理订单消息1.2亿条,峰值QPS达5万,采用Kafka集群实现订单状态流转、用户行为追踪和库存同步等功能。以下是经过生产验证的集群部署方案及典型故障处理经验。集群运维最佳实践1.容量规划建议指标推荐值监控阈值分区数量/Broker≤4000≥3500告警副本同步延迟
智慧交通是什么,可以帮助我们解决什么问题?
Guheyunyi
运维 大数据 人工智能 信息可视化 前端
智慧交通是什么?智慧交通(SmartTransportation)是指利用物联网(IoT)、大数据、人工智能(AI)、云计算、5G通信等先进技术,对交通系统进行智能化管理和优化,以提高交通效率、减少拥堵、降低事故率、提升出行体验,并实现交通资源的合理配置和可持续发展。智慧交通的核心是通过数据采集、分析和应用,实现交通系统的智能化、自动化和协同化,从而构建一个高效、安全、绿色、便捷的交通生态系统。智
Node.js 中使用 RabbitMQ
海上彼尚
node.js node.js rabbitmq 分布式
目录一、RabbitMQ简介二、核心概念解析三、环境搭建(以Ubuntu为例)四、Node.js实战:生产者与消费者1.安装依赖2.生产者代码(发送消息)3.消费者代码(处理消息)五、高级配置与最佳实践六、常见问题与解决方案七、总结一、RabbitMQ简介RabbitMQ是一个基于AMQP协议的开源消息代理工具,专为分布式系统设计。它通过解耦生产者和消费者实现异步通信,支持流量削峰、任务队列、服务
Java面试八股之Redis集群Cluster
天哥不爱学习
Java面试八股文 java 面试 redis
Redis集群ClusterRedisCluster是一种基于数据分片(Sharding)的分布式缓存和存储系统,它实现了数据的水平扩展、高可用性和自动故障转移。以下是对RedisCluster模式详细实现流程的描述:1.初始化与配置部署节点:在不同的服务器上部署多个Redis节点,每个节点既可以作为主节点也可以作为从节点。配置集群模式:为每个节点启用Cluster模式,指定Cluster所需的端
鸿蒙API14开发【@ohos.account.distributedAccount (分布式账号管理)】短距通信服务
移动开发技术栈
鸿蒙开发 harmonyos 分布式 华为 鸿蒙系统 鸿蒙 通信
本模块提供管理分布式账号的一些基础功能,主要包括查询和更新账号登录状态。说明本模块首批接口从APIversion7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。导入模块import{distributedAccount}from'@kit.BasicServicesKit';distributedAccount.getDistributedAccountAbilitygetDis
python3实现爬取淘宝页面的商品的数据信息(selenium+pyquery+mongodb)
flood_d
mongodb python selenium pyquery 爬虫
1.环境须知做这个爬取的时候需要安装好python3.6和selenium、pyquery等等一些比较常用的爬取和解析库,还需要安装MongoDB这个分布式数据库。2.直接上代码spider.pyimportrefromconfigimport*importpymongofromseleniumimportwebdriverfromselenium.common.exceptionsimportT
Fastdfs-V5.11使用docker部署集群(X86)
礁之
Linux系列 dfs java docker
文章目录一、Fastdfs介绍二、部署信息三、步骤tracker/storage机器的compose内容storage机器的composetracker与storage启动目录层级与配置文件client.confstorage.conf查看集群信息测试测试集群扩容与缩减nginx配置一、Fastdfs介绍FastDFS是一款高性能的分布式文件系统,特别适合用于存储和管理大量的文件二、部署信息使用d
《基于图神经网络的安卓应用检测系统设计与实现》开题报告
大数据蟒行探索者
毕业论文/研究报告 神经网络 android 人工智能 机器学习 大数据 深度学习 python
个人主页:@大数据蟒行探索者目录一、课题的研究目的和意义1.研究目的2.研究意义二、国内(外)研究现状及分析1.国内研究现状2.国外研究现状3.研究分析三、课题主要研究内容及可行性分析1.研究内容2.可行性分析四、研究方案和技术途径1.研究方案2.技术途径五、外部条件及解决办法1.开发环境2.解决办法六、主要参考文献一、课题的研究目的和意义1.研究目的随着智能手机的普及,安卓操作系统成为全球最为广
大数据和人工智能概念全面解析
就犯得上方法
一、大数据和人工智能大数据是伴随着信息数据爆炸式增长和网络计算技术迅速发展而兴起的一个新型概念。根据麦肯锡全球研究所的定义,大数据是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。大数据能够帮助各行各业的企业从原本毫无价值的海量数据中挖掘出用户的需求,使数据能够从量变到质变,真正产生价值
一文搞懂大数据神器Spark,真的太牛了!
qq_23519469
大数据 spark 分布式
Spark是什么在如今这个大数据时代,数据量呈爆炸式增长,传统的数据处理方式已经难以满足需求。就拿电商平台来说,每天产生的交易数据、用户浏览数据、评论数据等,数量巨大且种类繁多。假如要对这些数据进行分析,比如分析用户的购买行为,找出最受欢迎的商品,预测未来的销售趋势等,用普通的单机处理方式,可能需要花费很长时间,甚至根本无法完成。这时,Spark就应运而生了。Spark是一个开源的、基于内存计算的
基于Docker 搭建Redis三主三从分布式集群
DBA学习之路
docker redis 容器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、分布式系统规划二、准备配置文件1.创建redis集群目录三、启动Redis容器四、创建分布式系统1.创建集群2.查看节点信息总结前言提示:这里可以添加本文要记录的大概内容:本次搭建的为”三主三从“的分布式系统,分布式系统中节点存放的数据可以是不同的。当有数据写入请求到达分布式系统后,系统会采用虚拟槽分区算法将数据写入相
《Linux运维总结:基于银河麒麟V10+ARM64架构部署多机elasticsearch7.17.21分布式集群+单机kibana7.17.21二进制版ssl集群》
东城绝神
《Linux运维实战总结》 运维 linux elasticsearch ssl
总结:整理不易,如果对你有帮助,可否点赞关注一下?更多详细内容请参考:Linux运维实战总结一、背景elasticsearch是一个分布式、实时、高性能的搜索和分析引擎,它广泛应用于企业级搜索、日志分析、实时数据处理等领域。随着elasticsearch的广泛应用,安全性变得越来越重要。这里将从安全策略和访问控制两方面来部署elasticsearch集群安全策略涉及到数据安全、访问安全和操作安全等
Rocky Linux安装部署Elasticsearch(ELK日志服务器)_rockylinux elk
2401_83739411
程序员 服务器 linux elasticsearch
一、Elasticsearch的简介Elasticsearch是一个强大的开源搜索和分析引擎,可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性,支持全文搜索、聚合分析、地理空间搜索等功能,是构建实时应用和大规模数据分析平台的首选工具。二、RockyLinux系统安装链接:VMwareWorkstation下载安装(含秘钥)链接:VMwareWorkstation创建虚拟机链接:Ro
Hadoop相关面试题
努力的搬砖人.
java 面试 hadoop
以下是150道Hadoop面试题及其详细回答,涵盖了Hadoop的基础知识、HDFS、MapReduce、YARN、HBase、Hive、Sqoop、Flume、ZooKeeper等多个方面,每道题目都尽量详细且简单易懂:Hadoop基础概念类1.什么是Hadoop?Hadoop是一个由Apache基金会开发的开源分布式计算框架,主要用于处理和存储大规模数据集。它提供了高容错性和高扩展性的分布式存
数据湖:Apache Iceberg在腾讯的探索和实践
学而知之@
数据库 腾讯 大数据 java 编程语言
摘要:今天分享的是ApacheIceberg在腾讯内部的探索和实践。本文结合腾讯大数据技术分享内容和2020全球软件开发大会分享内容进行整理,主要内容包括:1、数据湖技术概述2、ApacheIceberg的简介3、腾讯为什么选择ApacheIceberg4、腾讯看点万亿数据下的业务痛点5、ApacheIceberg在看点实践6、ApacheIceberg读写和删除ApacheIceberg新一代数
AI 时代,学习 Java 应如何入手?
琢磨先生David
人工智能 java
一、Java的现状:生态繁荣与AI融合的双重机遇在2025年的技术版图中,Java依然稳坐企业级开发的“头把交椅”。根据行业统计,Java在全球企业级应用中的市场份额仍超过65%,尤其在微服务架构、大数据平台和物联网(IoT)领域占据核心地位。随着云原生技术的普及,Java生态正经历新一轮进化:轻量化框架通过无服务器架构优化,启动速度提升300%,内存占用降低50%,使得Java在容器化部署中更具
Apache Doris整合Iceberg + Flink CDC构建实时湖仓体的联邦查询分析架构
MfvShell
apache flink 架构 Flink
随着大数据技术的迅猛发展,构建实时湖仓体并进行联邦查询分析成为了许多企业的迫切需求。在这篇文章中,我们将探讨如何利用ApacheDoris整合Iceberg和FlinkCDC来构建这样一个架构,并提供相应的源代码示例。简介实时湖仓体是一种灵活、可扩展的数据架构,结合了数据湖和数据仓库的优势。ApacheDoris是一款开源的分布式SQL引擎,专注于实时分析和查询。Iceberg是一种开放式表格格式
【Apache Storm】
茉菇
apache storm 大数据
一、Storm简介1、概述官网地址:https://storm.apache.org/index.htmlApacheStorm是一个开源的、分布式的实时计算系统,专为处理流式数据而设计。它能够处理大量数据流并在极低的延迟下提供实时的结果。相比于传统的批处理系统,Storm具有处理无限数据流的能力,支持非常高的可扩展性和容错机制。Storm可以适用于多种编程语言,具有高度的灵活性。2、核心功能分布
Node.js系列(4)--微服务架构实践
一进制ᅟᅠ
Node.js 架构 node.js 微服务
Node.js微服务架构实践引言微服务架构已成为构建大规模Node.js应用的主流选择。本文将深入探讨Node.js微服务架构的设计与实现,包括服务拆分、服务治理、通信机制等方面,帮助开发者构建可扩展的微服务系统。微服务架构概述Node.js微服务架构主要包括以下方面:服务拆分:业务领域划分与服务边界服务治理:服务注册、发现与负载均衡通信机制:同步与异步通信方案数据管理:分布式事务与数据一致性可观
flink从kafka读取数据写入clickhouse本地表的实现
Breatrice_li
kafka flink 分布式 大数据
实现功能因为直接写clickhouse的分布式表在数据量比较大的时候会有各种问题,所以做了一个flink读取kafka数据然后路由写入到相应的本地表节点,并且关于不同的表的配置信息可以随时更改并设置生效时间。实现流程首先从kafka将数据读取过来然后进行相应的处理及逻辑判断写入到对应的clickhouse表格中最后根据CDC读取来的配置信息进行相应节点的hash路由,直接写入本地表读取kafka数
Flink读取kafka数据并写入HDFS
王知无(import_bigdata)
Flink系统性学习专栏 hdfs kafka flink
硬刚大数据系列文章链接:2021年从零到大数据专家的学习指南(全面升级版)2021年从零到大数据专家面试篇之Hadoop/HDFS/Yarn篇2021年从零到大数据专家面试篇之SparkSQL篇2021年从零到大数据专家面试篇之消息队列篇2021年从零到大数据专家面试篇之Spark篇2021年从零到大数据专家面试篇之Hbase篇
分布式事务3PC解决了2PC哪些问题?
java干货仓库
八股文汇总 分布式事务 分布式 java 面试
三阶段提交(3PC,Three-PhaseCommit)是对二阶段提交(2PC,Two-PhaseCommit)的改进,旨在解决2PC的一些固有缺陷,特别是在分布式系统中的容错性和性能问题。以下是3PC比2PC更好的原因及其优势的详细分析:1.二阶段提交(2PC)的问题2PC是一种经典的分布式事务协议,分为两个阶段:准备阶段(PreparePhase):协调者向所有参与者发送准备请求。参与者执行事
思途CMS高并发、高性能、高可用架构设计
php
一、整体架构概述思途CMS采用分层架构设计,整体架构分为客户层、接入层、站点层、数据存储层和缓存层。各层之间通过松耦合的方式协同工作,确保系统在高并发场景下的高性能和高可用性。通过分布式部署、负载均衡、多级缓存等技术手段,思途CMS能够有效应对大规模用户访问,保障系统的稳定性和响应速度。二、各层技术特点及实现方式客户层1.1CDN加速思途CMS支持与主流CDN服务商(如阿里云CDN、腾讯云CDN等
按照时间排序的分布式游标分页
像云~
记录 分布式
背景最近有这么一个需求,就是在分页查询的时候,需要返回最近的pagesize条记录,即按照时间倒序的近pagesize条记录。有两个问题:一个就是这些记录来自于不同的存储位置,不能通过一次查询统一排序取数据,而需要分开查询读入,再汇总统一排序另一个就是在进行分页的时候,要保证当前页数据与上一页的连贯性,有点类似刷短视频的瀑布流。即分页查询是统一的,而数据存储是分布式的。方案由于是在高并发的场景下,
深入探索 dubbo-rpc-jsonrpc:跨语言服务调用的高效桥梁
郁铎舒
深入探索dubbo-rpc-jsonrpc:跨语言服务调用的高效桥梁dubbo-rpc-jsonrpcApacheDubbo-rpc-jsonrpc是一个用于ApacheDubbo的JSON-RPC协议实现项目。它提供了一个用于ApacheDubbo的JSON-RPC协议实现库和工具。适合用于在应用程序中处理分布式服务。项目地址:https://gitcode.com/gh_mirrors/dub
Java 大视界 -- Java 大数据在智能体育赛事直播数据分析与观众互动优化中的应用(142)
青云交
大数据新视界 Java 大视界 java 大数据 体育赛事直播 数据分析 观众互动 数据采集 个性化推荐
亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视
Apache storm
赵世炎
storm hadoop
Apachestorm是一个分布式的实时大数据处理系统。用于在容错和水平可拓展方法中处理大量数据。它是一个流数据框架,具有很高的摄取率,无状态。通过zk管理分布式环境和集群状态,并行地对实时数据执行各种操作。storm易于设置和操作,并且它保证每个消息将通过拓扑至少处理一次。基本上Hadoop和Storm框架用于分析大数据。两者互补,在某些方面有所不同。ApacheStorm执行除持久性之外的所有
【etcd】
茉菇
etcd 数据库
一、ETCD简介etcd是一个由CoreOS团队开发的开源项目,旨在提供一个高可用的、分布式的、一致的键值存储,用于配置共享和服务发现。尽管它看起来像一个键值存储,但etcd的设计目标远远超出了传统数据库的功能范围。etcd的核心特性包括:高可用性和容错性:etcd使用Raft共识算法来确保数据的一致性和服务的高可用性。这意味着即使集群中的某些节点出现故障,etcd也能继续提供服务,并保证数据的一
Apache Storm实时流处理的核心技术
Hello.Reader
大数据 apache storm 大数据
1.引言ApacheStorm是一个开源的、分布式的实时计算系统,专为处理流式数据而设计。它能够处理大量数据流并在极低的延迟下提供实时的结果。相比于传统的批处理系统,Storm具有处理无限数据流的能力,支持非常高的可扩展性和容错机制。Storm可以适用于多种编程语言,具有高度的灵活性。1.1什么是ApacheStorm?ApacheStorm是一个流处理引擎,它可以持续处理不断到来的数据流(str
探索电商大数据的艺术:TBBKAnalysis深度解读与应用推荐
洪显彦Lawyer
探索电商大数据的艺术:TBBKAnalysis深度解读与应用推荐TBBKAnalysis关于淘宝“爆款”数据爬取与分析。具体分析见—项目地址:https://gitcode.com/gh_mirrors/tb/TBBKAnalysis在数字化时代的数据洪流中,每一个细微的数据点都蕴含着洞察未来的机遇。今天,我们要探讨的是一个独特且极具启发性的开源项目——TBBKAnalysis。该项目源自知乎上一
Enum用法
不懂事的小屁孩
enum
以前的时候知道enum,但是真心不怎么用,在实际开发中,经常会用到以下代码:
protected final static String XJ = "XJ";
protected final static String YHK = "YHK";
protected final static String PQ = "PQ";
【Spark九十七】RDD API之aggregateByKey
bit1129
spark
1. aggregateByKey的运行机制
/**
* Aggregate the values of each key, using given combine functions and a neutral "zero value".
* This function can return a different result type
hive创建表是报错: Specified key was too long; max key length is 767 bytes
daizj
hive
今天在hive客户端创建表时报错,具体操作如下
hive> create table test2(id string);
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataSto
Map 与 JavaBean之间的转换
周凡杨
java 自省 转换 反射
最近项目里需要一个工具类,它的功能是传入一个Map后可以返回一个JavaBean对象。很喜欢写这样的Java服务,首先我想到的是要通过Java 的反射去实现匿名类的方法调用,这样才可以把Map里的值set 到JavaBean里。其实这里用Java的自省会更方便,下面两个方法就是一个通过反射,一个通过自省来实现本功能。
1:JavaBean类
1 &nb
java连接ftp下载
g21121
java
有的时候需要用到java连接ftp服务器下载,上传一些操作,下面写了一个小例子。
/** ftp服务器地址 */
private String ftpHost;
/** ftp服务器用户名 */
private String ftpName;
/** ftp服务器密码 */
private String ftpPass;
/** ftp根目录 */
private String f
web报表工具FineReport使用中遇到的常见报错及解决办法(二)
老A不折腾
finereport web报表 java报表 总结
抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、没有返回数据集:
在存储过程中的操作语句之前加上set nocount on 或者在数据集exec调用存储过程的前面加上这句。当S
linux 系统cpu 内存等信息查看
墙头上一根草
cpu 内存 liunx
1 查看CPU
1.1 查看CPU个数
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2
**uniq命令:删除重复行;wc –l命令:统计行数**
1.2 查看CPU核数
# cat /proc/cpuinfo | grep "cpu cores" | u
Spring中的AOP
aijuans
spring AOP
Spring中的AOP
Written by Tony Jiang @ 2012-1-18 (转)何为AOP
AOP,面向切面编程。
在不改动代码的前提下,灵活的在现有代码的执行顺序前后,添加进新规机能。
来一个简单的Sample:
目标类:
[java]
view plain
copy
print
?
package&nb
placeholder(HTML 5) IE 兼容插件
alxw4616
JavaScript jquery jQuery插件
placeholder 这个属性被越来越频繁的使用.
但为做HTML 5 特性IE没能实现这东西.
以下的jQuery插件就是用来在IE上实现该属性的.
/**
* [placeholder(HTML 5) IE 实现.IE9以下通过测试.]
* v 1.0 by oTwo 2014年7月31日 11:45:29
*/
$.fn.placeholder = function
Object类,值域,泛型等总结(适合有基础的人看)
百合不是茶
泛型的继承和通配符 变量的值域 Object类转换
java的作用域在编程的时候经常会遇到,而我经常会搞不清楚这个
问题,所以在家的这几天回忆一下过去不知道的每个小知识点
变量的值域;
package 基础;
/**
* 作用域的范围
*
* @author Administrator
*
*/
public class zuoyongyu {
public static vo
JDK1.5 Condition接口
bijian1013
java thread Condition java多线程
Condition 将 Object 监视器方法(wait、notify和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。
条件(也称为条件队列或条件变量)为线程提供了一
开源中国OSC源创会记录
bijian1013
hadoop spark MemSQL
一.Strata+Hadoop World(SHW)大会
是全世界最大的大数据大会之一。SHW大会为各种技术提供了深度交流的机会,还会看到最领先的大数据技术、最广泛的应用场景、最有趣的用例教学以及最全面的大数据行业和趋势探讨。
二.Hadoop
&nbs
【Java范型七】范型消除
bit1129
java
范型是Java1.5引入的语言特性,它是编译时的一个语法现象,也就是说,对于一个类,不管是范型类还是非范型类,编译得到的字节码是一样的,差别仅在于通过范型这种语法来进行编译时的类型检查,在运行时是没有范型或者类型参数这个说法的。
范型跟反射刚好相反,反射是一种运行时行为,所以编译时不能访问的变量或者方法(比如private),在运行时通过反射是可以访问的,也就是说,可见性也是一种编译时的行为,在
【Spark九十四】spark-sql工具的使用
bit1129
spark
spark-sql是Spark bin目录下的一个可执行脚本,它的目的是通过这个脚本执行Hive的命令,即原来通过
hive>输入的指令可以通过spark-sql>输入的指令来完成。
spark-sql可以使用内置的Hive metadata-store,也可以使用已经独立安装的Hive的metadata store
关于Hive build into Spark
js做的各种倒计时
ronin47
js 倒计时
第一种:精确到秒的javascript倒计时代码
HTML代码:
<form name="form1">
<div align="center" align="middle"
java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接
bylijinnan
java
public class MaxCatenate {
/*
* Q.37 有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接,
* 问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
*/
public static void main(String[] args){
mongoDB安装
开窍的石头
mongodb安装 基本操作
mongoDB的安装
1:mongoDB下载 https://www.mongodb.org/downloads
2:下载mongoDB下载后解压
 
[开源项目]引擎的关键意义
comsci
开源项目
一个系统,最核心的东西就是引擎。。。。。
而要设计和制造出引擎,最关键的是要坚持。。。。。。
现在最先进的引擎技术,也是从莱特兄弟那里出现的,但是中间一直没有断过研发的
 
软件度量的一些方法
cuiyadll
方法
软件度量的一些方法http://cuiyingfeng.blog.51cto.com/43841/6775/在前面我们已介绍了组成软件度量的几个方面。在这里我们将先给出关于这几个方面的一个纲要介绍。在后面我们还会作进一步具体的阐述。当我们不从高层次的概念级来看软件度量及其目标的时候,我们很容易把这些活动看成是不同而且毫不相干的。我们现在希望表明他们是怎样恰如其分地嵌入我们的框架的。也就是我们度量的
XSD中的targetNameSpace解释
darrenzhu
xml namespace xsd targetnamespace
参考链接:
http://blog.csdn.net/colin1014/article/details/357694
xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找:
例如:以下xsd文件,就出现了该错误,即便是在一
什么是RAID0、RAID1、RAID0+1、RAID5,等磁盘阵列模式?
dcj3sjt126com
raid
RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。
Mir
yii2 restful web服务快速入门
dcj3sjt126com
PHP yii2
快速入门
Yii 提供了一整套用来简化实现 RESTful 风格的 Web Service 服务的 API。 特别是,Yii 支持以下关于 RESTful 风格的 API:
支持 Active Record 类的通用API的快速原型
涉及的响应格式(在默认情况下支持 JSON 和 XML)
支持可选输出字段的定制对象序列化
适当的格式的数据采集和验证错误
MongoDB查询(3)——内嵌文档查询(七)
eksliang
MongoDB查询内嵌文档 MongoDB查询内嵌数组
MongoDB查询内嵌文档
转载请出自出处:http://eksliang.iteye.com/blog/2177301 一、概述
有两种方法可以查询内嵌文档:查询整个文档;针对键值对进行查询。这两种方式是不同的,下面我通过例子进行分别说明。
二、查询整个文档
例如:有如下文档
db.emp.insert({
&qu
android4.4从系统图库无法加载图片的问题
gundumw100
android
典型的使用场景就是要设置一个头像,头像需要从系统图库或者拍照获得,在android4.4之前,我用的代码没问题,但是今天使用android4.4的时候突然发现不灵了。baidu了一圈,终于解决了。
下面是解决方案:
private String[] items = new String[] { "图库","拍照" };
/* 头像名称 */
网页特效大全 jQuery等
ini
JavaScript jquery css html5 ini
HTML5和CSS3知识和特效
asp.net ajax jquery实例
分享一个下雪的特效
jQuery倾斜的动画导航菜单
选美大赛示例 你会选谁
jQuery实现HTML5时钟
功能强大的滚动播放插件JQ-Slide
万圣节快乐!!!
向上弹出菜单jQuery插件
htm5视差动画
jquery将列表倒转顺序
推荐一个jQuery分页插件
jquery animate
swift objc_setAssociatedObject block(version1.2 xcode6.4)
啸笑天
version
import UIKit
class LSObjectWrapper: NSObject {
let value: ((barButton: UIButton?) -> Void)?
init(value: (barButton: UIButton?) -> Void) {
self.value = value
Aegis 默认的 Xfire 绑定方式,将 XML 映射为 POJO
MagicMa_007
java POJO xml Aegis xfire
Aegis 是一个默认的 Xfire 绑定方式,它将 XML 映射为 POJO, 支持代码先行的开发.你开发服 务类与 POJO,它为你生成 XML schema/wsdl
XML 和 注解映射概览
默认情况下,你的 POJO 类被是基于他们的名字与命名空间被序列化。如果
js get max value in (json) Array
qiaolevip
每天进步一点点 学习永无止境 max 纵观千象
// Max value in Array
var arr = [1,2,3,5,3,2];Math.max.apply(null, arr); // 5
// Max value in Jaon Array
var arr = [{"x":"8/11/2009","y":0.026572007},{"x"
XMLhttpRequest 请求 XML,JSON ,POJO 数据
Luob.
POJO json Ajax xml XMLhttpREquest
在使用XMlhttpRequest对象发送请求和响应之前,必须首先使用javaScript对象创建一个XMLHttpRquest对象。
var xmlhttp;
function getXMLHttpRequest(){
if(window.ActiveXObject){
xmlhttp:new ActiveXObject("Microsoft.XMLHTTP
jquery
wuai
jquery
以下防止文档在完全加载之前运行Jquery代码,否则会出现试图隐藏一个不存在的元素、获得未完全加载的图像的大小 等等
$(document).ready(function(){
jquery代码;
});
<script type="text/javascript" src="c:/scripts/jquery-1.4.2.min.js&quo