Ubuntu14.04上配置hadoop
断断续续的摸索了几天hadoop配置,简直太坑了,网上的各种配置版本不对,在自己电脑上不一定实用,总结一下自己遇到的错误。
期间总算找到一个比较靠谱的参考说明了,链接为:hadoop-2.6.0单机配置和伪分布式配置
一,按照步骤执行到WordCount处总是出错
错误为下:Unable to load native-hadoop library for your platform...
大概意思是版本不对,我在网上找了好多,都是是官方库文件时32位,而自己电脑时64位才会出错。可我这电脑本来就是32位的,为什么会出错呢。
后面找到一个说明,说是2.5.2,2.6.0后面的版本库文件时64位的。果然,用file命令查看发现官方包里的libhadoop.so.1.0.0文件竟然是64位的。
无赖只好自己编译。
1,安装maven,在安装过程中
sudo apt-get install maven
看见中间有个网络链接等了很久也没连上,中间停止了安装,然后继续进行的。结果执行mvn --version时,发现有两个版本可选,出现的错误提示大概如下:
mvn 存在于下面的软件中中 *maven *maven2请管理员选择要安装的版本。
然后找了很多方法,都没有解决。可能时中间停止安装导致。只好直接用路径来执行了,查找到maven所在的路径为/usr/share/maven/bin,以便后面编译使用。
2,安装依赖库
sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
3,
安装openssh
sudo apt-get install openssh-server
4,安装protoc
sudo apt-get install protobuf-compiler
protoc --version
5,cd进入HADOOP源代码目录 hadoop-2.6.0-src,执行:
<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;"></span><pre name="code" class="cpp">/usr/share/maven/bin/mvn clean package -Pdist,native -DskipTests -Dtar
因为我的mvn直接执行有问题,所以用路径来直接执行的。
打给半个多小时后,执行成功会显示:BUILD SUCCESS。
其中可能会遇到错误,如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs)
on project hadoop-maven-plugins: MavenReportException: Error while creating archive:
很不幸,我在编译中就遇到了,原因时用
jdk1.8.0会有这个错误,切换其它版本。
用以下命令:
sudo vi /etc/profile
看到原来的jdk是1.8.0_60,
#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
只需要改一行即可:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
ok,查看java -version看到修改成功,即可。
二,重新安装下面博客中的执行
Ubuntu14.04下hadoop-2.6.0单机配置和伪分布式配置
在hadoop目录下执行WordCount:
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.0-sources.jar org.apache.hadoop.examples.WordCount input output
结果如下:
然后运行伪分布式操作,其中遇到一个错误,如下:
Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found.解决办法:
修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME。
应当使用绝对路径。
export JAVA_HOME=$JAVA_HOME //错误,不能这么改
export JAVA_HOME=/usr/java/jdk1.8.0_60 //正确,应该这么改
为了省事,当时就是按照第一种方式改的。修改就成功了。