Hadoop是Apache的顶级项目,是一个可靠的、可扩展的、分布式计算的开源项目。
创始人:Doug Cutting 和Mike
Hadoop起源: 2004年Doug Cutting和Mike Cafarella在设计搜索引擎Nutch的时候 ,利用通用爬虫爬取了互联网上的数据,获取了大概10亿个网页数据 ,因为互联网的数据大多数是非结构化的,就意味着这些数据无法存储到数据库中。为了解决这些数据的存储问题,Doug发现了Google在2003年发表的一片关于集群系统存储的论文:《Google File System》,于是基于《Google File System》设计了NDFS - Nutch Distributed File System解决了Nutch的存储问题。
在这期间Doug还发现了Google在2003年发表的另一篇关于集群系统计算的论文:《Google MapReduce》,这篇论文讲述了Google分布式系统的中的计算问题,Doug根据这篇论文又设计了MapReduce。–后续会讲MapReduce
从Nutch0.8版本开始,就将NDFS和MapReduce模块独立出来成为了Hadoop,并且将NDFS更名为HDFS–Hadoop Distribute File System。
2008年,Doug携带Hadoop去了Yahoo,在Yahoo的工作期间,Doug先后设计了Hive,Pig,HBase, 后来Yahoo将Hadoop、Hive、Pig、HBase等贡献给了Apache。
Hadoop名字的起源: Doug Cutting如此解释Hadoop的得名:“这个名字是我孩子给一头吃饱了的棕黄色大象命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手,Google就是由小孩命名的。”
下面来膜拜一下大神“狗哥”:
Hadoop的版本说明
Hadoop的模块说明
下载地址:https://hadoop.apache.org/releases.html
伪分布式的安装
首先要安装JDK
4. 关闭防火墙 :service iptables stop
5. 修改主机名:
1)vim /etc/sysnconfig/network
更改HOSTNAME,例如:HOSTNAME=hadoop01
2)source /etc/sysconfig/network
6. 更改hosts文件:vim /etc/hosts
添加 ip 主机名 ,例如:192.168.60.132 hadoop01
7. 配置免密互通:
1)ssh-keygen
2)ssh-copy-id 用户名@主机地址,例如:ssh-copy-id root@hadoop01
8. 重启server: reboot
9. 解压Hadoop的安装包: tar -xvf hadoop-2.7.1_64bit.tar.gz
10. 进入安装目录下的子目录etc下的子目录hadoop: cd hadoop-2.7.1/etc/hadoop
11. 编辑hadoop-env.sh : vim hadoop-env.sh
12. 将JAVA_HOME替换为具体的jdk安装目录, 例如:export JAVA_HOME=/home/preSoftware/jdk1.8
13. 将HADOOP_CONF_DIR替换为具体的Hadoop的配置目录。例如:
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
14. 重新生效 hadoop-env.sh:source hadoop-env.sh
15. 编辑core-site.xml :vim core-site.xml,添加内容
fs.defaultFS
hdfs://hadoop01:9000
hadoop.tmp.dir
/home/software/hadoop-2.7.1/tmp
dfs.replication
1
mapreduce.framework.name
yarn
yarn.resourcemanager.hostname
hadoop01
yarn.nodemanager.aux-services
mapreduce_shuffle
全分布式安装(我用三台server做示例)
首先所有server都要安装有jdk,全分布式安装的前面步骤和伪分布式差不多,只是一些配置文件配置内容不一样,而且全分布式安装前还需要每台server都安装Zookeeper。
1.关闭防火墙
2.修改主机名,在Hadoop集群中,主机名中不允许出现 _ 以及 - ,如果出现会导致找不到这台主机。
3.修改hosts文件进行映射
4.配置免密登录
产生秘钥:ssh-keygen
进行复制:ssh-copy-id 用户名@主机
1.重启节点
2.安装Zookeeper,启动Zookeeper
3.安装hadoop
1)编辑hadoop-env.sh (参考伪分布式)
2)编辑core-site.xml
fs.defaultFS
hdfs://ns
hadoop.tmp.dir
/home/software/hadoop-2.7.1/tmp
ha.zookeeper.quorum
hadoop01:2181,hadoop02:2181,hadoop03:2181
3)编辑hdfs-site.xml
dfs.nameservices
ns
dfs.ha.namenodes.ns
nn1,nn2
dfs.namenode.rpc-address.ns.nn1
hadoop01:9000
dfs.namenode.http-address.ns.nn1
hadoop01:50070
dfs.namenode.rpc-address.ns.nn2
hadoop02:9000
dfs.namenode.http-address.ns.nn2
hadoop02:50070
dfs.namenode.shared.edits.dir
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns
dfs.journalnode.edits.dir
/home/software/hadoop-2.7.1/tmp/journal
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.ns
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa
dfs.namenode.name.dir
file:///home/software/hadoop-2.7.1/tmp/hdfs/name
dfs.datanode.data.dir
file:///home/software/hadoop-2.7.1/tmp/hdfs/data
dfs.replication
3
dfs.permissions
false
4)编辑mapred-site.xml
mapreduce.framework.name
yarn
5)编辑yarn-site.xml
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
hadoop01
yarn.resourcemanager.hostname.rm2
hadoop03
yarn.resourcemanager.recovery.enabled
true
yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
yarn.resourcemanager.zk-address
hadoop01:2181,hadoop02:2181,hadoop03:2181
yarn.resourcemanager.cluster-id
ns-yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop03
6)编辑slaves
hadoop01
hadoop02
hadoop03
7)配置环境变量
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
7)将节点1中的配置文件拷贝给其它节点,然后在其它节点上配置环境变量
如:scp -r hadoop-2.7.1 hadoop02:/home/software/
8)创建指定的目录
cd hadoop-2.7.1/
mkdir tmp
cd tmp
mkdir journal
mkdir hdfs
cd hdfs/
mkdir data
mkdir name
9)在节点上分别启动journalnode:hadoop-daemon.sh start journalnode
格式化第一个节点:hadoop namenode -format
启动第一个节点的namenode:hadoop-daemon.sh start namenode
格式化第二个节点上的namenode:hdfs namenode -bootstrapStandby
启动第二个点的namenode:hadoop-daemon.sh start namenode
在三个节点上分别启动datanode:hadoop-daemon.sh start datanode
在第一个节点和第二个节点上启动zkfc实现状态的切换:hadoop-daemon.sh start zkfc
在第一个节点上启动yarn : start-yarn.sh
在第三个节点上启动resourcemanager:yarn-daemon.sh start resourcemanger
到这里完全分布式安装就完成了,如果在启动过程中出现问题,一般在网上都能搜索到解决方案!!!
以上内容如果有大神发现错误之处还请多多指教,