作者:empty 出版社:empty |
Hadoop搭建手册以及三种集群模式配置
1、环境配置:
虚拟机:VMware-workstation-full-8.0.3-703057,磁盘空间50GB
操作系统:CentOS-6.0-x86_64 下载地址:http://www.ithome.com/html/soft/1961.htm
Hadoop:hadoop-1.2.1.tar.gz
JAVA: jdk-7u67-linux-x64.rpm
1.1 使用root用户登录,新建hadoop用户和组
命令:
useradd hadoop
passwd hadoop
1.2 关闭防火墙及SELinux
1.2.1关闭防火墙
禁止自启动
1.2.2关闭SELinux
将/etc/sysconfig/selinux文件中的 SELINUX=enforcing 改为SELINUX=disabled
即
然后在执行如下命令:
setenforce 0
getenforce
1.3 Java安装
1.3.1 上传文件并授权
(1). 上传jdk文件到希望安装的路径
cp jdk-7u67-linux-x64.rpm /usr/local
chmod 775 jdk-7u67-linux-x64.rpm
(2). 安装jdk
rpm –ivh jdk-7u67-linux-x64.rpm
(2). 配置Java运行环境
在/etc/profile后面追加配置,具体配置如下:
export JAVA_HOME=/usr/local/default
(4). 验证Java运行环境
1.4 Hadoop安装
1.4.2 安装
(1). 解压
tarzxvfhadoop-1.2.1.tar.gz
(2). 将解压之后复制到希望安装的路径
cp hadoop-1.2.1 /usr/local
chown –R hadoop:hadoop hadoop-1.2.1#将文件夹 hadoop 读权限分配给hadoop用户
(3). 配置Hadoop运行环境
在/etc/profile后面追加配置,具体配置如下:
(4). 验证Hadoop运行环境
第二章.Hadoop集群配置
Hadoop集群有三种运行模式,分别为单机模式,伪分布模式,完全分布式模式。单机模式和伪分布式模式的配置基本相同,本文档将重点介绍,在此基础上给出完全分布式模式搭建还需要的工作。
1.单机模式(只有Master节点)
单机模式是Hadoop的默认模式。在该模式下无需运行任何守护进程,所有程序都在单个JVM上执行。该模式主要用于开发调试MapReduce程序的应用逻辑。
2.伪分布模式(Master和Slaver在同一机器上)
在伪分布模式下,Hadoop守护进程运行在一台机器上,模拟一个小规模的集群。该模式在单机模式的基础上增加了代码调试功能,允许你检查NameNode,DataNode,JobTracker,TaskTracker等模拟节点的运行情况。
3.完全分布式模式(存在Slaver节点和Master节点不在同一机器上)
单机模式和伪分布模式均用于开发与调试的目的。真实Hadoop集群的运行采用的是全分布模式。
2.1 配置集群模式
2.1.1修改/etc/sysconfig/network文件
2.1.2修改/etc/hosts文件
2.1.3 使修改生效
2.1.4验证修改
2.2 SSH无密码验证配置
2.2.1 Root用户修改/etc/ssh/sshd_config文件
RSAAuthentication yes # 启用RSA认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
2.2.2 配置
(1). 切换到hadoop用户
(2). 生成无密码RSA秘钥对
在Master节点上把id_rsa.pub追加到授权的key里面去(2.2.1节)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3). 重启SSH服务
service sshd restart
最好将sshd设为开机启动:chkconfigsshd --level 12345 on
2.2.3. 验证登陆
完全分布式模式下,Slaver节点不仅需要同样上述的操作,还需要将Master节点的~/.ssh/ id_rsa.pub文件追加到自己的~/.ssh/authorized_keys文件的后面,然后Master节点还需要通过ssh Slaver进行验证。
2.3修改配置文件
2.3.1 配置Hadoop运行环境:$HADOOP_HOME/conf/hadoop-env.sh
2.3.2配置HDFS
(1).配置Hadoop核心配置文件$HADOOP_HOME/conf/core-site.xml
configuration>
property>
!—Hadoop运行中所有(临时)文件的根目录 -->
name>hadoop.tmp.dir /name>
value>/home/hadoop/tmp /value>
/property>
property>
!-- NameNode的 IP 地址和端口号 -->
name>fs.default.name /name>
value>hdfs://Master:9000 /value>
/property>
/configuration>
如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
(2).配置 $HADOOP_HOME/conf/hdfs-site.xml文件
configuration>
property>
!-- 数据副本数量,默认为3,salve少于3台会报错 -->
name>dfs.replication /name>
value>1 /value>
/property>
configuration>
2.3.3 配置MapReduce
(1).配置 $HADOOP_HOME/conf/mapred-site.xml文件
configuration>
property>
!-- job tracker交互端口, 默认8021 -->
name>mapred.job.tracker /name>
value>http://Master:9001 /value>
/property>
/configuration>
如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
(2).配置 $HADOOP_HOME/conf/masters文件
将localhost替换为Master
(3). 配置$HADOOP_HOME/conf/slaves文件(Master主机特有)
将所有slaver节点加入此文件
2.4 启动和验证
2.4.1格式化HDFS文件系统
hadoopnamenode –format
2.4.2 启动hadoop
2.4.3 验证Hadoop
(1).工具验证
(2). 用 hadoopdfsadmin -report 验证
(3).网页访问验证
job tracker的web管理地址:Master:50030
NameNode web管理地址: Master:50070
(4).任务验证
[hadoop@Master file]$ more input1.txt
Hello, hadoop
[hadoop@Master file]$ more input2.txt
Hello, welcom you
[hadoop@Master file]$ hadoop fs -mkdir input
[hadoop@Master file]$ hadoop fs -put input* input
[hadoop@Master file]$ hadoop fs -ls input
Found 2 items
-rw-r--r-- 1 hadoopsupergroup 14 2013-12-22 19:21 /user/hadoop/input/input1.txt
-rw-r--r-- 1 hadoopsupergroup 18 2013-12-22 19:21 /user/hadoop/input/input2.txt
[hadoop@Master file]$ hadoop jar /usr/local/hadoop-1.2.1/hadoop-examples-1.2.1.jarwordcount input output
13/12/22 19:23:30 INFO input.FileInputFormat: Total input paths to process : 2
13/12/22 19:23:30 INFO util.NativeCodeLoader: Loaded the native-hadoop library
13/12/22 19:23:30 WARN snappy.LoadSnappy: Snappy native library not loaded
13/12/22 19:23:31 INFO mapred.JobClient: Running job: job_201312221905_0001
13/12/22 19:23:32 INFO mapred.JobClient: map 0% reduce 0%
13/12/22 19:24:09 INFO mapred.JobClient: map 100% reduce 0%
13/12/22 19:24:38 INFO mapred.JobClient: map 100% reduce 100%
13/12/22 19:24:41 INFO mapred.JobClient: Job complete: job_201312221905_0001
13/12/22 19:24:42 INFO mapred.JobClient: Counters: 29
13/12/22 19:24:42 INFO mapred.JobClient: Job Counters
13/12/22 19:24:42 INFO mapred.JobClient: Launched reduce tasks=1
13/12/22 19:24:42 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=64814
13/12/22 19:24:42 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
13/12/22 19:24:42 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
13/12/22 19:24:42 INFO mapred.JobClient: Launched map tasks=2
13/12/22 19:24:42 INFO mapred.JobClient: Data-local map tasks=2
13/12/22 19:24:42 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=27100
13/12/22 19:24:42 INFO mapred.JobClient: File Output Format Counters
13/12/22 19:24:42 INFO mapred.JobClient: Bytes Written=33
13/12/22 19:24:42 INFO mapred.JobClient: FileSystemCounters
13/12/22 19:24:42 INFO mapred.JobClient: FILE_BYTES_READ=68
13/12/22 19:24:42 INFO mapred.JobClient: HDFS_BYTES_READ=256
13/12/22 19:24:42 INFO mapred.JobClient: FILE_BYTES_WRITTEN=165724
13/12/22 19:24:42 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=33
13/12/22 19:24:42 INFO mapred.JobClient: File Input Format Counters
13/12/22 19:24:42 INFO mapred.JobClient: Bytes Read=32
13/12/22 19:24:42 INFO mapred.JobClient: Map-Reduce Framework
13/12/22 19:24:42 INFO mapred.JobClient: Map output materialized bytes=74
13/12/22 19:24:42 INFO mapred.JobClient: Map input records=2
13/12/22 19:24:42 INFO mapred.JobClient: Reduce shuffle bytes=74
13/12/22 19:24:42 INFO mapred.JobClient: Spilled Records=10
13/12/22 19:24:42 INFO mapred.JobClient: Map output bytes=52
13/12/22 19:24:42 INFO mapred.JobClient: Total committed heap usage (bytes)=246685696
13/12/22 19:24:42 INFO mapred.JobClient: CPU time spent (ms)=4350
13/12/22 19:24:42 INFO mapred.JobClient: Combine input records=5
13/12/22 19:24:42 INFO mapred.JobClient: SPLIT_RAW_BYTES=224
13/12/22 19:24:42 INFO mapred.JobClient: Reduce input records=5
13/12/22 19:24:42 INFO mapred.JobClient: Reduce input groups=4
13/12/22 19:24:42 INFO mapred.JobClient: Combine output records=5
13/12/22 19:24:42 INFO mapred.JobClient: Physical memory (bytes) snapshot=422400000
13/12/22 19:24:42 INFO mapred.JobClient: Reduce output records=4
13/12/22 19:24:42 INFO mapred.JobClient: Virtual memory (bytes) snapshot=2167861248
13/12/22 19:24:42 INFO mapred.JobClient: Map output records=5
查看结果
empty