注:笔记有参考这篇文章,但实际还是碰到了不少坑,所以做了一些整理;程序来源于这篇文章,稍做了修改。
一、安装 JDK 1.8
我安装的是oracleJDK 1.8
1.先将含有相关包的清单导入。
$ sudo add-apt-repository ppa:webupd8team/java
2.然后更新一下包列表。
$ sudo apt-get update
3.安装oracleJDK
$ sudo apt-get install oracle-java8-installer
4.最后会有个图形界面的安装程序,选择 [OK] -> [Yes] ,然后静候安装完毕即可。
二、安装hadoop
我安装的是 hadoop 2.6.0(伪分布模式)
2.1 创建hadoop用户
$ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell
$ sudo passwd hadoop #为hadoop用户设置密码,之后需要连续输入两次密码
$ sudo adduser hadoop sudo #为hadoop用户增加管理员权限
$ su - hadoop #切换当前用户为用户hadoop
$ sudo apt-get update #更新hadoop用户的apt,方便后面的安装
之后的配置都在hadoop用户的状态下进行。
2.2 安装SSH,并设置SSH无密码登陆
在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作,所以,需要安装SSH,但是,SSH远程登陆的时候,需要密码验证,为了方便,配置SSH无密码登录。
$ sudo apt-get install openssh-server #安装SSH server
$ ssh localhost #登陆SSH,第一次登陆输入yes
$ exit #退出登录的ssh localhost
$ cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost
$ ssh-keygen -t rsa
输入完 $ ssh-keygen -t rsa 语句以后,需要连续敲击三次回车,如下图:
其中,第一次回车是让KEY存于默认位置,以方便后续的命令输入。第二次和第三次是确定passphrase,相关性不大。两次回车输入完毕以后,如果出现类似于下图所示的输出,即成功:
之后再输入:
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权
$ ssh localhost
此时已不需密码即可登录localhost,并可见下图(如果失败则可以搜索SSH免密码登录来寻求答案)。以后都用这种方式登录即可。
2.3 安装hadoop-2.6.0
进入下载目录,解压并安装
$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local #解压到/usr/local目录下
$ cd /usr/local
$ sudo mv hadoop-2.6.0 hadoop #重命名为hadoop
$ sudo chown -R hadoop ./hadoop #修改文件权限
给hadoop配置环境变量,编辑.bashrc文件
$ vi ~/.bashrc
将下面代码添加到.bashrc文件最后并保存。
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行使设置生效
$ source ~./bashrc
查看hadoop是否安装成功
$ hadoop version
2.4 伪分布式配置
Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的Java进程来运行,节点既作为NameNode也作为DataNode,同时,读取的是HDFS中的文件,需要对其进行配置。我的Hadoop的配置文件位 /usr/local/hadoop/etc/hadoop/ 中。
首先讲jdk路径添加到hadoop-env.sh配置文件中(/usr/local/hadoop/etc/hadoop/ 下,后面默认),我的jdk路径为/usr/lib/jvm/java-8-oracle , 将下面代码添加在hadoop-env.sh的最后
export JAVA_HOME=/usr/lib/jvm/java