一.Hadoop安装部署的预备条件
准备:1、安装Linux和JDK。
安装JDK
解压:tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training/
设置环境变量:vi ~/.bash_profile
JAVA_HOME=/root/training/jdk1.8.0_144
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
生效环境变量: source ~/.bash_profile
2、关闭防火墙
查看防火墙的状态:systemctl status firewalld.service
关闭防火墙: systemctl stop firewalld.service
禁用防火墙(永久)systemctl disable firewalld.service
3、配置主机名
输入:vi /etc/hosts,回车
192.168.153.11 bigdata11
解压hadoop:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
设置环境变量:vi ~/.bash_profile
HADOOP_HOME=/root/training/hadoop-2.7.3
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
source ~/.bash_profile
二.Hadoop的目录结构
三.Hadoop安装部署的三种模式
1.本地模式
2.伪分布模式
3.全分布模式
本地模式的配置 | ||
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
本地模式 一台Linux
(*)特点:没有HDFS,只能测试MapReduce程序(本地数据:Linux的文件)
(*)配置:hadoop-env.sh
26行 export JAVA_HOME=/root/training/jdk1.8.0_144
(*)Demo:测试MapReduce程序
example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/data.txt ~/temp/mr/wc1
伪分布模式的配置 | ||
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 1 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle |
伪分布模式 一台Linux (*)特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能 (*)hdfs-site.xml <!--数据块的冗余度,默认是3--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--是否开启HDFS的权限检查,默认:true--> <!-- <property> <name>dfs.permissions</name> <value>false</value> </property> --> core-site.xml <!--NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata11:9000</value> </property> <!--HDFS数据保存的目录,默认是Linux的tmp目录--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> mapred-site.xml <!--MR程序运行的容器是Yarn--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <!--ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata11</value> </property> <!--NodeManager运行MR任务的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 对NameNode进行格式化: hdfs namenode -format 日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted. 启动:start-all.sh = start-dfs.sh + start-yarn.sh
全分布模式的配置 | ||
参数文件 | 配置参数 | 参考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 2 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle | |
slaves | DataNode的地址 | 从节点1、从节点2 |
全分布模式安装详解
1、三台机器:bigdata12 bigdata13 bigdata14
2、每台机器准备工作:
a.安装JDK
b.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
c.设置主机名: vi /etc/hosts
192.168.153.12 bigdata12 192.168.153.13 bigdata13 192.168.153.14 bigdata14
如果出现以下警告信息
四.验证Hadoop环境
HDFS Console: http://192.168.153.11:50070
正常情况下,安全模式是关闭的。因为安全模式下,HDFS是只读
Yarn Console: http://192.168.153.11:8088
3.配置SSH免密码登录
(1)在每台机器上产生公钥和私钥
ssh-keygen -t rsa
(2)需要将每台机器的公钥复制给其他机器(下面的三句话,需要在每台机器上执行)
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12 ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13 ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14
4、保证每台机器的时间同步的
5、安装Hadoop的全分布环境(在主节点bigdata12上安装)
(1)解压设置环境变量
(2)修改配置文件
hadoop-env.sh
26行 export JAVA_HOME=/root/training/jdk1.8.0_144
hdfs-site.xml
<!--数据块的冗余度,默认是3--> <property> <name>dfs.replication</name> <value>2</value> </property> <!--是否开启HDFS的权限检查,默认:true--> <property> <name>dfs.permissions</name> <value>false</value> </property>
core-site.xml
<!--NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata12:9000</value> </property> <!--HDFS数据保存的目录,默认是Linux的tmp目录--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property>
mapred-site.xml
<!--MR程序运行的容器是Yarn--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
yarn-site.xml
<!--ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata12</value> </property> <!--NodeManager运行MR任务的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
slaves: 配置的是所有的从节点
bigdata13
bigdata14
(3)格式化NameNode:
hdfs namenode -format
6、将配置好的目录复制到bigdata13和bigdata14上
scp -r hadoop-2.7.3/ root@bigdata13:/root/training
scp -r hadoop-2.7.3/ root@bigdata14:/root/training
7、启动Hadoop集群(在主节点上):
start-all.sh
关闭:stop-all.sh
8、验证
(*)命令行:hdfs dfsadmin -report
(*)网页:HDFS:http://192.168.153.12:50070/
Yarn:http://192.168.153.12:8088