flume安装
sudo apt install mysql-server
不要安装ubuntu自带的connector,那个东西弄了个链接到hive/lib里面结果用不了
我的mysql版本是5.7
然后
sudo mysql_secure_installation
然后sudo mysql -uroot -p
进去看看exit;出来
case: log4j → flume → hdfs
安装maven:
https://blog.csdn.net/qq_24091555/article/details/76039475
第一步:修改maven根目录下的conf文件夹中的setting.xml文件,内容如下:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
第二步: pom.xml文件里添加
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
MAVEN helloworld测试
https://blog.csdn.net/cringkong/article/details/79548082
# check
tree
# run
java -jav /target/xxx.jar
安装Log4J
不用装,MAVEN自动调用
项目工程设置
请无视greeter, helloworld,那个是个helloworld的测试,是上面那个安装maven的时候做的小测试
然后编辑Writelog.java
package com.flume;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
/**
* Created by ywchen on 2016-09-06.
*/
public class WriteLog {
protected static final Logger logger = LoggerFactory.getLogger(WriteLog.class);
public static void main(String[] args) throws Exception {
while (true) {
logger.info(String.valueOf(new Date().getTime()));
Thread.sleep(2000);
}
}
}
编辑pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>flume-test</groupId>
<artifactId>flume-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-core</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.flume.flume-ng-clients</groupId>
<artifactId>flume-ng-log4jappender</artifactId>
<version>1.6.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意修改flume对应的软件版本,我查了我的flume是1.9.0
在项目工程根目录下:
maven clean
maven package
编辑run.sh
#!/bin/sh
jarlist=$(ls /usr/app/flume/lib/*.jar)
CLASSPATH=~/maven-Prj/hellomaven/target/flume-test-0.0.1-SNAPSHOT.jar
for jar in ${jarlist}
do
CLASSPATH=${CLASSPATH}:${jar}
done
echo ${CLASSPATH}
java -classpath $CLASSPATH com.flume.WriteLog
可以参照着修改一下对应的路径
这个脚本简单来说就是:
- 包括flume所有的jar包进去
- 包括项目工程编译出来的包进去
- 然后运行com.flume.Writelog类
看一下运行结果:
对应的hadoop:
让我们再取出来看一下:
的确是我们想要写入的数据
完结撒花
参考文献:
hadoop+spark生态系统实战与指南