标签:
随着云时代的到来,大数据(big data)也越来越受大家的关注,比如互联网行业日常生成的运营、用户行为数据,随着时间及访问量的增长这一规模日益庞大,单位可达日TB或PB级别。如何在如此庞大的数据中挖掘出对我们有用的信息?目前业界主流存储与分析平台是Hadoop为主的开源生态圈,MapReduce作为Hadoop的数据集的并行运算模型,除了提供Java编写MapReduce任务外,还兼容了Streaming方式,我们可以使用任意脚本语言来编写MapReduce任务,优点是开发简单且灵活。
角色 | 主机名 | IP | 功能 | 存储分区 |
Master | wx | 192.168.1.22 | NameNode|Secondarynamenode|JobTracker | /data |
Slave | test1 | 192.168.1.23 | DataNode|TaskTracker | /data |
Slave | test2 | 192.168.1.24 | DataNode|TaskTracker | /data |
部署Hadoop需要Master无密码访问所有Slave主机,需要配置ssh登录认证:
192.168.1.22:
ssh-keygen -t rsa #生成密钥对。一路回车,在/root/.ssh/目录下会生成id_rsa(私钥)、id_rsa.pub(公钥)密钥对
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.23 #将公钥发送的被控主机
ssh登录Master主机,安装JDK环境(本次安装的是java1.7,使用的是yum安装,也可以根据需要采用源码安装):
yum install java-1.7.0* -y
wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
tar -zxvf hadoop-2.6.4.tar.gz
解压完成后修改配置文件:
【hadoop-2.6.4/etc/hadoop/hadoop-env.sh】
hadoop-env.sh:配置环境变量,指定JAVA_HOME
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111.x86_64 #将上面的${JAVA_HOME}修改为本机的java路径
【hadoop-2.6.4/etc/hadoop/core-site.xml】
core-site.xml:Hadoopcore配置项,主要针对Common组件的属性配置。
<configuration> <property> <name>hadoop.tmp.dir</name> #Hadoop用户的临时存储目录(可自定义路径),默认路径为:/tmp/hadoop-${user.name} <value>/data/tmp/hadoop-${user.name}</value> </property> <property> <name>fs.default.name</name> <value>hdfs://192.168.1.22:9000</value> #master主机IP:9000端口 </property> </configuration>
【hadoop-2.6.4/etc/hadoop/hdfs-site.xml】
hdfs-site.xml:Hadoop的HDFS组件的配置项,包括Namenode、Secondarynamenode和Datanode
<configuration> <property> <name>dfs.name.dir</name> #Namenode持久存储名字空间、事务日志路径 <value>/data/hdfs/name</value> </property> <property> <name>dfs.data.dir</name> #Datanode数据存储路径 <value>/data/hdfs/data</value> </property> <property> <name>dfs.datanode.max.xcievers</name> #Datanode所允许同时执行的发送和接收任务数量,默认为256 <value>4096</value> </property> <property> <name>dfs.replication</name> #数据备份的个数,默认为3 <value>2</value> </property> </configuration>
【hadoop-2.6.4/etc/hadoop/mapred-site.xml】
mapred-site.xml:配置map-reduce组件的属性,包括jobtracker和tasktracker。
<configuration> <property> <name>mapred.job.tracker</name> <value>192.168.1.22:9001</value> <property> </configuration>
【hadoop-2.6.4/etc/hadoop/masters】 该配置文件所有主机都生效
masers:配置Secondarynamenode项,起到HDFS文件系统元数据(metadata)信息的备份作用,当NameNode发生故障后可以快速还原数据。
192.168.1.22 #本次Namenode和Secondnamenode在同一台服务器上,生产环境应该分别使用独立的服务器
【hadoop-2.6.4/etc/hadoop/slaves】
slaves:配置所有Slave主机信息,填写IP地址即可。该配置文件放在Master端生效
192.168.1.23 192.168.1.24
配置完成后,从Master端复制Hadoop环境到所有Slave端,目标路径要与Master保持一致。java环境也要保持一致。
scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.23:/usr/local/
scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.24:/usr/local/
在启动hadoop之前,我们需要做一步非常关键的步骤,需要在Master端格式化文件系统的namenode。(启动只在Master端做,Slave不用)
cd /usr/local/hadoop-2.6.4/
./bin/hadoop namenode -format
./sbin/start-all.sh
至此,安装成功。
http://192.168.1.22:50070 HDFS存储管理地址
http://192.168.1.22:8088 Map/Reduce管理地址
参考资料:
根据刘天斯《Python自动化运维技术与最佳实践》整理
http://cloud.51cto.com/art/201311/419266.htm
http://www.cnblogs.com/skyme/archive/2011/10/26/2223984.html
标签:
原文地址:http://www.cnblogs.com/MacoLee/p/5796152.html