DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、MaxCompute(原ODPS)、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

datax-elasticsearch是datax的一个支持elasticsearch的插件,包含elasticsearchreaderelasticsearchwriter两部分。借助于datax体系,能够高效的在elasticsearch与oracle、mysql、HDFS等异构数据源间同步数据。
阅读全文

说明

官方提供了完整的Java API和Rest API(文档地址),并提供了TransportClient客户端实现了Java API,Rest API因为使用http协议调用,并没有提供相应的客户端。

在前文 “elasticserch-sql和mybatis整合记录” 实现了elasticsearch-sql和mybatis的整合,但是elasticsearch-sql提供的功能相当有限,仅支持极其简单的查询,不支持增加、删除和修改。Rest API功能强大,在实际应用中可能会因前台参数的不同而组合不同的条件,拼接字符串又太麻烦,如果实现Rest API和mybatis整合,让mybatis强大的动态条件功能组合rest API,会让代码更简单更容易维护。

Rest API客户端使用Jest,具体详情和文档参考GitHub Jest主页。在之前的基础上修改整合。

2017-8-12修改:
重写了该项目,分离了Druid连接池,不再限制使用Druid,添加了Driver,项目已共享至GitHub elasticsearch-jdbc,欢迎fork

阅读全文

说明

elasticearch即es本身没有JDBC驱动,是无法像mybatis管理数据库连接池进行数据库操作的。在GitHub上有个elasticsearch-sql的项目,作为es的插件后能够使用sql对es进行数据检索,项目提供了一个支持JDBC的实验特性,在druid的基础上实现了部分JDBC的功能。GitHub上目前仅给出了一个使用用例

2017-8-12修改:
重写了该项目,分离了Druid连接池,不再限制使用Druid,添加了Driver,项目已共享至GitHub elasticsearch-jdbc,欢迎fork

1
2
3
4
5
6
7
8
9
10
11
12
13
Properties properties = new Properties();
properties.put("url", "jdbc:elasticsearch://192.168.70.128:9300/");
DruidDataSource dds = (DruidDataSource) ElasticSearchDruidDataSourceFactory.createDataSource(properties);
Connection connection = dds.getConnection();
PreparedStatement ps = connection.prepareStatement("SELECT * from radiott");
ResultSet resultSet = ps.executeQuery();
List<String> result = new ArrayList<String>();
while (resultSet.next()) {
System.out.println(resultSet.getString("id") + "," + resultSet.getString("name"));
}
ps.close();
connection.close();
dds.close();
阅读全文

翻译自elasticsearch官方文档,整理了java api和rest api的文档部分,仅仅是整理翻译,不是逐字逐句,某些遗漏部分请移步官方文档。

聚合

基础使用

1
2
3
4
5
6
7
8
9
10
11
12
13
SearchResponse sr = client.prepareSearch()
.setQuery(QueryBuilders.matchAllQuery())
.addAggregation(
AggregationBuilders.terms("agg1").field("field")
)
.addAggregation(
AggregationBuilders.dateHistogram("agg2")
.field("birth")
.interval(DateHistogramInterval.YEAR)
)
.execute().actionGet();
Terms agg1 = sr.getAggregations().get("agg1");
DateHistogram agg2 = sr.getAggregations().get("agg2");

阅读全文

elasticsearch版本 2.4.5

安装

  • 下载es并解压
  • 修改config目录下elasticsearch.yml文件

    1
    2
    3
    4
    cluster.name: my-es
    node.name: node-1
    network.host: 192.168.70.128
    http.port: 9200
  • 在elasticsearch根目录下创建data目录

elasticsearch不允许使用root账户启动,需要添加一个新账户

1
2
3
4
5
6
useradd esroot #创建用户
passwd esroot #设置密码,连续输入两次
groupadd es #添加分组
usermod -G esroot es #如果报用户“es”不存在,是因为服务器版本问题,改成usermod -G es esroot
chown -R esroot.es * #在elasticsearch根目录下执行,给用户赋权
su esroot #切换用户

阅读全文

hadoop一些问题记录

发布在 大数据

升级Hadoop后无法启动namenode

namenode 默认在/tmp下建立临时文件,但关机后,/tmp下文档自动删除,再次启动Master造成文件不匹配,所以namenode启动失败。
在core-site.xml中指定临时文件位置,然后清空该目录,再运行hadoop namenode -format重新格式化

1
2
3
4
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadooptemp</value>
<property>

value中的路径只要不是/tmp 就行。

阅读全文

hive笔记

发布在 大数据, hive

HIVE笔记

启动hive和内置derby:hive --service hiveserver2

测试连接:

  1. bin/beeline
  2. !connect jdbc:hive2://192.168.70.128:10000/test

停止hive:hive>exit;

一些重要的配置

  • hive-site.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>password to use against metastore database</description>
    </property>
阅读全文

hbase笔记

发布在 大数据, hbase

记录hbase的基本概念、命令和操作

HBase 笔记

启动

  • bin/start-hbase.sh

    Shell 命令

    进入shell:hbase shell

    通用命令

  • status: 提供HBase的状态,例如,服务器的数量
  • version: 提供正在使用HBase版本
  • table_help: 表的一些命令帮助
  • whoami: 提供有关用户的信息
阅读全文
  • 第 1 页 共 1 页

忘语

热爱生活,享受code


一名虔诚的程序猿