ITPub博客

首页 > 大数据 > Hadoop > Hadoop在CentOS系统上的伪分布式安装

Hadoop在CentOS系统上的伪分布式安装

Hadoop 作者:gclzgenghx 时间:2012-07-24 16:49:17 0 删除 编辑

系统环境:CentOS系统(uname  -a 查询),64位

1. JDK安装及Java环境变量的配置

1.1  安装JDK

    使用命令:wget http://download.oracle.com/otn-pub/java/jdk/6u33-b04/jdk-6u33-linux-x64.bin下载JDK时,很难找到包,但是在测试机上又不能手动下载JDK,把我愁了一下午啊!!!还好有YongQuan帮忙,借助WinSCP(英文版)工具,将下载好的jdk-6u33-linux-x64.bin转移到测试机上,放在/home/hadoop1文件下。下面开始安装:

将jdk安装在/dev/data0/test目录下,因为data0空间较大。

sudo mkdir /dev/data0/test

cd /dev/data0/test

sudo mkdir java

cd java

sudo cp /home/hadoop1/jdk-6u33-linux-x64.bin .  (此处有“.”表示当前目录,不要丢掉)

sudo chmod 777 jdk-6u31-linux-i586.bin    

sudo ./jdk-6u31-linux-i586.bin

这样就开始安装jdk了。一会就安装好了。

2.2  java环境变量配置:

以用户hadoop1登录,进入用户主目录/home/hadoop1,命令行中执行命令“vi .bashrc”,加入以下内容,配置用户的人环境变量,对系统的环境变量不会造成影响。

# set java environment
export JAVA_HOME=/data0/test/java/jdk1.6.0_33
export JRE_HOME=/ data0/test/java/jdk1.6.0_33/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 

在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效

    chmod +x /home/hadoop1/ .bashrc ;增加执行权限

    source /home/hadoop1/ .bashrc;

配置完毕后,在命令行中输入java -version,如出现下列信息说明java环境安装成功。

java version "1.6.0_33"
    Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
    Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)

2. Hadoop配置

下载 hadoop-0.20.2.tar.gz,将其解压到/datao/test/hadoop 目录下,解压后目录形式是/data0/test/hadoop/ hadoop-0.20.2。使用如下命令:

sudo chmod 777 hadoop-0.20.2.tar.gz

sudo tar zxvf hadoop-0.20.2.tar.gz 进行hadoop压缩文件解压。

2.1 进入/data0/test/hadoop/hadoop-0.20.2/conf, 配置Hadoop配置文件

2.1.1 配置hadoop-env.sh文件

命令为sudo vi hadoop-env.sh

添加 # set java environment
export JAVA_HOME=/data0/test/java/jdk1.6.0_33

编辑后保存退出。

2.1.2 配置core-site.xml

[hadoop1@master conf]# vi core-site.xml


<!-- Put site-specific property overrides in this file. -->

fs.default.name

hdfs://10.210.74.152:9000/

2.1.3 配置hdfs-site.xml

[hadoop1@master conf]# vi hdfs-site.xml


<!-- Put site-specific property overrides in this file. -->

dfs.name.dir

/usr/local/hadoop/hdfs/name

dfs.data.dir

/usr/local/hadoop/hdfs/data

dfs.replication

1

2.1.4 配置mapred-site.xml

[hadoop1@vm10110041 conf]$ sudo vi mapred-site.xml


<!-- Put site-specific property overrides in this file. -->

mapred.job.tracker

10.210.74.152:9001

mapred.local.dir

/usr/local/hadoop/mapred/local

mapred.system.dir

/tmp/hadoop/mapred/system

2.1.5 配置masters文件和slaves文件

[hadoop1@master conf]# vi masters

10.210.74.152

[hadoop1@master conf]# sudo vi slaves

10.210.74.152

注:因为在伪分布模式下,作为master的namenode与作为slave的datanode是同一台服务器,所以配置文件中的ip是一样的。

2.1.6 编辑主机名

[hadoop1@master ~]# sudo vi /etc/hosts

# Do not remove the following line, or various programs
that require network functionality will fail.

127.0.0.1 localhost
10.210.74.152 master
10.210.74.152 slave

2.1.7 修改PATH

修改自己的环境变量:

Vi  /home/hadoop1/.bashrc

未修改前是:Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin: $PATH

在$PATH前面加入Hadoop的路径,不能在后面。

改完后是:

Export  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/data0/test/hadoop/hadoop-0.20.2/bin:$PATH

2.2.SSH配置

设置ssh为不需要手动输入密码的方式登陆

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

2.3启动Hadoop

2.3.1格式化namenode

[hadoop1@vm10110041 hadoop]$ hadoop namenode -format

12/07/23 16:12:53 INFO namenode.NameNode: STARTUP_MSG:

 

Re-format filesystem in /data0/test/hadoop/hdfs/name ? (Y or N) Y

12/07/23 16:12:54 INFO namenode.FSNamesystem: fsOwner=hadoop1,hadoop1

12/07/23 16:12:54 INFO namenode.FSNamesystem: supergroup=supergroup

12/07/23 16:12:54 INFO namenode.FSNamesystem: isPermissionEnabled=true

12/07/23 16:12:54 INFO common.Storage: Image file of size 97 saved in 0 seconds.

12/07/23 16:12:54 INFO common.Storage: Storage directory /data0/test/hadoop/hdfs/name has been successfully formatted.

12/07/23 16:12:54 INFO namenode.NameNode: SHUTDOWN_MSG:

 

 

2.2.2 启动hadoop所有进程

在/data0/test/hadoop/hadoop-0.20.2/bin 目录下,执行start-all.sh命令

启动完成后,可用jps命令查看hadoop进程是否启动完全。正常情况下应该有如下进程:

[hadoop1@vm10110041 hadoop]$ jps

6052 SecondaryNameNode

5796 NameNode

6480 Jps

6237 TaskTracker

6125 JobTracker

 

存在的一些问题:

1.将hadoop1添加到sudoers

su  root

输入root的口令,成功后就换成了root用户

继续输入命令:

chmod u+w /etc/sudoers

vi /etc/sudoers

在此行:root ALL=(ALL:ALL) ALL 后加一行:

hadoop ALL=(ALL:ALL) ALL

意思就是允许hadoop用户sudo运行任何命令

保存

chmod u-w /etc/sudoers

这是把sudoers文件的权限改回440, 即root用户通常也只读。Ubuntu linux的sudo 命令运行时会检查这个文件权限是否440, 如果不是440, sudo命令都没有办法工作。所以改完之后一定要改回原来的440.

2.将hadoop的用户和用户组都改成创建者

chown –R hadoop1:hadoop1 /data0/test/hadoop

这样就可以保存运行过程中产生的datanode和namenode等存储文件;

 

 

报错:

HADOOP报错Incompatible namespaceIDs

参看datanode的日志,发现Incompatible namespaceIDs报错datanode没有启动。

原因:每次namenode format会重新创建一个namenodeId,而/data0/test/hadoop/hdfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空hdfs一下的所有目录。

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23849839/viewspace-1120098/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-05-04