HADOOP安装文档(CENTOS6.2)

说明:用vmware创建虚拟机搭建hadoop,虚拟硬件设置一致。创建三个虚拟机均使用桥接方式与宿主机连接,宿主机可以ping通各客户机,客户机之间可以相互ping通。每台客户机均可以上网。

 创建三个虚拟机,一个作为master,另外两个作为slave。虚拟机与宿主机采用桥接,虚拟机可以上网,这样所有虚拟机与宿主机在同一个网段,要求宿主机所在网段的网络畅通。如果不要求虚拟机上网的话可以采用host-only的方式。

 操作系统Centos 6.2  JDK1.7.0  Hadoop 1.0.1

 主机名与IP地址对应关系

master 10.7.6.112

slave1 10.7.6.111

 一、修改hosts文件并重启/etc/init.d/network restart,使hosts修改生效

这样以后机器间的访问就是通过域名,如果IP发生变化,则只需修改hosts文件并让所有机器使用相同配置的hosts文件即可

二、关闭防火墙

root权限下

ufwdisable

serviceiptables stop

可以写入/etc/rc.d/rc.local随机启动

三、创建SSH信任关系,使master能够无密码访问slave

确保各虚拟机安装ssh服务,并通过/etc/init.d/sshdstart开启服务。

生成rsa加密的密钥对ssh-keygen –trsa

使master和slave均能无密码访问自己cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys文件权限chmod600 authorized_keys

将master上的公钥拷贝给slave

ssh-copy-id -i ~/.ssh/id_rsa.pub slave1

四、搭建JAVA环境

方法一、安装配置新版本JAVA并删除旧版本JAVA(如OpenJDK)

安装新版本的JDK

rpm –ivh jdk-1.7.0_03-fcs.i586.rpm默认安装到/usr/java下面

配置新版本JDK的环境

修改/etc/profile

export JAVA_HOME="/usr/java/jdk1.7.0_03"
exportCLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/bin:$PATH"
执行source /etc/profile使变化生效

查看系统原来安装的JDK环境

Java-version
rpm–qa | grep java
rpm–qa | grep jdk
删除系统安装时的openjdk环境。

    yum–y remove java java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.i686

方法二、安装新的JAVA环境,保留系统原JAVA环境,提高新的JAVA环境优先级

使用alternatives或update-alternatives–install命令修改新版本JAVA的优先级高于旧版本

方法三、(不推荐)将新安装的JAVA命令创建链接到/usr/bin替换原来的链接

五、解压下载好的hadoop即可

六、对解压后的hadoop进行配置

1 修改hadoop-env.sh设置java路径(master与slave相同配置)

如果已设置JAVA全局环境变量不用再设置

2 core-site.xml文件(master与slave相同配置)

<configuration>
<!--- global properties -->
       <property>
               <name>hadoop.tmp.dir</name>
               <value>/home/hadoop/tmp</value>
               <description>A base for other temporarydirectories.</description>
       </property>
<!-- file system properties -->
       <property>
               <name>fs.default.name</name>
               <value>hdfs://master:9000</value>
       </property>
</configuration>

3 hdfs-site.xml文件(master与slave相同配置)

 <configuration>
       <property>
               <name>dfs.replication</name>
               <value>1</value>
       </property>
</configuration>

4 mapred-site.xml文件(master与slave相同配置)

<configuration>
       <property>
               <name>mapred.job.tracker</name>
               <value>master:9001</value>
       </property>
</configuration>
5 指定masters与slaves(在master结点配置)

conf/masters文件

master

conf/slaves文件

slave1

七、创建文件系统并启动HADOOP

1 创建分布式文件系统HDFS

[hadoop@master hadoop-1.0.1]$ ./bin/hadoop namenode-format
12/04/25 12:59:56 INFO namenode.NameNode:STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:  host = master.hadoopdomain/10.7.6.112
STARTUP_MSG:  args = [-format]
STARTUP_MSG:  version = 1.0.1
STARTUP_MSG:  build =https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1243785;compiled by 'hortonfo' on Tue Feb 14 08:15:38 UTC 2012
************************************************************/
12/04/25 12:59:57 INFO util.GSet: VM type       = 32-bit
12/04/25 12:59:57 INFO util.GSet: 2% max memory =19.33375 MB
12/04/25 12:59:57 INFO util.GSet: capacity      = 2^22 = 4194304 entries
12/04/25 12:59:57 INFO util.GSet:recommended=4194304, actual=4194304
12/04/25 12:59:58 INFO namenode.FSNamesystem:fsOwner=hadoop
12/04/25 12:59:58 INFO namenode.FSNamesystem:supergroup=supergroup
12/04/25 12:59:58 INFO namenode.FSNamesystem:isPermissionEnabled=true
12/04/25 12:59:58 INFO namenode.FSNamesystem:dfs.block.invalidate.limit=100
12/04/25 12:59:58 INFO namenode.FSNamesystem:isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s),accessTokenLifetime=0 min(s)
12/04/25 12:59:58 INFO namenode.NameNode: Cachingfile names occuring more than 10 times
12/04/25 12:59:59 INFO common.Storage: Image file ofsize 112 saved in 0 seconds.
12/04/25 12:59:59 INFO common.Storage: Storagedirectory /home/hadoop/tmp/dfs/name has been successfully formatted.
12/04/25 12:59:59 INFO namenode.NameNode:SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode atmaster.hadoopdomain/10.7.6.112
************************************************************/

2启动hadoop

[hadoop@master hadoop-1.0.1]$ ./bin/start-all.sh
namenode running as process 5685. Stop it first.
slave1: starting datanode, logging to/home/hadoop/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-datanode-slave1.hadoopdomain.out
master: starting secondarynamenode, logging to/home/hadoop/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-secondarynamenode-master.hadoopdomain.out
jobtracker running as process 5906. Stop it first.
slave1: starting tasktracker, logging to/home/hadoop/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-tasktracker-slave1.hadoopdomain.out
3 使用jps查看hadoop的各结点的启动状况



4查看文件系统状态hadoopdfsadmin -report


5 使用浏览器查看map/reduce和HDFS的状态

查看HDFS状态http://master:50070

查看map/reduce状态http://master:50030

八、例子

1 在namenode主机本地磁盘创建示例文件

[hadoop@master hadoop-1.0.1]$echo “Hello World Bye World” > ~/input/f1
[hadoop@master hadoop-1.0.1]$echo “hello hadoop bye world” > ~/input/f2
2 在HDFS文件系统上创建文件夹

[hadoop@master hadoop-1.0.1]$hadoop fs –mkdir/testwc
注意、/testwc为HDFS文件系统上的目录,并不是本地磁盘上的目录

3 把本地文件拷贝到HDFS文件系统目标文件夹内

[hadoop@master hadoop-1.0.1]$hadoop –put/home/hadoop/input /testwc
其中/home/hadoop/input为本地目录,/testwc为HDFS上的目录

或者

hadoop fs –copyFromLocal/home/hadoop/input /testwc
3运行例子wordcount

指定结果放到HDFS上的/testwc/output目录下,保证该目录为空

[hadoop@master hadoop-1.0.1]$ hadoop jar hadoop-examples-1.0.1.jar wordcount /testwc/input /testwc/output
Warning: $HADOOP_HOME is deprecated.

****hdfs://master:9000/home/hadoop/tmp/input/input/input
12/04/26 13:07:40 INFO input.FileInputFormat: Totalinput paths to process : 2
12/04/26 13:07:42 INFO mapred.JobClient: Running job:job_201204260928_0009
12/04/26 13:07:43 INFO mapred.JobClient:  map 0% reduce 0%
12/04/26 13:09:04 INFO mapred.JobClient:  map 100% reduce 0%
12/04/26 13:09:22 INFO mapred.JobClient:  map 100% reduce 100%
12/04/26 13:09:27 INFO mapred.JobClient: Jobcomplete: job_201204260928_0009
12/04/26 13:09:27 INFO mapred.JobClient: Counters: 29
12/04/26 13:09:27 INFO mapred.JobClient:   Job Counters
12/04/26 13:09:27 INFO mapred.JobClient:     Launched reduce tasks=1
12/04/26 13:09:27 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=131204
12/04/26 13:09:27 INFO mapred.JobClient:     Total time spent by all reduces waitingafter reserving slots (ms)=0
12/04/26 13:09:27 INFO mapred.JobClient:     Total time spent by all maps waiting afterreserving slots (ms)=0
12/04/26 13:09:27 INFO mapred.JobClient:     Launched map tasks=2
12/04/26 13:09:27 INFO mapred.JobClient:     Data-local map tasks=2
12/04/26 13:09:27 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=17263
12/04/26 13:09:27 INFO mapred.JobClient:   File Output Format Counters
12/04/26 13:09:27 INFO mapred.JobClient:     Bytes Written=45
12/04/26 13:09:27 INFO mapred.JobClient:   FileSystemCounters
12/04/26 13:09:27 INFO mapred.JobClient:     FILE_BYTES_READ=87
12/04/26 13:09:27 INFO mapred.JobClient:     HDFS_BYTES_READ=285
12/04/26 13:09:27 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=64784
12/04/26 13:09:27 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=45
12/04/26 13:09:27 INFO mapred.JobClient:   File Input Format Counters
12/04/26 13:09:27 INFO mapred.JobClient:     Bytes Read=45
12/04/26 13:09:27 INFO mapred.JobClient:   Map-Reduce Framework
12/04/26 13:09:27 INFO mapred.JobClient:     Map output materialized bytes=93
12/04/26 13:09:27 INFO mapred.JobClient:     Map input records=2
12/04/26 13:09:27 INFO mapred.JobClient:     Reduce shuffle bytes=53
12/04/26 13:09:27 INFO mapred.JobClient:     Spilled Records=14
12/04/26 13:09:27 INFO mapred.JobClient:     Map output bytes=77
12/04/26 13:09:27 INFO mapred.JobClient:     CPU time spent (ms)=11520
12/04/26 13:09:27 INFO mapred.JobClient:     Total committed heap usage(bytes)=413466624
12/04/26 13:09:27 INFO mapred.JobClient:     Combine input records=8
12/04/26 13:09:27 INFO mapred.JobClient:     SPLIT_RAW_BYTES=240
12/04/26 13:09:27 INFO mapred.JobClient:     Reduce input records=7
12/04/26 13:09:27 INFO mapred.JobClient:     Reduce input groups=6
12/04/26 13:09:27 INFO mapred.JobClient:     Combine output records=7
12/04/26 13:09:27 INFO mapred.JobClient:     Physical memory (bytes) snapshot=334348288
12/04/26 13:09:27 INFO mapred.JobClient:     Reduce output records=6
12/04/26 13:09:27 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=1130512384
12/04/26 13:09:27 INFO mapred.JobClient:     Map output records=8
九、查看结果

[hadoop@master conf]$ hadoop fs -cat/testwc/output/part-r-00000

Bye 1

Hello   1

bye 1

hadoop  1

hello   1

world   3

或者通过web查看

十、其它

(一)如果jps查看namenode与datanode,hadoop启动不全,如没有jobtracker或没有tasktracker

1.在Linux下关闭防火墙:使用service iptables stop命令;

2.再次对namenode进行格式化:在/usr/local/hadoop/hadoop-0.20.2/bin 目录下执行hadoopnamenode -format命令

3.对服务器进行重启

4.查看datanode或是namenode对应的日志文件,日志文件保存 在/usr/local/hadoop/hadoop-0.20.2/logs目录下。仔细查看日志报错的原因,(上次日志报错的信息忘记了)解决方法是进入/usr/local/hadoop/hdfs/name 和usr/local/hadoop/hdfs/data目录下,将目录下的文件全部删除。

5.再次在/bin目录下用start-all.sh命令启动所有进程,通过以上的几个方法应该能解决进程启动不完全的问题了。

http://bjbxy.blog.51cto.com/854497/352692

(二)jps命令说明

JPS(Java Virtual Machine Process StatusTool)是JDK1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。

jps也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。

(三)警告处理Warning:$HADOOP_HOME is deprecated

在hadoop-env.sh中设置HADOOP_HOME_WARN_SUPPRESS=TRUE

https://issues.apache.org/jira/browse/HADOOP-7816


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值