数据流程图
详细内容见文档
1、搭建nginx weekend08
2、配置flume weekend08节点
3、搭建hadoop集群 weekend08、weekend09、weekend10、weekend11、weekend12、weekend13。
启动顺序
1、启动hadoop集群
2、启动flume
flume-ng agent -n a1 -c/home/flumeconfig-f/home/flumeconfig/hdfs.conf-Dflume.root.logger=DEBUG,consol
3、启动nginx 这里配置的是开机自动启动方式
启动tomcat服务器访问网站。产生的日志信息会存储在 /opt/data/access.log
flume会实时的读取access.log信息 然后存储到hdfs中。在hdfs中日志是按照当前的日期作为文件夹存储的。
4、数据的清洗操作
1)启动Hbase服务:在weekend10上执行 start-hbase.sh命令 .
2)在Hbase中创建eventlog 表指定列族log。
hbase shell 启动shell
create 'eventlog','log'
3)运行mapreduce程序进行数据的清洗
这里的运行方式需要指定参数的方式进行运行
运行的时候报错信息
WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path
项目中用到了Hbase,貌似用了Hadoop。
项目启动的时候,报了错,但是不影响正常使用。
但是,控制台有红色错误,看着不太爽,就想办法把这个问题解决了。
错误提示“Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable
null
\bin\winutils.exe in the Hadoop binaries
”
网上搜了下,在http://www.tuicool.com/articles/iABZJj 找到了解决办法。
“
1.下载winutils的windows版本
GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github.com/srccodes/hadoop-common-2.2.0-bin ,直接下载此项目的zip包,下载后是文件名是hadoop-common-2.2.0-bin-master.zip,随便解压到一个目录。
2.配置环境变量
增加用户变量HADOOP_HOME,值是下载的zip包解压的目录,然后在系统变量path里增加$HADOOP_HOME\bin 即可。
再次运行程序,正常执行。
”
但是,我配置了Hadoop的环境变量之后,Eclipse项目启动仍然报错。
我又尝试关闭了已经打开过的2个cmd控制台,还是不行。
最后,重启了Eclipse,再次启动项目,终于没有刚刚的错误了。
但是,有了个Warn警告。
“[2015-10-14 16:50:53 WARN ] [main] util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”
大致意思是,“没有加载到原生的hadoop库,尽可能使用java内置的”。
同样的问题,一次解决,下次照样使用,其他人也可以参考。
参考资料:http://www.tuicool.com/articles/iABZJj
4)将清洗的数据存储到Hbase中。
5、mapreduce从hbase中读取数据
6、将分析的结果存储在mysql(weekend08节点)中
修改项目中涉及到的数据库配置信息
然后在指定的数据库创建需要的结果表
然后执行mapreducer程序。
查看mysql结果