Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架
主要组成:分布式文件系统HDFS和MapReduce计算模型
Hadoop 项目主要包括以下四个模块:
- Hadoop Common:为其他Hadoop模块提供基础设施
- Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统
- Hadoop MapReduce:一个分布式的离线并行计算框架
- Hadoop Yarn:一个新的MapReduce框架,任务调度与资源管理
官网文档
如非必要,应尽量在普通用户下操作
修改网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.138.7
NETMASK=255.255.255.0
GATEWAY=192.168.138.2
DNS1=192.168.138.2
ip地址网段和本机相同,修改完成后重启网络服务 service network restart
修改主机名
vi /etc/sysconfig/network
HOSTNAME=oldecho01.domain
关闭防火墙和子安全系统
service iptables stop
chkconfig iptables off
vi /etc/sysconfig/selinux
SELINUX=disabled
查看防火墙状态
service iptables status
chkconfig --list | grep iptables
设置域名映射
vi /etc/hosts
192.168.138.7 oldecho01.domain
设置普通用户
按需执行
useradd tom
echo blue | passwd --stdin tom
mkdir /opt/modules
mkdir /opt/softwares
chown tom:tom /opt/modules/
chown tom:tom /opt/softwares/
将压缩包放在softwares中,安装到modules中
安装JDK
检查已安装的java rpm包,如有则删除
rpm -qa | grep -i java
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.e16_3.x86_64
解压安装并配置环境变量
tar -zxvf /opt/softwares/jdk-7u67-linux-x64.tar.gz -C /opt/modules/
vi /etc/profile
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOEM/bin
修改文件建议使用Notepad++远程工具
tar -zxvf /opt/softwares/hadoop-2.5.0.tar.gz -C /opt/modules/
vi /etc/profile
export HADOOP_INSTALL=/opt/modules/hadoop-2.5.0
export PATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin
环境变量可以不配置,通常我们都在 Hadoop 安装目录下执行命令
主要配置内容为 namenode、datanode
配置文件在 /opt/modules/hadoop-2.5.0/etc/hadoop/
下
修改 hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67
修改 core-site.xml
<property>
<name>fs.defaultFSname>
<value>hdfs://oldecho01.domain:8020value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/modules/hadoop-2.5.0/datavalue>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>oldecho01.domain:50090value>
property>
secondarynamenode 可以不配置,事实上在伪分布式下没有什么意义
修改 hdfs-site.xml
<property>
<name>dfs.replicationname>
<value>1value>
property>
格式化 namenode
cd /opt/modules/hadoop-2.5.0/
bin/hdfs namenode -format
修改 slaves
一行一个主机名,而这些主机都是datanode,而伪分布式下只有一个从节点
oldecho01.domain
主要配置内容 resourcemanager、nodemanager、mapreduce运行框架
nodemanager 位置也是由 slaves 决定
修改 yarn-site.xml
<property>
<name>yarn.resourcemanager.hostnamename>
<value>oldecho01.domainvalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduece_shufflevalue>
property>
修改 mapred-site.xml
拷贝 mapred-site.xml.template 文件并重命名为 mapred-site.xml
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
yarn 平台上启用日志,mapreduce 上开启jobhistory服务
修改 yarn-site.xml
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.log-aggregation.retain-secondsname>
<value>86400value>
property>
修改 mapred-site.xml
<property>
<name>mapreduce.jobhistory.addressname>
<value>oldecho01.domain:10020value>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>oldecho01.domain:19888value>
property>
在 /opt/modules/hadoop-2.5.0/ 下,即 Hadoop 安装目录下执行命令
HDFS
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/hadoop-daemon.sh start secondarynamenode
namenode information:
上述页面下,Utilities–Browse file system,可以查看文件系统
在文件系统内实现存储
vi test.txt
bin/hdfs dfs -mkdir /input
bin/hdfs dfs -put test.txt /input
yarn
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
yarn 的监控平台:http://oldecho01.domain:8088
运行一个 mapreduce 例子(Wordcount):
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /input /output
可以在上述监控平台上查看运行信息,使用以下命令可查看结果:
bin/hdfs dfs -cat /output/p*
jobhistory
sbin/mr-jobhistory-daemon.sh start historyserver
jobhistory 的web访问:http://oldecho01.domain:19888
此时查看 jps
可以看到以下6个守护进程:
cd ~/.ssh
ssh-keygen
ssh-copy-id [hostname]
此时可以按模块启动服务,historyserver 还是要单独启动
start-dfs.sh
start-yarn.sh