赞
踩
进群下载配套安装包,无需考虑版本兼容等问题!!!
目录 | 描述 |
---|---|
bin | 对 Hadoop 进行操作的相关命令,如hadoop,hdfs等 |
etc | Hadoop的配置文件目录,入hdfs-site.xml, core-site.xml等 |
lib | Hadoop本地库(解压缩的依赖) |
sbin | 存放的是 Hadoop 集群启动停止相关脚本,命令 |
share | Hadoop 的一些 jar,官方案例 jar,文档等 |
脚本 | 描述 |
---|---|
start-all.sh | 启动所有的Hadoop守护进程。包括NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager |
stop-all.sh | 停止所有的Hadoop 守护进程。包括NameNode、Secondary NameNode、DataNode、ResourceManager、NodeManager |
start-dfs.sh | 启动Hadoop HDFS守护进程NameNode、SecondaryNameNode、DataNode |
stop-dfs.sh | 停止Hadoop HDFS守护进程NameNode、SecondaryNameNode和DataNode |
hadoop-daemons.sh start namenode | 单独启动NameNode守护进程 |
hadoop-daemons.sh stop namenode | 单独停止NameNode守护进程 |
hadoop-daemons.sh start datanode | 单独启动DataNode守护进程 |
hadoop-daemons.sh stop datanode | 单独停止DataNode守护进程 |
hadoop-daemons.sh start secondarynamenode | 单独启动SecondaryNameNode守护进程 |
hadoop-daemons.sh stop secondarynamenode | 单独停止SecondaryNameNode守护进程 |
start-yarn.sh | 启动ResourceManager、NodeManager |
stop-yarn.sh | 停止ResourceManager、NodeManager |
yarn-daemon.sh start resourcemanager | 单独启动ResourceManager |
yarn-daemons.sh start nodemanager | 单独启动NodeManager |
yarn-daemon.sh stop resourcemanager | 单独停止ResourceManager |
yarn-daemons.sh stopnodemanager | 单独停止NodeManager |
mr-jobhistory-daemon.sh start historyserver | 手动启动jobhistory |
mr-jobhistory-daemon.sh stop historyserver | 手动停止jobhistory |
NameNode 50070
DataNode 50075
ResourceManager 8088
NodeManager 8042
关闭防火墙:systemctl stop firewalld
开机时禁用防火墙:systemctl disable firewalld
NameNode和SecondaryNameNode不要安装在同一台服务器(比较耗资源)
ResourceManager很消耗内存,不要和NameNode、SecondaryNameNode配置在一台机器上
框架 | node1 | node2 | node3 |
---|---|---|---|
HDFS | NameNode、DataNode | DataNode | SecondaryNameNode、DataNode |
MapReduce | 无区分 | 无区分 | 无区分 |
YARN | NodeManager | ResourceManager、NodeManager | NodeManager |
Hadoop 集群配置 = HDFS 集群配置 + MapReduce 集群配置 + Yarn 集群配置
指定NameNode节点以及数据存储目录(修改core-site.xml)
指定SecondaryNameNode节点(修改hdfs-site.xml)
指定DataNode从节点(修改etc/hadoop/slaves文件,每个节点配置信息占一行)
将JDK路径明确配置给 MapReduce(修改 mapred-env.sh)
指定MapReduce计算框架运行 Yarn资源调度框架(修改mapred-site.xml)
将JDK路径明确配置给Yarn(修改 yarn-env.sh)
指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml)
指定NodeManager节点(会通过slaves文件内容确定)
节点 | 说明 |
---|---|
NameNode | Hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存由metadata |
SecondaryNameNode | 它不是NameNode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并EditsLog,减少NN启动时间 |
DataNode | 管理连接到节点的存储(一个集群可以有多个节点),每个存储数据的节点运行一个DataNode守护线程 |
ResourcreManager | (Job Tracker),负责调度DataNode上的工作,每个DataNode有一个TaskTracker,它执行实际工作 |
ModeManager | (Task Tracker)执行实际任务 |
DFSZKFailoverController | 高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换) |
JournalNode | 高可用情况下存放namenode的editlog文件 |
HDFS NameNode 内部通信端口:8020/9000
HDFS NameNode 对用户的查询端口:50070
Yarn查看任务运行情况:8088
历史服务器:19888
Hadoop官方地址:https://hadoop.apache.org/
tar -zxvf hadoop-2.10.2.tar.gz
export HADOOP_HOME=/home/environment/hadoop-2.10.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
使环境变量生效:source /etc/profile
测试是否配置成功:hadoop version
vim /etc/hosts
192.168.50.129 node1
192.168.50.130 node2
192.168.50.131 node3
指定datanode从节点(根目录/etc/hadoop/slaves文件,每个节点配置信息占一行)
vim /etc/hadoop/slaves
node1
node2
node3
配置Hadoop中相应的文件(文件均位于/etc/hadoop)
使用的是Hadoop的伪分布式,因此需要配置的文件如下:hadoop-env.sh、core-site.xml、mapred-site.xml、hdfs-site.xml、yarn-site.xml
注意:如果集群是第一次启动,需要Namenode所在节点格式化NameNode,非第一次不用执行格式化Namenode操作。
始化HDFS系统,在hadoop/bin目录下使用如下命令:
hdfs namenode -format
解决运行start-yarn.sh需要输入密码
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
①将主节点生成的密钥传给各个从节点(node1,node2)
②node1,node2节点将密钥添加到authorized_keys
scp ~/.ssh/id_rsa.pub node2:/home
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
最后将node1、node2、node3的id_rsa.pub分别添加到authorized_keys并同步到各自的服务器
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
方式一:
./sbin/start-dfs.sh
./sbin/start-yarn.sh
①开启NameNode和DataNode守护进程:sbin/start-dfs.sh
查看Web UI,在浏览器中输入http://localhost:50070,即可查看相关信息。可以在终端使用netstat -ntlp查看一下服务器启动的端口
②start-yarn.sh
方式二:
在主节点启动即可,两个从节点会自动启动
start-all.sh(不推荐,可能会覆盖环境变量)
查看历史服务记录
./sbin/mr-jobhistory-daemon.sh start historyserver
./sbin/mr-jobhistory-daemon.sh stop historyserver
在浏览器中查看:
HDFS:http://192.168.50.129:50070
YARN:http://192.168.50.129:8088/cluster
①在HDFS上创建一个文件夹/test/input
cd /hadoop.2.10.2
./bin/hdfs dfs -mkdir -p /test/input
②创建一个word.txt测试文件
vim word.txt
he situation of your mother's family, though objectionable, was nothing in comparison to that total want of propriety so frequently, so almost uniformly betrayed by herself, by your three younger sisters, and occasionally even by your father. Pardon me. It pains me to offend you. But amidst your concern for the defects of your nearest relations, and your displeasure at this representation of them, let it give you consolation to consider that, to have conducted yourselves so as to avoid any share of the like censure
③将word.txt上传到HDFS的/test/inpu文件夹中
注意:要先上传文件在运行mapreduce程序
./bin/hdfs dfs -put word.txt /test/input
④运行一个mapreduce的例子程序:wordcount
./bin/hadoop jar /home/environment/hadoop-2.10.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /test/input /test/output
任务启动后
第一步:代理客户端连接ResourceManager
第二步:FileInputFormat指定由三个input files进程
第三步:JobSubmitter 提交后有三个split
第四步:创建job序号,并提交job_1610510670587_0001
任务执行流程
第一步:yarn客户端进行提交应用
第二步:mapreduce根据url进行处理应用
第三步:mr运行job_1610510670587_0001
第四步:发现map和reduce处于传递执行(一方处理完后,传递到下一方),没有同时执行任务
⑤查看文件列表
./bin/hadoop fs -ls /test/input
⑥查看运行结果
./bin/hdfs dfs -cat /test/output/*
/hadoop-2.10.2/share/hadoop/hdfs/webapps/static 替换文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。