——安装hadoop参考这篇blog:
http://www.cnblogs.com/lanxuezaipiao/p/3525554.html?__=1a36
后面产生的问题,slave和master的version number不一样,也要同时改成一样
——从数据库里面拿数据,因为没有找到PigStorage以多种分隔符分隔的方法,只好先从数据库里用sql先筛选好。
mysql -u * -p*
show databases;
use gwr;
show tables;
select * from AccountStats into outfile '/tmp/test.csv';
select * from AccountStats where StatsType like "EON_SH.heatinghours" into outfile '/tmp/heatinghours.csv' fields terminated by ',';
select * from AccountStats where StatsType like "EON_SH.hotwaterhours" into outfile '/tmp/hotwaterhours.csv' fields terminated by ',';
命令整合:
mysql -u greenwave -pgreen4irvine gwr -e 'select * from AccountStats';
ssh -i ~/.ssh/eon-dev.rsa root@* "mysql -u greenwave -pgreen4irvine gwr --skip-column-names -e 'select * from AccountStats where StatsType like \"EON_SH.heatinghours\"; ' " >> /home/hduser/Code/Pig/hadoop/data.csv // 保存远程sql产生的文件到本地,不要表头
——把产生的csv移动到本地的命令
ssh -i ~/.ssh/eon-dev.rsa root@*
scp -i ~/.ssh/eon-dev.rsa root@*:/tmp/test.csv .
——把筛选好的csv 文件放到hadoop的hdfs系统中。(hdfs系统和操作系统类似,只不过是一个虚拟系统)
hdfs系统文件操作命令如下:
http://blog.csdn.net/bigdatahappy/article/details/10068881
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
http://www.cnblogs.com/gpcuster/archive/2010/06/04/1751538.html
在本次工作中,命令如下:
hadoop dfs -mkdir data
在hdfs上的/user/hduser下新建data文件夹,储存data
hadoop dfs -copyFromLocal /home/hduser/Code/Pig/hadoop/heatinghours.csv /data/heatinghours.csv
注意,本地文件必须写全路径名,hdfs的路径相当于root是在/user/hduser/这个虚拟路径下的。
从hdfs系统取出data
hadoop fs -get /user/hduser/out/part-r-00000 /home/hduser/Code/Pig/hadoop/results.csv
解决pid的问题:
http://blog.sina.com.cn/s/blog_6d932f2a0101fsxn.html
解决hadoop的NameNode启动异常--java.io.IOException: could only be replicated to 0
如果重启电脑之后再启动hadoop,namenode没起来。删除slave和master下的tmp,再建tmp,再在master下执行hadoop namenode -format