一、 创建新用户
首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :
$ sudo useradd -m hadoop -s /bin/bash
sudo是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。
接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
$ sudo passwd hadoop
$ sudo adduser hadoop sudo
更新apt
$ sudo apt-get update
后续需要更改一些配置文件,我比较喜欢用的是 vim(vi增强版,基本用法相同),建议安装一下(如果你实在还不会用 vi/vim 的,请将后面用到 vim 的地方改为 gedit,这样可以使用文本编辑器进行修改,并且每次文件更改完成后请关闭整个 gedit 程序,否则会占用终端):
sudo apt-get install vim
二、 安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
$ sudo apt-get install openssh-server
安装后,可以使用如下命令登陆本机:
$ ssh localhost
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的ssh,就回到了我们原先的终端窗口,然后利用ssh-keygen 生成密钥,并将密钥加入到授权中:
$ exit # 退出刚才的 ssh localhost
$
$ ssh localhost ssh-keygen -t rsa #会有提示,都按回车就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 加入授权
三、安装Java环境
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
创建一个目录/usr/lib/jvm以便于把下载解压后的包放到这个目录下。
$ cd /usr/lib
$ sudo mkdir jvm
解压并把解压后的jdk文件夹放到/usr/lib/jvm目录中
$ sudo tar -zxvf /home/hadoop/Desktop/jdk-8u161-linux-x64.tar.gz -C /usr/lib/jvm/
进入到/usr/lib/jvm目录下
$ cd /usr/lib/jvm
把解压后的jdk文件夹重命名为java1.8
$ sudo mv jdk1.8.0_161/ java1.8
先进入gedit编辑器,
$ sudo gedit ~/.bashrc
在~/.bashrc的底部加入以下段落:
export JAVA_HOME=/usr/lib/jvm/java1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
需要使用命令使环境变量立即生效
$ source ~/.bashrc
验证java安装是否成功
$ java -version
设置好后我们来检验一下是否设置正确:
$ echo $JAVA_HOME
$JAVA_HOME/bin/java -version
四、安装 Hadoop 2
我们选择将 Hadoop 安装至 /usr/local/ 中:
$ sudo tar -zxvf /home/hadoop/Desktop/hadoop-2.7.5.tar.gz -C /usr/local/ # 解压到/usr/local中
$ cd /usr/local/
$ sudo mv ./hadoop-2.7.5/ ./hadoop # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop # 修改文件权限
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
$ cd /usr/local/hadoop
$ ./bin/hadoop version
五、 Hadoop单机配置(非分布式)
Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
首先,先设置下hadoop默认的java路径,执行:
$ gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml)
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置完成后,执行 NameNode 的格式化:
$ ./bin/hdfs namenode -format
接着开启 NameNode 和 DataNode 守护进程。
$ ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
终端显示上图两个红框内的内容即算设置成功,执行jps命令查看:
$ jps
成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。