ubuntu12环境下hadoop1.1.2伪分布式配置

网上大多数类似文章都基于hadoop0.02,现在hadoop版本升级,本人经实践,写下本文,其中不少地方参考了前辈的经验,在此致谢,并声明copy之处只为技术交流。

1.环境

ubuntu 12

hdoop 1.1.2

2,创建hadoop用户组;

1
sudo addgroup hadoop

2. 创建hadoop用户;

1
sudo adduser -ingroup hadoop hadoop
3. 给hadoop用户添加权限,打开/etc/sudoers文件;
sudo gedit /etc/sudoers

按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。

在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL,

1
hadoop  ALL=(ALL:ALL) ALL

4.安装JDK

linux下的java有两种一个是openjdk一个sun的。因为一些原因,Sun Java 无法从 Ubuntu 的软件库里面取得
取而代之的是 OpenJDK,不过 OpenJDK 跑某些程序会出现问题所以还是需要 Sun Java
下面说说在 Ubuntu 12.04 安装 Sun Java 的方法:
(1)如何错误安装了openjdk,首先删除掉已经安装的openjdk

sudo apt-get purge openjdk*

(2)$ sudo apt-add-repository ppa:flexiondotorg/java

(3)$ sudo apt-get update

(4)$ sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-plugin

(5)配置JAVA环境变量:(具体路径根据你安装的jdk路径修改)
sudo gedit /etc/environment

在path变量后追加jdk路径(分号后面,冒号前面)
:/usr/lib/jvm/java-6-sun-1.6.0.30/bin

在path下添加两行
CLASSPATH=.:/usr/lib/jvm/java-6-sun-1.6.0.30/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.30

保存退出,输入以下命令使之立即生效

sudo source /etc/environment

(6)配置默认jdk(具体路径根据你安装的jdk路径修改)

由于Ubuntu中可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK设置为默认JDK版本,还要进行如下工作

sudo update-alternatives --install /usr/lib/jvm/java-6-sun-1.6.0.30/bin/java 300  
sudo update-alternatives --instal l/usr/lib/jvm/java-6-sun-1.6.0.30/bin/javac 300  
sudo update-alternatives --install /usr/lib/jvm/java-6-sun-1.6.0.30/bin/jar 300

执行

sudo update-alternatives --config java

系统会列出各种JDK版本,如下所示:

有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                     优先级  状态
------------------------------------------------------------
  *0            /usr/bin/gij-4.6                            1046      自动模式
  1            /usr/bin/gij-4.6                            1046      手动模式
  2            /usr/lib/jvm/java-6-sun-1.6.0.30/bin/java   300       手动模式
  3            /usr/lib/jvm/java-6-sun/jre/bin/java        63        手动模式
  
  
要维持当前值[*]请按回车键,或者键入选择的编号:2

 (7)java -version查看不出错说明,成功。

aaaf@aaa-K42JZ:~$ java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Server VM (build 20.5-b03, mixed mode)
5.安装ssh服务 

ssh可以实现远程登录和管理,具体可以参考其他相关资料。

(1)安装openssh-server;

1
sudo apt-get install ssh openssh-server
或者
安装ssh-server
sudo apt-get install openssh-server
安装ssh-client
sudo apt-get install openssh-client
确认sshserver是否安装好
ps -e | grep sshd
  450 ?        00:00:00 sshd
如果看到sshd那说明ssh-server已经启动了。 
如果只有ssh-agent说明ssh-server还没有启动,需要执行命令启动ssh服务:
/etc/init.d/ssh start;

(2)配置ssh无密码登录本机

创建ssh-key,这里我们采用dsa方式;

1
ssh -keygen -t dsa -P ''
回车后会在/home/hadoop/.ssh/下生成两个文件:id_rsa和id_rsa.pub.这两个文件是成对出现的,查看两个文件

aaa@aaa-K42JZ:~# cd /home/hadoop/.ssh
aaa@aaa-K42JZ:/home/hadoop/.ssh# ls -a
.  ..  authorized_keys  id_dsa  id_dsa.pub  known_hosts

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

1
cd /home/hadoop/.ssh
cat id_dsa.pub >> authorized_keys
验证ssh是否安装成功,输入命令ssh -version,显示如下

aaa@aaa-K42JZ:~$ ssh -version
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

登录localhost;

1
ssh localhost

执行退出命令;

1
exit

6.安装hadoop (version 1.1.2)

(1). 假设hadoop-1.1.2.tar.gz在桌面,将它复制到安装目录 /usr/local/下;

1
sudo cp hadoop-1.1.2.tar.gz /usr/local/

(2). 解压hadoop-1.1.2.tar.gz;

1
2
cd /usr/local
sudo tar -zxf hhadoop-1.1.2.tar.gz

(3). 将解压出的文件夹改名为hadoop;

1
sudo mv hadoop-1.1.2 hadoop

(4). 将该hadoop文件夹的属主用户设为hadoop,

1
sudo chown -R hadoop:hadoop hadoop

(5). 打开hadoop/conf/hadoop-env.sh文件;

1
sudo gedit hadoop /conf/hadoop-env .sh

(6). 配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径);

1
export JAVA_HOME=/usr/lib/jvm/java-6-jdk
(7). 打开conf/core-site.xml文件;

1
sudo gedit hadoop /conf/core-site .xml

修改如下:

<configuration>  
<property>  
<name>fs.default.name</name>  
<value>hdfs://localhost:9000</value>  
</property>  
</configuration>

(8). 打开conf/mapred-site.xml文件;

1
sudo gedit hadoop /conf/mapred-site .xml

修改如下<configuration>  
<property>  
<name>mapred.job.tracker</name>  
<value>localhost:9001</value>  
</property>  
</configuration>

(9). 打开conf/hdfs-site.xml文件;

1
sudo gedit hadoop /conf/hdfs-site .xml

编辑如下

<configuration>  
<property>  
<name>dfs.replication</name>  
<value>1</value>  
</property>  
</configuration>  <property>
<name>hadoop.tmp.dir</name>
<value>/home/gqy/hadoop</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/home/gqy/hadoop/data</value>
</property>

<property>
<name>dfs.name.dir</name>
<value>/home/gqy/hadoop/name</value>
</property>

新建data目录时

要把data的权限设成755

~/hadoop$ sudo chmod 755 /home/gqy/hadoop/data

否则在格式化HDFS时会出错,在log可以观察到

2013-06-30 09:00:40,121 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2013-06-30 09:00:40,218 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfsconf/data, expected: rwxr-xr-x, while actual: rwxrwxr-x
2013-06-30 09:00:40,218 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.


7. 在单机上运行hadoop

1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,

1
2
cd /usr/local/hadoop/
bin /hadoop n amenode - format

2. 当你看到下图时,就说明你的hdfs文件系统格式化成功了。


3. 启动bin/start-all.sh

1
bin /start-all .sh

4. 检测hadoop是否启动成功

1
jps
显示如下

aaa@aaa-K42JZ:jps
6755 Jps
5432 TaskTracker
4866 DataNode
4638 NameNode
5109 SecondaryNameNode
5201 JobTracker

如果都列出来,说明搭建成功,漏一个都是有问题的,
如果都列出来,说明搭建成功,漏一个都是有问题的,然后可以通过firefox浏览器查看mapreduce的web页面,使用http://localhost:50030/

hdfs的web 页面

http://localhost:50070/



本人菜鸟,自己动手实践过,欢迎志同道合的朋友一起学习,有问题可以给q我:1254135965

下一篇准备写hadoop1.1.2上运行第一个hadoop程序wordcount


你可能感兴趣的:(java,jdk,hadoop,ssh,ubuntu)