赞
踩
狭义上Hadoop指的是Apache软件基金会的一款开源软件。
用java语言实现,开源
允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理
广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。
Hadoop现状
Hadoop集群包括两个集群:HDFS集群、YARN集群
主角色:NameNode(NN)
从角色:DataNode(DN)
主角色辅助角色:SecondaryNameNode(SNN)
主角色:ResourceManager(RM)
从角色:NodeManager(NM)
两个集群逻辑上分离、通常物理上在一起
逻辑上分离
两个集群互相之间没有依赖、互不影响
物理上在一起
某些角色进程往往部署在同一台物理服务器上
两个集群都是标准的主从架构集群
集群角色规划
主机名 (3台机器)
cat /etc/hostname
hosts映射(3台机器)
cat /etc/hosts
防火墙关闭(3台机器)
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开启自启
systemctl status firewalld.service #查看防火墙状态
ssh免密登录
ssh-keygen #一直回车即可 生成公钥、私钥
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3 #依次输入,上传公钥到服务器
ssh node1
ssh node 2
ssh node3 #验证:在已经配置了的机器上
集群时间同步(3台机器)
yum -y install ntpdate
ntpdate ntp4.aliyun.com
如果没有出现上图,则可能是因为网络问题 ,再次执行即可
创建统一工作目录(3台机器)
mkdir -p /export/server/ #软件安装路径
mkdir -p /export/data/ #数据存储路径
mkdir -p /export/software/ #安装包存放路径
ls /export/ #验证3个目录是否都已经创建了
JDK 1.8安装(3台机器)选择在第一台机器安装,在发送给其他机器
- 找到目录
- 将安装包拖拽进去
- 打开目录:cd /export/server
查看:ll
- 解压:tar -zxvf jdk-8u241-linux-x64.tar.gz
- 检查:ll
可以选择删除压缩包:rm -rf jdk-8u241-linux-x64.tar.gz- 配置环境变量
官方文档
配置环境变量
vim /etc/profile
#Go #跳转到文件末行
写入文件末行后保存
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
如何保存?小白不会保存?在文本末端按esc,然后是(shift+z)按两次,即可保存退出了
注意:如果出现如下问题:
解决方案:来自转载
- #重新加载环境变量文件
source /etc/profile
#检查是否生效:成功显示版本就生效了哦
java -version
- 剩下两台机器,采用远程拷贝,拷贝jdk+环境变量
#使用绝对路径来做
cd ~
#scp 远程拷贝
scp -r /export/server/jdk1.8.0_241/ root@node2:/export/server/
scp -r /export/server/jdk1.8.0_241/ root@node3:/export/server/
scp -r /etc/profile root@node2:/etc/
scp -r /etc/profile root@node3:/etc/- 对3太机器同时发送命令,依次查看是否都安装好了jdk,配置好了环境变量
#重新加载环境变量文件
source /etc/profile
#检查是否生效:成功显示版本就生效了哦
java -version
export JAVA_HOME=/export/server/jdk1.8.0_241
#文件最后添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 --> <property> <name>fs.defaultFS</name> <value>hdfs://node1:8020</value> </property> <!-- 设置Hadoop本地保存数据路径 --> <property> <name>hadoop.tmp.dir</name> <value>/export/data/hadoop-3.3.0</value> </property> <!-- 设置HDFS web UI用户身份 --> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> <!-- 整合hive 用户代理设置 --> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <!-- 文件系统垃圾桶保存时间 --> <property> <name>fs.trash.interval</name> <value>1440</value> </property>
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
打开:vim mapred-site.xml
插入:
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- MR程序历史服务地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> </property> <!-- MR程序历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property>
打开:vim yarn-site.xml
插入
注意:中间的注释可以删除:dd
i进入插入模式,
<!-- 设置YARN集群主角色运行机器位置 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 是否将对容器实施物理内存限制 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!-- 是否将对容器实施虚拟内存限制。 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <!-- 开启日志聚集 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置yarn历史服务器地址 --> <property> <name>yarn.log.server.url</name> <value>http://node1:19888/jobhistory/logs</value> </property> <!-- 历史日志保存的时间 7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
打开:vim works
删除: dd,添加
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
保存并退出:esc —>shift+zz
cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
scp -r /etc/profile root@node2:/etc/
scp -r /etc/profile root@node3:/etc/
hdfs namenode -format
成功标志:
如果多次format除了造成数据丢失外,还会导致hdfs集群主从角色之间互不识别。通过删除所有机器hadoop.tmp.dir目录重新format解决
以下链接可能有用,我自己没有试过
重新格式化
重新格式化需注意问题
优点:可以精准控制每个进程启停,避免群起群停。
缺点:比较麻烦。
#hadoop2.x版本命令
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
#hadoop3.x版本命令
hdfs --daemon start|stop namenode|datanode|secondarynamenode
#hadoop2.x版本命令
yarn-daemon.sh start|stop resourcemanager|nodemanager
#hadoop3.x版本命令
yarn --daemon start|stop resourcemanager|nodemanager
前提:配置好机器之间的SSH免密登录和workers文件。
start-dfs.sh
stop-dfs.sh
start-yarn.sh
stop-yarn.sh
start-all.sh
stop-all.sh
启动第一台机器
第一台机器输入命令:start-dfs.sh
然后依次在第一台,第二台,第三台机器上输入jps
结果:
没有试过,但是有人遇到了这样的问题:hadoop集群启动的时候,从机的DataNode没有启动的原因及解决
补充记忆:
HDFS集群
地址:http://namenode_host:9870
其中namenode_host是namenode运行所在机器的主机名或者ip
浏览文件系统:
YARN集群
地址:http://resourcemanager_host:8088
其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。