Hadoop入门-环境搭建
Hadoop简介
-
HDFS
-
Yarn
-
工作机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g854JP2V-1616299004269)(assets/img/image-20200305003613375.png)]
-
组件介绍
-
ResourceManager
ResourceManager 负责集群资源统一管理和计算框架管理,主要包括调度与应用程序管理。
-
NodeManager
NodeManager节点资源管理监控和容器管理,RM是系统中将资源分配给各个应用的最终决策者。
-
AppMaster
AppMaster各种计算框架的实现(例如MRAppMaster)向ResourceManager申请资源,通知NodeManager管理相应的资源。
-
Container
Container YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU等。
-
-
Hadoop安装
0)准备环境
-
Centos 7主机(版本自定,建议使用Linux 7)
-
配置JDK环境
-
下载JDK解压包并上传到/opt/software目录
#下载Linux x64 Compressed Archive(jdk-8u241-linux-x64.tar.gz)根据系统版本选择位数 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html#license-lightbox
-
解压文件
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/apps
-
配置环境变量(jdk-8u241-linux-x64是你对应的jdk解压目录)
#给文件夹重命名 mv /opt/apps/jdk-8u241-linux-x64 /opt/apps/jdk #切换你刚才解压的jdk目录 cd /opt/apps #配置环境变量 vim /etc/profile
#自定义环境变量 start #java path start export JAVA_HOME=/opt/apps/jdk export CLASS_PATH=.:$JAVA_HOME/lib export PATH=$PATH:$JAVA_HOME/bin
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQjpA4Pl-1616299004270)(assets/img/image-20200305002103529.png)]
-
测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvvTJp7i-1616299004273)(assets/img/image-20200305002227499.png)]
-
-
安装Hadoop并配置环境变量
-
下载安装包并上传到/opt/software目录
下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 建议选择2.9.2版本,直到链接 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
-
解压并重命名
#解压 tar -zxvf /opt/software/hadoop-2.9.2.tar.gz -C /opt/apps #重命名 mv /opt/software/hadoop-2.9.2 /opt/software/hadoop
-
配置环境变量
#配置环境变量 vim /etc/profile
#HADOOP_HOME start export HADOOP_HOME=/opt/apps/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VE2Iz7II-1616299004274)(assets/img/image-20200305003033569.png)]
-
测试
hadoop version
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yUxmRpOm-1616299004276)(assets/img/image-20200305002506681.png)]
-
1)Hadoop单节点部署
-
修改/opt/apps/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
#设置为jdk所在路径 export JAVA_HOME=/opt/apps/jdk1.8.0_152
-
wordcount(单词统计)案例
#切换到Hadoop安装目录 cd opt/apps/hadoop #新建input文件夹 mkdir input #拷贝配置文件到刚才创建的文件夹 cp etc/hadoop/*.xml input #运行mapreduce程序 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+' #查看结果 cat output/*
2)Hadoop伪分布式部署
先切换至Hadoop安装目录
-
配置 etc/hadoop/core-site.xml:
#命令 vim etc/hadoop/core-site.xml:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!-- 关闭权限认证 --> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
-
配置 etc/hadoop/hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
配置免密登入
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
-
格式化NameNode
hdfs namenode -format
-
启动HDFS
[root@localhost sbin]# start-dfs.sh #查看是否启动成功 使用jps命令 [root@localhost sbin]# jps 92017 DataNode 97031 NameNode 92214 SecondaryNameNode
-
配置
etc/hadoop/mapred-site.xml
:#没有该文件就使用复制一个 cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
#修改配置文件 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> </configuration>
-
配置 etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration>
-
启动Yarn
start-yarn.sh
-
使用jps验证服务是否启动
[root@localhost Hadoop]# jps 92017 DataNode 116388 ResourceManager 97031 NameNode 102823 RunJar 92214 SecondaryNameNode 116749 Jps 116511 NodeManager
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJaHxPE3-1616299004277)(assets/img/image-20200304235013400.png)]
-
关闭hdfs
stop-dfs.sh
-
关闭yarn
stop-yarn.sh
3)Hadoop集群部署(待续)
Hadoop使用
-
常见Shell命令
-
是
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-knu4S5Hf-1616299004278)(assets/img/image-20200304235820261.png)]
-
示例
#HDFS创建input目录 dfs -mkdir input #显示目录列表 dfs -ls
-
-
组件端口
-
HDFS
#默认50070端口 http://localhost:50070/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jlqylA3-1616299004279)(assets/img/image-20200305000629527.png)]
-
Yarn
#默认8088端口 http://localhost:8088/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPBgrpe1-1616299004280)(assets/img/image-20200305000701705.png)]
-
5)错误记录
-
错误截图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DlpmuCaL-1616299004280)(assets/img/image-20200307203424683.png)]
在core-site.xml中设置 <!--指定操作用户--> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property>