hardoop 基础教程:
安装
eclipse 下编程
统计单词代码:
具体代码片
hadoop 不用直接安装,在网上直接下载,文件夹放在/usr/local下面,一般命名为hardoop .
主要有两种模式,单机模式和伪分布式模式,伪分布模式是在HDFS下进行读写的,这个时候像git 很像.
主要用到的一个是etc文件夹,这个里面有相关配置,基本上是xml格式的,从分布式开始,就需要修改三个文件,core,log,hdfssite,这三个core和hdfs这两个配置有,主要是log 这里会出现一个错误,就是libjvm.so依赖错误.
检查依赖用ldd命令,显示出依赖的文件,然后locate这个依赖,定位出来.
locate libjvm.so 基本上就是jvm里面的东西,这个和配置jdk我觉得没有太大关系,因为多次修改位置还是无法改变.需要在log4j这个文件中加入一行:
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
有点掩耳盗铃,但是没有出现误差,具体原因不详.
hardoop比较比较注重文件权限,可以对hadoop文件夹进行全部拥有改变:
sudo chown -R fourous hadoop/
主要是伪分布式出现问题较多:
下载hardoop最好是下载stable目前是2.*,毕竟后面的eclipse 插件,是只支持2.*的,而且stable进过测试,稳定.
首先是配置文件,也就是etc文件夹下的core,hdfssite这两个xml文件
配置多次用到JAVA_HOME,这个位置需要记清楚:
/usr/lib/jvm/java-8-openjdk-amd64
检测方法有:
echo $JAVA_HOME
$JAVA_HOME/bin/java -version
//java -version
hardoop有一个ssh 链接,会生成公钥和私钥,这个命名注意,最好修改,以免覆盖
打开是:
ssh localhost
HDFS就像是一个虚拟空间,分析文件的时候,将这个文件放进这个HDFS里面,输出的时候,如果要形成实体文件,需要get出来.
开启服务的之前,需要格式化,也就是后来出现的namenode ,不格式话就会不能出现namenode ,造成错误.
一旦出现错误,需要将服务关停,然后将/tmp文件夹删除,在重新将namenode 格式化一次.
开启服务是:
./sbin/hdfs namenode -format
如果运行成功,会在双****,的上面一点有一个successful,失败的话,会有error等字符出现,或者抛出异常等.
这里跑出的异常是java platform等,回到lib 库文件这里,逐个ldd链接分析,会发现libjvm.so没有,在log4j里面可以找到方法解决.
这里没有发生异常,但是有一点,如果修改./.bashrc文件里面内容,需要生效:
source ./.bashrc
在开启hadoop服务:
./sbin/start-dfs.sh
这里会要求输入三次密码,分别是namenode ,datanode ,ssh
输入完成,进行验证是否开启:
jps
成功的就会显示4行:
Jps
SecondaryNameNode
NameNode
DataNode
不成功的话,基本上是上一次服务没有删除干净:
./sbin/stop-dfs.sh//关闭服务
//或者./bin/hdfs -rm -r /output//删除输出的文件
rm -rf /tmp
/bin/hdfs namenode -format//重新格式化namenode
//存在的话一定删除rm -rf output
成功启动的话,可以在
http://localhost:50070
可以看到具体信息,这个里面信息还不清楚表示什么
然后就是eclipse 进行编程
这里下载eclipse 过程中,最好不要用软件中心下载,出现了一个新的下载安装方式叫snap,插件不好装
最好直接装直接用的,上文有链接可以直接下载
下载安装的插件是hadoop可以链接的插件
直接可以通过github下载
安装的时候,将下载的release文件夹下的一个jar包拷贝到eclipse/plugins下面,jar包最好进过测试也就是stable稳定类型的.
安装之后使生效
/bin/eclipse -clean
这个时候会直接打开
查看是否安装成功,可以在windows/preference 下进行查看,有一个ant文件夹,可以查看到mapreduce
r然后进行链接,文章有,这里注意,链接的时候,一定要记得refresh ,程序进行改变以后,也要记得refresh 软件不会主动refresh.
基本端口设置正确,不会出现问题.然后创建项目以后,一定要把相关的文件直接拷贝到eclipse/wordcount/src文件夹下面,主要三个core,hdfssite,log4j.拷贝就行了.