tonglin0325的个人主页

flume学习笔记——安装和使用

Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;
同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Flume是一个专门设计用来从大量的源,推送数据到Hadoop生态系统中各种各样存储系统中去的,例如HDFS和HBase。

Guide: http://flume.apache.org/FlumeUserGuide.html

全文 >>

Elasticsearch学习笔记——安装、数据导入和查询

到elasticsearch网站下载最新版本的elasticsearch 6.2.1

1
2
https://www.elastic.co/downloads/elasticsearch

其他版本

1
2
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-2

嫌弃官方下载速度慢的可以去华为的镜像站去

1
2
https://mirrors.huaweicloud.com/elasticsearch/6.4.2/

中文文档请参考

1
2
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

英文文档及其Java API使用方法请参考,官方文档比任何博客都可信

1
2
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html

Python API使用方法

1
2
http://elasticsearch-py.readthedocs.io/en/master/

下载tar包,然后解压到/usr/local目录下,修改一下用户和组之后可以使用非root用户启动,启动命令

1
2
./bin/elasticsearch

然后访问http://127.0.0.1:9200/

如果需要让外网访问Elasticsearch的9200端口的话,需要将es的host绑定到外网

修改 /configs/elasticsearch.yml文件,添加如下

1
2
3
network.host: 0.0.0.0
http.port: 9200

然后重启,如果遇到下面问题的话

1
2
3
4
5
[2018-01-28T23:51:35,204][INFO ][o.e.b.BootstrapChecks    ] [qR5cyzh] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法

第一个ERROR,

在文件中添加 sudo vim /etc/security/limits.conf,然后重新登录

1
2
3
4
5
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

如果你是用supervisor启动es的话,需要修改文件 vim /etc/supervisor/supervisord.conf,然后重启supervisor

1
2
3
4
[supervisord]

minfds=65536

全文 >>

Gephi学习笔记

使用gephi对图数据进行可视化操作,下面网址是gephi的说明文档

1
2
https://seinecle.github.io/gephi-tutorials/generated-pdf/semantic-web-importer-en.pdf

使用的gephi版本号:0.9.1

系统:Ubuntu 16.04

内存:8G

全文 >>

Centos7.0下MySQL的安装

1.下载mysql的repo源

1
2
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2.安装mysql-community-release-el7-5.noarch.rpm包

1
2
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3.安装mysql

1
2
sudo yum install mysql-server

根据提示安装就可以了,不过安装完成后没有密码,需要重置密码

4.重置mysql密码

1
2
mysql -u root

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

1
2
sudo chown -R root:root /var/lib/mysql

重启mysql服务

1
2
service mysqld restart

接下来登录重置密码:

1
2
3
4
5
$ mysql -u root  //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > FLUSH PRIVILEGES;

如果mysql -u root遇到/var/lib/mysql/mysql.sock错误的时候

1
2
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 

远程使用workbench登录MySQL

1
2
3
4
5
6
7
mysql -u root -p #登录MySQL
use mysql; #库
select host,user,password from user; #表中存放的是有访问权限的用户和ip
grant all privileges on *.* to 'root'@'你的IP' identified by 'root' with grant option; # 添加用户,其中identified by 'root'中的root是'root'@'你的IP'这个用户登录时候使用的密码
flush privileges;
set password for 'root'@'你的IP'=password('你的密码'); # 更改密码

全文 >>

Ubuntu16.04安装apache-airflow

1.安装apache-airflow 1.8.0

服务器使用的是centos系统,需要安装好pip和setuptools,同时注意更新安装的版本

接下来参考安装好Airflow

1
2
3
Airflow 1.8 工作流平台搭建 http://blog.csdn.net/kk185800961/article/details/78431484
airflow最简安装方法 centos 6.5 http://blog.csdn.net/Excaliburace/article/details/53818530

以mysql作为数据库,airflow默认使用sqlite作为数据库

1.建表

1
2
3
4
5
6
# 创建相关数据库及账号  
mysql> create database airflow default charset utf8 collate utf8_general_ci;
mysql> create user airflow@'localhost' identified by 'airflow';
mysql> grant all on airflow.* to airflow@'localhost';
mysql> flush privileges;

2.安装airflow,需要环境隔离的时候请使用virtualenv ./env创建隔离环境

1
2
sudo pip install apache-airflow==1.8.0

3.使用pip来安装,安装的路径在python路径下site-packages文件夹,在使用上述命令一遍就能看到

1
2
~/anaconda2/lib/python2.7/site-packages/airflow

4.在/etc/proofile中添加,之后source一下

1
2
3
#Airflow
export AIRFLOW_HOME=/home/lintong/airflow

5.创建数据库,这一步会创建上面路径的airflow文件夹,以及文件夹中的一些文件

1
2
airflow initdb

全文 >>

Hive学习笔记——安装和内部表CRUD

1.首先需要安装Hadoop和Hive

安装的时候参考 http://blog.csdn.net/jdplus/article/details/46493553

安装的版本是apache-hive-2.1.1-bin.tar.gz,解压到/usr/local目录下

然后在/etc/profile文件中添加

1
2
3
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

2.修改配置文件

在bin/hive-config.sh文件中添加

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_121
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop

添加hive-env.sh文件

1
2
cp hive-env.sh.template hive-env.sh

修改conf目录下的hive-site.xml的内容,该模式是本地模式,且使用JDBC连接元数据,本地模式可以查看Hive编程指南P24-27

实际数据还是存放在HDFS中,MySQL中存放的是元数据表,即schema信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<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>XXXX</value>
<description>password to use against metastore database</description>
</property>
#如果不配置下面的部分会产生错误1.
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/hive/tmp/local</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/hive/tmp/downloaded</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/hive/tmp/location</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/usr/local/hive/tmp/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
</configuration>

注意/usr/local/hive/tmp/local , /usr/local/hive/tmp/downloaded , /usr/local/hive/tmp/location , /usr/local/hive/tmp/operation_logs 这四个文件夹需要自己创建

修改hive-log4j.properties

1
2
3
4
#cp hive-log4j.properties.template hive-log4j.properties
#vim hive-log4j.properties
hive.log.dir=自定义目录/log/

在HDFS上建立/tmp和/user/hive/warehouse目录,并赋予组用户写权限

注意这里面的/user/hive/warehouse是由hive-site.xml中的${hive.metastore.warehouse.dir}指定的数据仓库的目录

1
2
3
4
5
hadoop fs -mkdir       /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

全文 >>