Situated Learning:
因为实验室项目是在HBase上做的应用,所以想借此机会学习一下HBase。然而,刚开始看HBase的Documentation就头大了。很多Linux命令都忘了,其中包括tar。
从接触linux系统以来,零零星星地学过很多次Linux命令,但是每次学习完,过段时间就会忘得一干二净。究其原因,我认为有以下几点:
- 看书学习Linux命令时,主要是脱离实际应用。即使按照书上的命令敲一遍,当需要的时候还是不会。因为看书的时候没有应用需求,所以记忆不牢固。这并不是说否定看书获取知识,而是要会利用书。曾度过一篇BBC新闻,主要讲得是随着信息化社会的发展,人们的记忆方式也随之发生了变化。过去人们在大脑中记忆的是某样东西的内容,而现在人们更倾向于记忆某样东西的路径。说回来,看书的时候更应该注重什么样的内容在哪里出现过,遇到问题怎样迅速定位到相关内容。
- 每当在应用中遇到问题,人们都习惯立即查资料,找到相关的命令的usage。但很多人下次遇到同样的问题,还是要再去查一遍。为什么?主要是因为学得不系统。这里说的不系统不是说要把一条命令的所有参数都记住,而是说不去配合一个应用场景去记忆,导致了每次遇到同样问题,都需要重复查询。
因此,我想换一个思路去学习Linux命令。配合着一个完整地应用场景去学习Linux命令。命令很多并且参数也很多,但未必都能用得上,由于领域限制,经常用到的命令和参数也符合“局部性原理”。所以如果把这些命令的学习过程记录下来,以后即使忘记了,也很快可以找到。
应用场景描述:
根据HBase Documentation在Fedora17上配置standalone HBase instance。
1.下载HBase mirror ftp
因网络问题,Fedora17上的firefox下载到一半就不会接着下载了。所以在host机上下载好mirror之后,通过ftp再下载到Linux上,所以要用到ftp命令。
# ftp IP port //IP是ftp服务器IP地址 port是端口号
ftp> ls
ftp> cd download
ftp> get hbase-0.94.0-security.tar.gz /home/user/hbase.tar.gz
完整参考手册:http://oreilly.com/linux/command-directory/cmd.csp?path=f/ftp
2.解压tar.gz包 tar
tar是打包,gz是对tar包进行压缩。
# tar -zxvf hbase.tar.gz //解压到当前目录 值得注意的是f后面需要直接跟文件名,不能再有其他参数了
完整参考手册:http://oreilly.com/linux/command-directory/cmd.csp?path=t/tar
3.安装jdk yum
找到资源库中正确的jdk安装包的文件名
# yum search jdk
安装jdk
# yum install java-1.7.0-openjdk.x86_64
注:上面的命令将jdk自动安装到/usr/lib/jvm/java-1.7.0-openjdk.x86_64目录中,这也是JAVA_HOME的值。
4.修改环境变量 export
# export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# export PATH=$PATH:$JAVA_HOME/bin
5.修改hbase-site.xml文件后校验xml文件 xmllint
xmllint hbase-site.xml //如果没有报错,说明校验通过。
完场上述步骤后可以运行hbase了。