ITPub博客

首页 > 大数据 > 可视化 > hadoop(1)----- 0.20.2 安装配置

hadoop(1)----- 0.20.2 安装配置

可视化 作者:javachenlei 时间:2013-11-21 11:14:58 0 删除 编辑

之前写过一点hadoop的程序,如今为了工作需要,又重新捡起来,此处做个整理吧。

安装环境:centos5.4 vmware7.1 hadoop0.20.2 eclipse-java-galilec-linux-gtk.tar.gz

       jdk1.6.0_13

 

之前安装了hadoop0.23.9  版本太新,然后没有相关的eclipse jar包,导入了一个eclispe的hadoop-0.20的jar包,报错,该问题做以后的研究,着急用,改用老版本hadoop。。。

用java编写hadoop以前做过,但是python写还没弄过,求弄过的大婶指导~~~

 

1.ssh-keygen -t rsa(参考网上,设置免验证登录)

1.  SSH无密码验证配置
     Hadoop 需要使用SSH 协议,namenode 将使用SSH 协议启动 namenode和datanode 进程,伪分布式模式数据节点和名称节点均是本身,必须配置 SSH localhost无密码验证。
    用root用户登录,在家目录下执行如下命令:ssh-keygen -t rsa 
[root@master ~]# ssh-keygen -t  rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  
& 按回车默认路径 &
Created directory '/root/.ssh'.  
&创建/root/.ssh目录&
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38 
root@master
     通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:
[root@master .ssh]# cat id_rsa.pub > authorized_keys
配置完毕,可通过ssh 本机IP 测试是否需要密码登录。

2.jdk 安装

2.1 JDK安装
     root 用户登陆,新建文件夹 /usr/program ,下载 JDK 安装包
jdk-6u13-linux-i586.bin,复制到目录/usr/ program 下,在命令行进入该目录,执行命令“./ jdk-6u20-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.6.0_20,安装完毕。 
2.2 java环境变量配置
        root 用户登陆,命令行中执行命令“vi /etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile 这个文件很重要,后面 Hadoop 的配置还会用到)。 
# set java environment
   export JAVA_HOME=/usr/program/jdk1.6.0_20
   export JRE_HOME=/usr/program/jdk1.6.0_20/jre
   export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
   
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效
    chmod +x  /etc/profile ;增加执行权限
    source  /etc/profile ;
配置完毕后,在命令行中输入java -version,如出现下列信息说明java环境安装成功。
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

3.hadoop安装配置,这一部分提醒自己,为了避免系统出现问题,建立了拥有root权限的用户xx,必要时在sudo到root,之前因为将hadoop 安装到了/usr/目录下,导致用用户xx在启动hadoop时,需要自动建立的logs等目录没有权限,hadoop启动失败。记录下。。。

  将hadoop-0.20.2.tar解压到/home/xx/program目录下,使用 tar -zxvf hadoop-0.20.2.tar -C /home/xx/program  -C是解压到指定目录下。

  创建软连接  ln -s hadoop-0.20.2 hadoop(随意,不一定非要建,在配置hadoop的时候省点事而已)

  进入/hadoop/conf/目录,开始修改hadoop的配置文件

  1. 修改hadoop-env.sh文件,引导hadoop找到正确的jdk位置 

         添加 # set java environment
                 export JAVA_HOME=/usr/program/jdk1.6.0_20
     编辑后保存退出。

  2.core-site.xml

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

<!-- Put site-specific property overrides in this file. -->
  
     fs.default.name//设置NameNode的URI
     hdfs://202.173.253.36:9000/
  
  
     hadoop.tmp.dir//hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,但是在/tmp路径下的存储是不安全的,因为linux一次重启,文件就可能被删除。如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
     /usr/local/hadoop/hadooptmp
  

  3.hdfs-site.xml

[root@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
 
1)   dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
2)   dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
3)dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

  4.mapred-sit.xml

[root@master conf]# vi mapred-site.xml

<!-- Put site-specific property overrides in this file. -->
 
     mapred.job.tracker
     202.173.253.36:9001
 
 
     mapred.local.dir
     /usr/local/hadoop/mapred/local
 
 
     mapred.system.dir
     /tmp/hadoop/mapred/system
 

4./bin/hadoop namenode -format

5.启动hadoop

  1.hadoop 目录下/bin/start-all.sh  启动hadoop

  2.jps 查看namenode进程

  3.查看节点状态:

    /hadoop dfsadmin -report

  4.发现没能正常启动,出现retye 次数的提示 然后重新格式化了节点

    异常解答参考:http://blog.sina.com.cn/s/blog_7f1700e70100xqiy.html

  5.在hadoop根目录下有一个hadoop的测试程序

    运行hadoop jar hadoop-0.20.2-examples.jar wordcount input output 执行

    注意,首先要创建input目录,并拷贝一个文件进入input目录下:hadoop fs -copyFromLocal file /input

    本次运行报错,提示没有hdfs://localhost:9000/user/yj/input 目录

    于是又创建了一个/home/yj/input 目录,注意:output目录是hadoop自行创建的,不能自己创建,否则会报错。

 

参考:http://www.linuxidc.com/Linux/2011-04/34001.htm

      http://blog.csdn.net/flyqwang/article/details/7244552

      http://www.cnblogs.com/siwei1988/archive/2012/07/12/2588464.html

      http://www.cnblogs.com/tangtianfly/archive/2012/04/11/2441760.html

<!-- 正文结束 -->

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

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