学习心得
在学习Hadoop这门课程的过程中,我收获了很多宝贵的经验和知识。首先,我了解到Hadoop是一个开源的分布式计算框架,用于处理大规模数据集的存储和分析。通过学习Hadoop,我深入理解了大数据处理的原理和方法,我学会了如何搭建和配置Hadoop集群。总结起来,学习Hadoop让我深入了解了大数据处理的原理和方法,掌握了搭建和配置Hadoop集群的技能,通过课堂上的练习更加深入的了解了Hadoop这门课程的原理以及重要性,相信在以后的学习工作当有所进步!下面来了解一下Hadoop集群搭建以及过程中可能出现的问题和解决方法。
hadoop搭建准备工作
1. ip配置:用虚拟机虚拟网络编辑器
- 为每台主机设置ip
2. 主机名配置:vi /etc/hostname
- 为每个节点设置主机名
3. 主机映射 :vi /etc/hosts
- 主机ip 主机名
- 例如:192.XXX.XXX.XXX hadoopm
- 如果有多个节点,则需要分别建立主机ip与主机名的映射
4. 关闭防火墙和sellinux(linux自带的权限认证)
- service iptables stop
- vi /etc/sellinux/config
5. 将系统的启动级别改为3
- vi etc/inittab : 选择3
- 权限3:完全多用户模式
- 权限5:xll图形用户界面
6. 创建普通用户,并为普通用户添加sudolers权限
- 创建用户useradd 用户名
- 设置密码passwd 用户名
- 添加权限:vi /etc/sudoers
- 注意:如果搭建多个节点的完全分布式,各个节点的普通用户名和密码必须要相同
7. 配置免密登录
- 先切换到创建的普通用户hadoop_user (123456)
- 生成密钥:ssh-keygen
- 多个节点的完全分布式,所有节点都要生成密钥
- 发送密钥:
- cd .ssh/
- ssh-copy-id 主机名
- 多个节点的完全分布式,各个节点之间要相互发送密钥(因为可能需要从任何一台节点机器登录其他节点机器)
- 验证:ssh 主机名
- 多个节点的完全分布式,各个节点之间都要相互验证
8. 安装jdk
- 配置:vi /etc/profile
- 在末尾加入:export JAVA_HOME=jdk解压的目录名
export PATH=P A T H : PATH:PATH:JAVA_HOME/bin
- 让配置生效: source /etc/profile
- 验证: java -version
- 写在jdk: rpm -qa | grep jdk
9. 时间同步:伪分布式不需要,完全分布式必须在每个节点做
- 不能联网的情况下,手动指定时间( date -s 时间), 或者手动搭建一个时间服务器
- 可以联网的情况下,找一个公网中的公用的时间服务器,所有节点中的时间与公共时间服务器保持一致
- ntpdate 公网的时间服务器地址
(一)伪分布式
1. 选择安装版本
- 不选太陈旧的版本,也不选太新的版本(多数企业没有普及应用)
- 2.7版本是目前企业用的最多的版本
2. 切换到普通用户:一般企业不会让你使用root用户,需要申请
3. 上传安装包,解压
4. 修改配置文件
- 配置文件都在安装目录下的etc/hadoop目录下(本目录是配置文件存储目录)
- bin\sbin目录:启动文件
- lib目录:工程依赖的java包
- share目录:共享工具
- 需要修改6个配置文件
- hadoop-env.sh
- 修改java环境变量:export JAVA_HOME=/usr/local/jdk
- core-site.xml
- common模块:核心、公共的配置文件
- 配置:从官网上的相应版本的文档中直接copy
- 配置主节点的url链接
- fs.defaultFS
hdfs://hadoopm:9000
- 通信协议://主机名:端口号
- hdfs-site.xml
- 配置副本个数:3个
- dfs.replication
3
- yarn-site.xml
- yarn.nodemanager.aux-services
mapreduce_shuffle
- 配置yarn上资源调度的程序mapreduce_shuffle
- mapred-site.xml
- 目录下的文件为临时文件,先复制一份
- cp mapred-site.xml.template mapred-site.xml
- mapreduce.framework.name
yarn
- 配置mapreduce的运行平台(还可以跑在其他资源调度平台上)
- slaves:配置secondarynodename
- 配置为本机名
5. 配置环境变量: vi ~/etc/profile
- export HADOOP_HOME=/usr/local/hadoop
export PATH=P A T H : PATH:PATH:JAVA_HOME/bin:H A D O O P H O M E / b i n : HADOOP_HOME/bin:HADOOPHOME/bin:HADOOP_HOME/sbin:
- 让环境变量生效:source ~/etc/profile
- 验证:hadoop version
6. 配置完成后,进行格式化
- hadoop namenode -format
- 或hdfs namenode -format
7. 启动
- start-all.sh:已经过时,建议使用以下命令:start-dfs.sh 或 start-yarn.sh
- 验证:jps查看java进程
- 启动6个进程ResourceManager、NodeManager、SecondaryNameNode、NameNode、DataNode、Jps
- mapreduce只有启动相应运算才会启动
- 验证:通过网页验证
- hdfs验证:http://主机名(或ip地址):50070
- yarn验证:http://主机名(或ip地址):8088
(二)完全分布式
0. 搭建准备:按照上面搭建准备的步骤,对每个节点做所有操作
1. 集群搭建:先在一个节点上执行所有操作,再远程发送到其他节点
(1)选择安装版本、上传安装包、解压,
(2)修改环境变量:
(3)修改配置文件(6个):
- 集群规划(假设3台节点机器):注意secondary不能和namenode同一个节点(热备份的功能)
hdfs(主节点) hdfs(从节点) hdfs(secondarynode) yarn(主节点) yarn(从节点)
hadoop1 namenode datanode nodemanager
hadoop2 datanode secondarynode nodemanager
hadoop3 datanode resouremanager nodemanager
(4)远程发送:
- scp -r 本机要发送的文件 要发送到的主机名:$PWD
(5)格式化:必须在namenode的节点(hdfs主节点)
(6)启动:
- 先启动hdfs,可以在任意节点启动(start-dfs.sh)
- jps命令察看的时候,各节点启动的进程应该和集群规划一致
- 启动yarn,要在yarn的主节点进行(start-yarn.sh)
三、集群搭建可能遇到的问题与解决方法
1. 主机名的问题:
(1)主机找不到
- 先检查这两个配置文件:/etc/sysconfig/network、 /etc/hosts
2. 格式化时候报错
- 最常见的是配置文件错误,根据错误提示到相应文件调整,并重新格式化
3. 某些进程启动不了
(1)措施一:将整个集群先关闭,再重新启动。
- 在yarn的主节点执行stop-yarn.sh,在任意节点执行stop-dfs.sh
- dfs可以在任何节点执行启动和关闭,yarn必须在主节点执行
(2)措施二:单独启动某些没有启动的进程
- 运行sbin目录下hadoop-daemon.sh start datanode (namenode secondarynamenode)
- 运行sbin目录下yarn-daemon.sh start nodemanager (resourcemanager)
作业部分(要求1最终部署时,要将这些数据写到第一题的HDFS中)
上传json交件
查看是否成功
部署成功
具体内容