您的位置:首页 > 运维架构

hadoop 1.2.1 集群搭建

2016-06-07 11:18 405 查看
环境:

1. jdk 1.7

2. centos 6.5

3. VirtualBox-4.1.12-77245-Win.exe

4. hadoop 1.2.1

1、安装

搭建步骤如下:

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/

    exprot PATH=$JAVA_HOME/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=$HADOOP_HOME/bin:$PATH

    同样也要执行source /etc/profile使配置文件生效,然后执行命令使用命令chown -R hadoop:hadoop hadoop/将其所有者改为hadoop

4、修改地址解析文件/etc/hosts,加入

192.168.0.166 namenode master.hadoop

192.168.0.167 datanode1 slave1.hadoop

192.168.0.168 datanode2 slave2.hadoop

192.168.0.169 datanode3 slave3.hadoop

192.168.0.170 datanode4 slave4.hadoop

192.168.0.171 datanode5 slave5.hadoop

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文件修改成如下:

     namenode

datanode1

datanode2

datanode3

datanode4

datanode5

6、复制虚拟机

    在Virtual Box上安装好一台虚拟机后,如果能把虚拟机的硬盘文件(VDI文件)复制一份是不是就又有了一台全新的操作系统啦?这样可以省去几十分钟的安装时间呢,答案是肯定的,但是这个复制过程需要一个小技巧,复制出来的VDI文件无法在虚拟介质管理器中注册,因为每个VDI文件都有一个唯一的uuid,而VirtualBox不允许注册重复的uuid。

在VBox的安装目录下有一个VBoxManage.exe程序,它是VBox的命令行工具,很强大!!!!查看帮助可以执行“VBoxManage -h”。

复制虚拟机硬盘的命令“VBoxManage clonehd E:\VMDisk\Win2008.vdi E:\VMDisk\Win2008_new.vdi”,命令中不区分大小写,因为Win系统不区分大小写。可能有些童鞋看不懂上边的复制例子命令,这里再说一个格式“C:\progfile\Oracle\VBox\VBoxManage.exe <空格> clonehd <空格> 虚拟机硬盘路径 <空格> 生成的新虚拟机硬盘路径”。

在VirtualBox中,点击"新建"按钮,新建虚拟机:VirtualBox中新建虚拟硬盘”, 点击”现有”按钮, 使用复制的虚拟硬盘,比如OpenSoalris2.vdi.

7、SSH设置无密码验证

    使用 ssh-keygen -t rsa 来创建密钥,程序会问你存放的目录,如果不需要修改,直接回车两次即可

2.将你~/.ssh目录中的id_rsa.pub这个文件拷贝到你要登录的服务器的~/.ssh目录中,然后再运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,注意是管道符是 >>

另外要注意请务必要将服务器上

~/.ssh权限设置为700

~/.ssh/authorized_keys的权限设置为600

这是linux的安全要求,如果权限不对,自动登录将不会生效

测试连接:

$ ssh datanode1

$ ssh datanode1

我们只需要配置从master向slaves发起SSH连接不需要密码就可以了,但这样只能在master(即在主机master)启动或关闭hadoop服务。

8、关闭防火墙

service iptables stop #停止

chkconfig iptables off #禁用

service iptables status

9、验证连接及端口

ssh 192.168.0.166 -p 9000

ssh 192.168.0.166 -p 9000

10、运行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可以查看分布式文件系统的状态

11、运行单词统计程序

    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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop jdk 集群