同样是月薪未过万的工作,也分两种——
一种是出卖自己的时间、精力乃至生命,来换些钱;
一种是构建你生命和人格的同时,顺便赚些钱。
话好说,事难做。
1、writable类用于实现数据的序列化和反序列化存储传输;
序列化指:将数据转化为二进制,反之亦反
2、value . toString()方法将value的类型转化为String类型
value . toString(). split("n") 指,将转化的字符串,按n的格式分开
Split("。")是按照什么拆分字符串 给你举个例子:比如你的content字段的值是 1。2。3 按照 。把值拆分成数组 string[] value=Eval("content").ToString().Split("。")3、NumberFormatException
数字转化异常,比如:转化过程中遇到“164//240”因为有“//”所以会抛出异常
4、在shell命令行下编译java文件,并且压缩为jar包
1、编译java文件
[xm@master wordclass]$ javac WordCount.java
2、打jar包
[xm@master wordclass]$ jar -cvf WordCount.jar ./WordCount*.class
以上操作必须要在java文件所在目录下操作
3、jar包中的META-INF/MANIFEST.MF文件下,需要有键值对:main-class: xxx
且每个键值对的key后面必须要有一个空格
5、在hadoop下运行的java程序好像都是jar包,然后复制到hadoop的mapreduce目录下执行
有待查证
6、经过一上午的摸索,我觉得先放弃纯粹的自主编程比较科学。
现在转化思路,把安骏给的例子调试通
7、在调试安骏给的例子的时候,发现自己的环境还没完全搭好;
还差一个hadoop的插件没安装,但是死活安不上
首先是2.9.0安装到中间,new location无法执行;然后尝试换了一个0.20.2插件之后,连原来的进度都到不了了
明天早起,对于这个插件;
1、卸载eclipse,重新安装,再次尝试安装2.9.0插件(day2:eclipse重新安装成功,尝试安装插件)
后续:插件安装依然不成功,new location点击无响应;
查找资料后,发现插件缺少jar包,应该有
commons-cli-1.2.jar和hadoop-core.jar两个包。
将HADOOP_HOME/lib目录下的 commons-configuration-1.6.jar , commons-httpclient-3.0.1.jar , commons-lang-2.4.jar , jackson-core-asl-1.0.1.jar 和 jackson-mapper-asl-1.0.1.jar
等5个包复制到hadoop-eclipse-plugin-0.20.203.0.jar(插件)的lib目录下。
我的jar包也并不齐全,缺少hadoop-core.jar;commons-httpclient-3.0.1.jar;
hadoop-core.jar可能是老版本的jar包
未在hadoop的lib目录下找到commons-httpclient-3.0.1.jar包,从网上下载了一个
导入jar包后,还需要改写配置文件MANIFEST.MF
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
原配置文件中有 commons-httpclient-3.0.1.jar的记录
然后重启软件,并没有什么卵用
我想卸载这个最新版本的eclipse,下载一个旧版本的
2、如果依然无法成功,那就在网上找到自己编译制作hadoop插件的教程,尝试自己制作
3、叫安骏来确认,看看真正的编译环境是不是插件安装好之后的样子
8、明天还需要导包,将文件编译出错的包,网上说必须要导的包都导入到eclipse里面
9、以我目前的能力,暂时就只能做到这些了,准备好和降老师交代你无法按时完成任务的情况,听候发落
10、先拜托安骏在他的电脑上运行出求最值函数
然后再考虑在自己电脑上实现;安骏的电脑上也调不出。这条路彻底断了
11、现在先开始导包搜一搜导包的教程;
需要导入hadoop的share文件下common,hdfs,mapreduce,yarn根目录下jar包和对应文件lib目录里面的所有jar包
12、hadoop eclipse插件可以安装上了;用了eclipse旧版本的juno,和旧版本的插件0.20.2
真不知道这个抽风的hadoop是怎么个意思,明明和自己版本号匹配的插件安装不上,旧版本反而可以
所以还是出问题了;配置完成后
显示 error: server IPC version 9 cannot communicate with client version 3
//todo
IPC version:
client version:
初步估计还是因为版本问题,考虑原路返回,再试一次,这次不行的话就先不安装插件了,或者自己编译生成插件
自己编译需要回到windows环境;网址:https://www.cnblogs.com/zlslch/p/5891331.html;
https://blog.csdn.net/hehuan1990/article/details/79431861;
https://blog.csdn.net/congcong68/article/details/42098391
13、接下来需要考虑new hadoop location的准备工作
查找core-site.xml 和mapper-site.xml
14、现在导入安骏的例子,导入实例运行所需要的库及jar包
导入库和jar包成功;程序无报错;
15、现在开始尝试将mapreduce函数导出jar包,放在hdfs上执行
好像避免不了要用到hadoop eclipse插件
16、降老师给的意见是安装hadoop插件,自行编译,不要下载
现在下载了编译所需的ANT插件;在配置环境变量时进入vim需要用到强制保存退出命令
:w !sudo tee %
很实用的命令
17、现在的问题是添加环境变量之后就会陷入无限重新登录
只能在每次登录之后添加环境变量
在每次关机之前删除环境变量(在/etc/profile目录下面)
开机启动时候需要把环境变量写到/etc/profile里面
环境变量如下
export HADOOP_HOME=/home/jhon_s/hadoop/hadoop-2.9.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME=/home/jhon_s/java/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin
export ANT_HOME=/home/jhon_s/java/apache-ant-1.9.8
export PATH=$ANT_HOME/bin:$PATH
export CLASSPATH=$ANT_HOME/lib:$CLASSPATH
直接在默认目录下输入
vim /etc/profile
在最后一行复制这些环境变量
:w !sudo tee %
保存更改
source /etc/profile
使得更改生效
java -version
查看是否生效
关机之前,删除以上环境变量;
18、之后环境变量的东西还是不太对,后来就把全部的环境变量重新写到~/.bashrc里面了
19、现在我想知道,hadoop是否需要配置环境变量
在hadoop的安装目录下;执行hadoop version命令
jhon_s@Jarvis:~/hadoop/hadoop-2.9.0$ bin/hadoop version
能够得到hadoop的版本信息
可能配置过环境变量之后,就能在任意路径执行hadoop命令
这就是环境变量的作用
那么按照这种思路,所有的环境变量都可以不配置。
那么编译就在指定文件路径下,编译就行。
所以现在我们可以编译插件了。
为什么没有早点搞清楚环境变量的作用?
20、以后的工作计划是这样
先在,linux系统上面尝试,看看能不能把插件编译成功
如果尝试没有结果的话,那就在windows里面装一个虚拟机,在虚拟机里面重新来一遍
依照樊的教程,试试看
或者,卸载hadoop2.9.0;重新安装2.6.0,严格按照网上关于插件编译的教程执行
或者,先问问公司的人,看看他们是否可以解决这个问题
尝试插件编译的时间最好在五一左右,需要一整块的时间,累计分配24小时,时间片长度最低三个小时
编译失败之后,就可以尝试问问公司的人
在这之前,需要明白你的问题是什么,
1、插件编译失败?
2、如何在eclipse上编程,并导到hadoop上,能成功执行
3、如何连接eclipse和hadoop?
大概是这个路数
今天很烦啊,状态不太好,需要冷静冷静,好好想想。
21、来开始工作吧
https://www.cnblogs.com/shishanyuan/p/4178732.html
上面的这个连接里面有完整的插件使用过程
我们还是需要试一试,看看能不能编译成功插件
是不是需要重新安装Hadoop2.6.0,重新安装需要配置的东西和过程还是否熟悉
还接触到一个Hadoop stdio ,好像也可以达到类似功能,只是目前没有找到下载资源,
似乎直接用vim也可以编程,但是不知道怎么做
22、准备重新安装hadoop-0.20.2
<value>/home/pc/hadoop-0.20.2/tmp/hadoop-${user.name}value>
这一句在core-site.xml里面其中${user.name}被我修改为jhon_s可能会报错
访问namenode时候的网址应该写成:http://localhost:50070/dfshealth.jsp;注意后缀是jsp
hadoop-0.20.2安装完成
其中已经预备了hadoop-eclipse插件!
下面就可以试试这个插件了
23、先尝试用几个hdfs命令
放几个文件试试
没有问题,示例程序完成,数据成功加载到文件系统中
24、但是,eclipse出了问题,不能打开
可能需要重新配置java环境变量
重新安装eclipse
25、linux的环境变量配置;
目前接触到两种
1、修改.bashrc,但是,貌似因此不能启动eclipse
2、 修改/etc/profile,但是,可能因此出现无限重启
重新试过,修改了/etc/profile,没有使用source命令,没有出现无限重启,eclipse可以正常启动
26、在配置hadoop eclipse插件时候,地址栏填localhost报错,提示无法连接,填192.168.1.111时候没有报错
27、使用hadoop的旧版本自带的连接工具,可以连接到hadoop,但是并不能看见hdfs上原本的文件
可能是因为hadoop的安全模式,或者因为linux 的防火墙
先尝试关闭了linux防火墙,
关闭linux防火墙成功解决了Listing folder content...
hdfs文件不显示,这个问题成功解决,现在hfds上的所有文件都能显示
28、可以编程序了,但是,突然间无从下手啊,不知道要从哪里开始,
可以有这几个方向
1、看降老师发的程序
2、看安骏的资料
3、看樊泓彬的视频
先看看降老师的程序,看懂之后,尝试跑出来。
后续可以研究研究storm,看看有没有什么帮助。
直接看程序很难懂啊,我还是去看看视频吧。但是这么就不能听歌了,来,看
29、int是一个数据类型,integer是封装int的包装类
30、mapper的输入参数有四个,类型需要注意,text类型的一定要导入hadoop的
31、