一、准备三个节点
- 修改ip地址,静态ip地址
- 修改主机名称和主机映射
- 系统启动级别
- 防火墙和selinux
service iptables stop
chkconfig iptables off
selinux:linux的安全管理策略
/etc/selinux/config
SELINUX=disabled
5.同步时间
date -s ""
ntpdate ntp1.aliyun.com
6. jdk安装
保证同名的普通用户并且配置ssh免密登录
二、集群搭建
单节点
伪分布式集群
完全分布式
* 1.下载hadoop软件包
http://archive/apache.org/dist/
* 2.上传到服务器
put -r hadoop.tar.gz
* 3.解压操作
1./opt/moudle/.... 权限(用户名组修改为hadoop)
sudo(sudoers权限配置)
2./home/hadoop/
tar -zxvf hadoop-2.7.7-centos-6.7.tar.gz
* 4.目录结构
bin: 可执行文件(操作命令 hdfs...)
sbin: 可执行文件(集群启动关闭,负载均衡...)
etc: 配置文件
share: 共享文件(common/hdfs/mapreduce等jar)
* 5.进程规划
* 6.配置
* hadoop-env.sh
整个hadoop的环境,hadoop进程是jvm进程,配置jdk的环境变量
export JAVA_HOME=/opt/jdk1.8.0_73
运行一个mr示例:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input/ output
* core-site.xml
默认的文件系统,默认值(file:///本地文件系统)
hdfs://ip:port hdfs集群的入口地址(namenode:客户端的请求和响应)
1.使用分布式的文件系统
2.namenode所在的节点为hdp01
3.hdfs集群的访问路径: hdfs://hdp01:9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp01:9000</value>
</property>
临时文件的存储目录:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
```
* hdfs-site.xml
dfs.replication: 副本数(默认3个副本)
dfs.blocksize:每个块的大小(1.x:64m, 2.x:128m)
namenode的元数据存储的目录:
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoopdata/name</value>
</property>
datanode的block信息存储的目录:
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoopdata/data</value>
</property>
secondarynamenode的节点配置:
<property>
<name>dfs.secondary.http.address</name>
<value>hdp03:50090</value>
</property>
* mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
mapreduce作业运行的平台:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
* yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp02</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
* slaves(在哪个节点上有 dn和nm)
#namenode/ResourceManager --> master
#datanode/NodeMnager --> slave
hdp01
hdp02
hdp03
* 7.环境变量
/etc/profile
当前用户:
~/.bashrc
~/.bash_profile
export HADOOP_HOME=/home/hadoop/hadoop-2.7.7
export PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bash_profile 刷新修改的环境变量
* 8.发送到其他节点
scp -r hadoop-2.7.7 hadoop@hdp02:~/
scp -r .bash_profile hadoop@hdp02:~/
* 9.hdfs集群(namenode)格式化
hdfs namenode -format (只能格式化一次)
* 10.启动集群
1.逐个进程启动
hadoop-daemon.sh start/stop namenode/datanode/secondarynamenode
yarn-daemon.sh start/stop ResourceManager/NodeManager
2.整个集群启动(涉及到通信,ssh免密登录)
start-dfs.sh/stop-dfs.sh
start-yarn.sh(必须在rm节点启动)/stop-yarn.sh
3.全部启动
start-all.sh/stop-all.sh
* 11.成功检测
1.jps
2.利用图形界面
hdfs: http://hadoop01:50070
yarn: http://hadoop03:8088
3.运行任务
hdfs: hdfs dfs -copyFromLocal input/ / (/表示的是默认的路径,在此我们默认是hdfs://hadoop01:50070/)
yarn: hadoop jar hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output