Hadoop集群环境搭建

搭建步骤如下:
  一、首先是搞好master 
   1、创建用户组   
    groupadd hadoop 添加一个组  
      useradd hadoop -g hadoop 添加用户 
 2、jdk的安装   
 这里安装的版本是jdk-7u9-linux-i586.tar.gz ,使用 tar -zsvf jdk-7u9-linux-i586.tar.gz -C /opt/ 命令将其解压到/opt目录下,并将解压后的文件夹jdk-7u9-linux-i586改名为java.    
 jdk安装好就要配置环境变量了,使用vi /etc/profile命令编辑添加如下内容:    export JAVA_HOME=/opt/java/jdk
    exprot PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH    配置好之后要用命令source /etc/profile使配置文件生效,这样jdk就安装完毕了。安装完之后不要忘了将所有者设置为hadoop。使用命令chown -R hadoop:hadoop java/  
3.hadoop的安装    hadoop的版本是hadoop-0.20.2.tar.gz,也把它解压到/opt目录下面,改名为hadoop。    hadoop也要设置环境变量,使用vi /etc/profile命令编辑添加如下内容:    export HADOOP_HOME=/opt/hadoop    export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:PATH    同样也要执行source /etc/profile使配置文件生效,然后执行命令使用命令chown -R hadoop:hadoop hadoop/将其所有者改为hadoop
 4、修改地址解析文件/etc/hosts,加入    
 192.168.137.110 master    
 192.168.137.111 slave1    
 192.168.137.112 slave2 
 5、修改hadoop的配置文件  首先切换到hadoop用户,su hadoop  
 ①修改hadoop目录下的conf/hadoop-env.sh文件    加入java的安装路径export JAVA_HOME=/opt/java/jdk  
 ②把hadoop目录下的conf/core-site.xml文件修改成如下: 1
2 hadoop.tmp.dir
3 /hadoop
4
5
6 fs.default.name
7 hdfs://master:9000
8
9
10 dfs.name.dir
11 /hadoop/name
12   ③把hadoop目录下的conf/ hdfs-site.xml文件修改成如下:1
2 dfs.replication
3 3
4
5
6 dfs.data.dir
7 /hadoop/data
8   ④把hadoop目录下的conf/ mapred-site.xml文件修改成如下: 1
2 mapred.job.tracker
3 master:9001
4
5
6 mapred.system.dir
7 /hadoop/mapred_system
8
9
10 mapred.local.dir
11 /hadoop/mapred_local
12   ⑤把hadoop目录下的conf/ masters文件修改成如下:    master  ⑥把hadoop目录下的conf/ slaves文件修改成如下:    master    slave1    slave2  
6、复制虚拟机    我使用Virtual Box的克隆功能,将主机master完全克隆两份:slave1和slave2,并修改相应的主机名和IP地址,这样就可以简单地保持hadoop环境基本配置相同。  
7、SSH设置无密码验证   
切换到Hadoop用户,在Hadoop家目录下面创建.ssh目录,并在master节点上生成密钥对:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa 。然后一直按[Enter]键,按默认的选项生成密钥对保存在.ssh/id_rsa文件中。    
然后执行如下命令:$ ssh ~/.ssh$ cp id_rsa.pub authorized_keys$ scp authorized_keys slave1:/home/hadoop/.ssh$ scp authorized_keys slave2:/home/hadoop/.ssh   
 执行远程复制文件的时候记得要把slave1和slave2的防火墙关掉。复制完毕后记得要到slave1和slave2去修改该文件的权限。从master向slave1和slave2发起SSH连接,第一次登录时需要输入密码,以后就不需要了。$ ssh slave1$ ssh slave2我们只需要配置从master向slaves发起SSH连接不需要密码就可以了,但这样只能在master(即在主机master)启动或关闭hadoop服务。  
8、运行hadoop  
  使用Hadoop用户,切换到hadoop/bin目录下   
  格式化分布式文件系统./hadoop namenode -format   
  执行命令./start-all.sh启动hadoop    在master上执行jps命令查看运行的进程如下:[hadoop@master hadoop]$ jps
3200 SecondaryNameNode
3271 JobTracker
3370 TaskTracker
3002 NameNode
3106 DataNode
5687 Jps    在slave1和slave2上执行jps结果如下:[hadoop@slave1 ~]$ jps
1477 DataNode
3337 Jps
1547 TaskTracker    访问http://master:50070可以查看分布式文件系统的状态  
9、运行单词统计程序    WordCount是hadoop自带的实例,统计一批文本文件中各单词出现的资料,输出到指定的output目录中,输出目录如果已经存在会报错。$ cd /opt/hadoop
$ hadoop fs -mkdir input
$ hadoop fs -copyFromLocal /opt/hadoop/.txt input/
$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output
$ hadoop fs -cat output/
#最后查看结果运行结果如下:13/06/16 19:32:26 INFO input.FileInputFormat: Total input paths to process : 4
13/06/16 19:32:26 INFO mapred.JobClient: Running job: job_201306161739_0002
13/06/16 19:32:27 INFO mapred.JobClient: map 0% reduce 0%
13/06/16 19:32:35 INFO mapred.JobClient: map 50% reduce 0%
13/06/16 19:32:36 INFO mapred.JobClient: map 100% reduce 0%
13/06/16 19:32:47 INFO mapred.JobClient: map 100% reduce 100%
13/06/16 19:32:49 INFO mapred.JobClient: Job complete: job_201306161739_0002
13/06/16 19:32:49 INFO mapred.JobClient: Counters: 18
13/06/16 19:32:49 INFO mapred.JobClient: Job Counters
13/06/16 19:32:49 INFO mapred.JobClient: Launched reduce tasks=1
13/06/16 19:32:49 INFO mapred.JobClient: Rack-local map tasks=2
13/06/16 19:32:49 INFO mapred.JobClient: Launched map tasks=4
13/06/16 19:32:49 INFO mapred.JobClient: Data-local map tasks=2
13/06/16 19:32:49 INFO mapred.JobClient: FileSystemCounters
13/06/16 19:32:49 INFO mapred.JobClient: FILE_BYTES_READ=179182
13/06/16 19:32:49 INFO mapred.JobClient: HDFS_BYTES_READ=363457
13/06/16 19:32:49 INFO mapred.JobClient: FILE_BYTES_WRITTEN=358510
13/06/16 19:32:49 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=133548
13/06/16 19:32:49 INFO mapred.JobClient: Map-Reduce Framework
13/06/16 19:32:49 INFO mapred.JobClient: Reduce input groups=10500
13/06/16 19:32:49 INFO mapred.JobClient: Combine output records=10840
13/06/16 19:32:49 INFO mapred.JobClient: Map input records=8968
13/06/16 19:32:49 INFO mapred.JobClient: Reduce shuffle bytes=179200
13/06/16 19:32:49 INFO mapred.JobClient: Reduce output records=10500
13/06/16 19:32:49 INFO mapred.JobClient: Spilled Records=21680
13/06/16 19:32:49 INFO mapred.JobClient: Map output bytes=524840
13/06/16 19:32:49 INFO mapred.JobClient: Combine input records=47258
13/06/16 19:32:49 INFO mapred.JobClient: Map output records=47258
13/06/16 19:32:49 INFO mapred.JobClient: Reduce input records=10840 
 运行该程序一定得注意将slave1和slave2的防火墙给关闭,否则会报异常的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值