Ubuntu下hadoop的安装与配置

Ubuntuhadoop的安装与配置

 

版本:Ubuntu13.10 -64bit, hadoop1.0.4

 

       由于数据库课程作业的需要,最近在Ubuntu下配置了hadoop环境,在此作一下记录。

       首先要了解一下,hadoopApache基金会开发的一个分布式系统基础架构,通过它可以方便高效地对大数据进行处理。hadoop有两种运行模式:

       1. 单机模式

              hadoop只运行在一台电脑上,不与集群中的其它节点交互,优势在于方便调试代码。

       2. 集群分布模式

              这种模式下hadoop同时运行在多个节点上,处理能力相当强大,这也正是我们所需要的。不过,hadoop环境部署与维护相对复杂性更高。

 

假定我们现在要搭建一个只有三台主机的小集群,三台主机ip地址与分工如下:

       masterNamenode  192.168.1.170

       slave1:   Datanode    192.168.1.177

       slave2:   Datanode    192.168.1.179

 

 

hadoop单机模式

       配置集群分布模式,此阶段单机模式的配置在每一台电脑上必须基本保持一致。

 

1. 添加hadoop用户

       在三台电脑上添加相同的hadoop用户(这是hadoop集群的要求,否则各节点不能互相访问),创建用户的步骤如下:

       1.1 添加组

sudo addgroup hadoop

 

       1.2 添加用户

sudo adduser --ingroup hadoop hadoop

 

       1.3 编辑/etc/sudoers编辑文件,在root ALL=(ALL)ALL行下添加hadoop ALL=(ALL)ALL。如果不添加这行,haduser将不能执行sudo操作。

       添加用户成功之后,在终端中敲入”su - hadoop”切换到hadoop用户进行以下操作。

2. 安装jdk

       2.1 下载jdk-8uversion-linux-x64.rpmhttp://www.oracle.com/technetwork/java/javase/downloads/index.html

       2.2 更改文件所有者,给文件jdk-8uversion-linux-x64.rpm添加可执行权限

chown hadoop:hadoop jdk-8uversion-linux-x64.rpm
chmod +x jdk-8uversion-linux-x64.rpm

 

       2.3 执行安装

rpm -ivh jdk-8uversion-linux-x64.rpm

 

       2.4 增加JAVA_HOME环境变量

hadoop@slave02:~$ sudo vi /etc/profile

 

在最后面增加:

#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME

 

保存退出

最后使刚才的修改生效:

hadoop@slave02:~$ source /etc/profile

 

JAVA_HOME指明JDK安装路径,就是刚才安装jdk的路径,在/usr目录下找找就看到了。

       2.5 在命令行输入

hadoop@slave02:~$ java -version

 

出现如下版本信息即为jdk配置成功:


 

3. 安装ssh

       3.1 一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以重新安装:

hadoop@slave02:~$ sudo apt-get install openssh-server

 

       3.2 设置local无密码登录

ssh生成密钥有rsadsa两种生成方式,默认情况下采用rsa方式。

       (1) 创建ssh-key,这里采用rsa方式:

 hadoop@slave02:~$ ssh-keygen -t rsa -P ""

 

(注:回车后会在~/.ssh/下生成两个文件:id_rsaid_rsa.pub这两个文件是成对出现的)

       (2) 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的:

hadoop@slave02:~$ cd ~/.ssh
hadoop@slave02:~$ cat id_rsa.pub >> authorized_keys

 

(完成后就可以无密码登录本机了。)

       (3) 登录localhost

hadoop@slave02:~$ ssh localhost

 

( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)

       (4) 执行退出命令:

hadoop@slave02:~$  exit

 

   
 

4. 安装hadoop

       4.1 假设hadoop-1.0.4.tar.gz在当前目录,将它复制到安装目录 /usr下:

hadoop@slave02:~$  sudo cp hadoop-1.0.4.tar.gz /usr

 

       4.2 解压hadoop-1.0.4.tar.gz

hadoop@slave02:~$  cd /usr
hadoop@slave02:~$  sudo tar -zxvf hadoop-1.0.4.tar.gz

 

       4.3 将解压出的文件夹改名为hadoop

hadoop@slave02:~$  sudo mv hadoop-1.0.4 hadoop

 

       4.4 将该hadoop文件夹的属主用户设为hadoop

hadoop@slave02:~$  sudo chown -R hadoop:hadoop hadoop

 

    注:为了避免出错,不妨更改一下hadoop目录以及目录下文件子目录的权限:

hadoop@slave02:~$  sudo chmod -R 764 hadoop

 

5. 配置hadoop环境

进入usr/hadoop目录:

       5.1 配置conf/hadoop-env.sh

编辑conf目录下hadoop-env.sh,添加以下信息:

export JAVA_HOME=/usr/java/jdk1.8.0 #视你机器的java安装路径而定)
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:/usr/hadoop/bin

 

并且,让环境变量配置生效source:

hadoop@slave02:~$  source /usr/hadoop/conf/hadoop-env.sh

 

       5.2 配置conf/core-site.xml

编辑如下:

 

       5.3 配置conf/mapred-site.xml

编辑如下:

 

       5.4 配置conf/hdfs-site.xml

编辑如下:

 

       5.5 打开conf/masters文件,添加作为secondarynamenode的主机名,对于单机模式,这里只需填写 localhost 就好了。

       5.6 打开conf/slaves文件,添加作为slave的主机名,一行一个。对于单机模式,这里也只需填写 localhost就好了。

 

6. 启动测试

       6.1 格式化HDFS,执行如下命令:

hadoop@slave02:~$  hadoop namenode -fomat

 


 

       6.2  启动start-all.sh

hadoop@slave02:~$ start-all.sh

 


 

       6.3 检测hadoop是否启动成功:

hadoop@slave02:~$ jps

 

   
 

如果有NamenodeSecondaryNameNodeTaskTrackerDataNodeJobTracker五个进程,就说明你的hadoop单机版环境配置好了!

       6.4 检查运行状态

所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常,在Hadoop中用于监控集群状态的Web界面:

http://localhost:50030/     - Hadoop 管理介面

http://localhost:50060/     - Hadoop Task Tracker 状态

http://localhost:50070/     - Hadoop DFS 状态

Hadoop结束时,可以通过stop-all.sh脚本来关闭Hadoop的守护进程

 

 

 

hadoop集群分布模式

 

1. 修改主机名和host文件

       1.1 三台电脑分别修改主机名为master, slave1, slave2

sudo vi /etc/hostname

 (注:要重启生效)

       1.2 打开本机host文件(三台电脑操作一致):

sudo vi /etc/hosts

 

在后面添加内容:

192.168.1.170 master
192.168.1.177 slave1
192.168.1.179 slave2

 

2. 配置master ssh无密码登录其它节点

       2.1 master公钥复制(这里都要复制到slave1slave2,slave1为例)

hadoop@master:~$ scp ~/.ssh/id_rsa.pub hadoop@slave1:~/.ssh/

 

然后输入密码回车。

       2.2 在每个节点电脑上添加master公钥

 cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys

 

       2.3 master测试无密码登录其它节点

hadoop@master:~$ ssh slave1

 

如果不输入密码,直接提示登录成功则配置完成。

3. 配置hadoop集群环境(只在master上操作)

进入/usr/hadoop目录:

       3.1 修改conf/masters

       3.2 修改conf/slaves

 

4. 启动集群

       4.1 master上面执行:

hadoop@master:~$ start-all.sh

 

       4.2 在各节点上通过jps命令查看相关进程是否启动。

jps

 

 

至此,hadoop环境配置已经完成,接下来尽情感受hadoop强大的运算能力吧!

猜你喜欢

转载自marshal-r.iteye.com/blog/2074592