Hadoop笔记
基本思想
分布式存储
如果有1T数据需要存储?
1.先将整个数据按照一定规则进行切分
2.将切分的数据存放在多台电脑上
3.记录存储位置以及相应的数据的信息
4.考虑后续使用时,快速加载并能够正常使用
5.Hadoop版本为2.7.6
HADOOP组件
-
HDFS:主要用于做数据存储
-
mapreduce:主要用于分布式计算
-
yarn:主要用于做资源调度(1.X中和MapReduce融合在一起,耦合性太强)
-
资源调度:在做 数据计算时,需要CPU、内存、带宽等资源,针对每个计算任务都需要将任务进行划分开
-
Hadoop安装:
1.前提条件
-
三台虚拟机能够使用Java环境
-
第一台虚拟机
-
配置网络
修改主机名
关闭防火墙
配置映射
安装jdk(删除自带jdk)
-
-
克隆两台
-
修改主机名
修改网络
-
修改启动级别之后重启
systemctl set-default multi-user.target
-
在master节点上验证 ssh node1 ssh node2 ssh master
2.免密登录
-
在Master节点上执行
-
ssh-keygen -t rsa
三次回车
-
-
发送密钥至所有节点
-
ssh-copy-id master ssh-copy-id node1 ssh-copy-id node2
-
-
发送过后需要验证
ssh node1:不需要输入密码即为成功
-
在node1上配置
-
ssh-keygen -t rsa
-
发送密钥至所有节点
-
ssh-copy-id node1 ssh-copy-id master ssh-copy-id node2
-
-
-
在node2上配置
-
ssh-keygen -t rsa
-
发送密钥至所有节点
-
ssh-copy-id node2 ssh-copy-id master ssh-copy-id node1
-
-
3.上传hodoop架包
-
通过Xftp上传 hadoop-2.7.6.tar.gz 文件至 /usr/local/soft/
-
注意:必须在解压在/usr/local/soft/
-
解压架包
tar -zxvf hadoop-2.7.6.tar.gz
-
文件目录
-
bin Hadoop操作命令目录
-
etc/hadoop :用于存放Hadoop配置文件
-
sbin 用于存放Hadoop启动脚本
-
share/hadoop 用于存放Hadoop的API及其生成的相关依赖
-
4.配置环境变量
#在Hadoop-2.7.6文件下配置 vim /etc/profile # HADOOP_HOME export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH # source 生效 source /etc/profile
-
1.修改slaves
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop
-
vim slaves
删除原有内容
新加从节点主机名
node1
node2
-
-
2.修改hadoop-env.sh
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/
-
vim hadoop-env.sh
删除export JAVA_HOME=${JAVA_HOME} 新加export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 (自己电脑中的Java路径) ====================================== 如何查询Java路径: whereis java ls -l 路径 找到绿色的为止,对应的就是自己的Java路径
-
-
3.修改core-site.xml
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/
-
vim core-site.xml
在core-site.xml标签configuration中复制一下内容
<property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/soft/hadoop-2.7.6/tmp</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property>
4.修改hdfs-site.xml
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/
-
vim hdfs-site.xml
在vim hdfs-site.xml标签configuration中复制一下内容
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>
-
-
5.修改yarn-site.xml
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/
-
vim yarn-site.xml
在vim yarn-site.xml标签configuration中复制一下内容
<property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>20480</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property>
-
-
6.修改mapred-site.xml
-
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/
-
vim mapred-site.xml
第一步:先将mapred-site.xml.template 的.template去掉 mv mapred-site.xml.template mapred-site.xml.template 第二步:在vim mapred-site.xml标签configuration中复制一下内容 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property>
-
-
7.将配置好的环境变量复制到node1 和 node 2
位置/usr/local/soft/hadoop-2.7.6/etc/hadoop/ hadoop分发到node1和node2 scp -r /usr/local/soft/hadoop-2.7.6 node1:/usr/local/soft scp -r /usr/local/soft/hadoop-2.7.6 node2:/usr/local/soft
-
8.生效环境变量
-
source /etc/profile
-
-
9.启动hadoop
-
在master格式化
hdfs namenode -format
-
格式化完成以后会生成 tmp 目录 :主要用于存放当前Hadoop中的一些临时文件,包括其命名空间的信息
-
-
启动hadoop
start-all.sh
-
-
10.jps 查看进程
# 所有Java进程都可以通过该命令查看 jps
-
所有进程划分
-
Hdfs
dataNode
NameNode
SecondaryNameNode
-
Yarn
ResourceManager
nodemanager
-
-
-
11.如果安装失败
stop-all.sh
-
再次重启的时候
-
1需要手动将每个节点的tmp目录删除: 所有节点都要删除 rm -rf /usr/local/soft/hadoop-2.7.6/tmp 然后执行将namenode格式化
-
2在主节点执行命令: hdfs namenode -format
-
3启动hadoop start-all.sh
-
-
112.判断Hadoop进程没有问题(jps进程)
master节点 4755 SecondaryNameNode 4906 ResourceManager 4557 NameNode 5582 Jps node节点 2676 Jps 2538 NodeManager 2431 DataNode
-
13.打开Hadoop网页:出现下面截图表示成功
master:50070