为了避免大家走弯路请先看“开始玩hadoop4”,我之前确实犯了不少错误,第四篇都总结了一遍!
为了避免大家走弯路请先看“开始玩hadoop4”,我之前确实犯了不少错误,第四篇都总结了一遍!
为了避免大家走弯路请先看“开始玩hadoop4”,我之前确实犯了不少错误,第四篇都总结了一遍!
重要的事要说三遍!!!
因为网上的教程很多都转载的,
有的说hadoop官网只放出了32位的,所以要运行到64位的机器上必须要在本地重新编译src的那个压缩
但是也有的说现在hadoop为了适应64位的大趋势,从2.5开始就开始放出64位的了,直接使用不带src的那个压缩文件就可以了
我不放心,所以找来了一篇可以识别hadoop到底是多少位的操作的方法:
我在官网上两个压缩包都下载了,先看看不带src的是不是64位,如果是,我就直接解压用,
如果不是,我就继续发布下一篇文章,查查如何本地编译成64位的,实话说,我觉得本地编译不难,就是挺麻烦的,要装好多额外的工具。
我下载的 hadoop-2.6.0-src.tar.gz hadoop-2.6.0.tar.gz 两个压缩包
#apt-get installsoftwarename的软件 看安装到了哪里
dpkg -L softwarename;
#或者
apt-file list softwarename
#查看Linux是32位还是64位
uname -a 或者 uname –m
#出现x86_64,你安装了64位操作系统
#接着进入hadoop 主目录
cd hadoop-2.6.0/lib/native
file libhadoop.so.1.0.0
#结果里出现 32-bit 或者64-bit 就是对应的版本 了
#这里也附上自己尝试的本地编译的方式,反正我是成功了,中间出的问题也记录下来了。
#一些安装过程,安装过了就可以不用安装了
#安装java
sudo apt-get install default-jdk
java -version
#安装maven
sudo apt-get install maven
mvn –version
#安装ssh
sudo apt-get install openssh-server
#安装依赖库
sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
#安装protobuf
sudo apt-get install protobuf-compiler
protoc –version
#OK开始编译,进入HADOOP源代码目录 hadoop-2.6.0-src,执行:
#一定要加sudo 因为要建立文件夹,所以需要权限;
#否则:Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (create-testdirs) on pro…
#而且后面的操作都找不到该文件夹,
sudo mvn clean package -Pdist,native -DskipTests -Dtar
#接下来我又碰到这个问题/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java:27:
error: unexpected end tag: </ul>
[ERROR] * </ul>
[ERROR] ^
#这里要和大家说声sorry,这个地方是因为java版本的问题,java1.8会出现这样的注释错误识别
#当然可以把那一行删掉,但是后面还是会有许多同样的错误
#最好的办法就是替换掉java版本
sudo update-alternatives –config java
#在页面里选择数字,就可以了
sudo update-alternatives –config javac
#两个版本的我都换了,不知道不改会出什么问题
我这里没改环境变量:我不知道在哪里改!
但是直接就可以用
java –version 显示是1.7
但是echo $JAVA_HOME 还是显示的是oracle-java 1.8
mvn –version 的版本也是java -oracle-1.8
update-alternatives –config java
update-alternatives –config javac
只要输入想要切换的编号回车即可,不改的话直接回车,别忘记javac也改一下~
改完之后,
java -version
javac -version 这样就可以改变java -version 辣
补充:在Ubuntu中有如下几个文件可以设置环境变量
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此 文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在 读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在登录时用到的第三个文件是.profile文 件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用 户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执 行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该 文件被读取.
4、~/.bashrc:该文件包含专用于你的bash shell的bash信 息,当登录时以及每次打开新的shell时,该该文件被读取。
要使得刚修改的环境变量生效:source XXXX(路径)
查看环境变量:env
可以放到/etc/bash/bashrc,这样就是系统级的
这个本来是应该注意的地方,但是我确实找不到为什么会这样。
ubuntu apt-get 查看了好多环境配置文件,要么是空的,要么我根本看不懂
如果有人真的会,肯定直接告诉我,就好了。谢谢
#中间会出现一些警告……
#整个过程必须联网,经过漫长的等待……
#总算是build success 了
#编译好的 /hadoop-2.6.0-src/hadoop-dist/target/hadoop-2.6.0.tar.gz
tar -zxvf hadoop-2.6.0.tar.gz -C /home/luis