赞
踩
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
打开环境变量注册表
vim /etc/profile
配置环境变量
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
配置生效
source /etc/profile
进入Hadoop
的安装目录,编辑/etc/hadoop/hadoop-env.sh
文件,设置JAVA_HOME
为您的JDK
安装路径
export JAVA_HOME=/opt/dev/jdk1.8.0_151
检查是否安装完成,使用命令查看hfs中的根目录
hadoop fs -ls /
由于Hadoop单机模式是一种用于开发和测试的模式,它并不需要进行集群和分布式环境的设置。在Hadoop单机模式下,默认情况下,Hadoop会使用当前用户的身份进行操作,而无需输入密码。
前提条件:
首先分别打开三台虚拟机,分别使用下列指令将主机名修改。
由于NetworkManager服务的配置问题,直接使用hostname指令设置主机名在重启后会失效,需要每次开机重启,若想永久修改主机名生效,则修改/etc/hostname文件
vi /etc/hostname
下述的hadoop100是指新的主机名。同理修改其他的虚拟机主机名
hadoop100
分别检查虚拟机网络,当有数据返回时则无问题
ping www.baidu.com
编辑主机名列表文件
vi /etc/hosts
在文件加入,指定IP地址对应的hostname
192.168.10.128 badoop100
192.168.10.130 hadoop101
192.168.10.131 hadoop102
重启生效
reboot
在主机验证
ping hadoop101
如果没有安装JDK和Hadoop,则可先在某一台虚拟机上安装完毕:
tar -zxvf /opt/jdk1.8.0_151.tar.gz
然后在该虚拟机上通过下列的集群分发脚本将 JDK和Hadoop分别分发到其他的虚拟机中,后续要输入yes和当前将要连接的hadoop101的密码:
# 将当前JDK发送到test1用户下主机名为hadoop101的/opt/dev/jdk1.8.0_151路径
scp -r /opt/dev/jdk1.8.0_151 test1@hadoop101:/opt/dev/jdk1.8.0_151
# 将Hadoop发送到test2用户下主机名为hadoop102的/opt/dev/jdk1.8.0_151路径
scp -r /opt/hadoop/bin/hadoop test1@hadoop102:/opt/hadoop/bin/hadoop
记得配置环境变量,查看环境变量profile文件
vim /etc/profile
目标虚拟机都要设置环境变量
export JAVA_HOME=/opt/dev/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
让配置文件生效
source /etc/profile
输入java指令检验Java是否安装成功
java -version
输入hadoop指令查看是否安装成功
hadoop
配置SSHD:如果免密登录不生效或出现连接错误,可能是由于目标节点的SSH服务器配置不正确。在目标节点上,编辑/etc/ssh/sshd_config
文件,确保以下设置:
sudo vim /etc/ssh/sshd_config
PubKeyAuthentication yes
PasswordAuthentication no # 如果需要使用finalshell,那么可以不写这个
重启ssh服务:
sudo service ssh restart
分别在三个虚拟机中的~/.ssh
目录下生成id_rsa和id_rsa.pub文件,分别对应着私钥和公钥:
ssh-keygen -t rsa -P ""
追加到新文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改id_rsa.pub文件的权限
chmod 644 ~/.ssh/authorized_keys
将主节点的公钥文件分发到集群中的各个节点上,使得节点可以进行免密登录。运行以下命令,其中test1、test2是目标节点的登录用户名,hadoop101、hadoop102是节点主机名:
ssh-copy-id -i ~/.ssh/id_rsa.pub test1@hadoop101
ssh-copy-id -i ~/.ssh/id_rsa.pub test2@hadoop102
输入完成后,输入目标机的密码,将主节点的公钥添加到从节点的~/.ssh/authorized_keys
文件中。
远程登录目标机,测试是否成功共享密钥,如果可以成功登录且不用输入密码,则表示免密登录已经配置成功:
ssh test1@hadoop101
ssh test2@hadoop102
打开文件
vi etc/hadoop/hadoop-env.sh
修改文件
export JAVA_HOME=/opt/dev/jdk1.8.0_381
打开文件
vi etc/hadoop/core-site.xml
修改文件:
fs.defaultFS:该参数是配置指定HDFS的通信地址。
hadoop.tmp.dir:该参数配置的是Hadoop临时目录
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoopTmp/</value>
</property>
</configuration>
打开文件
vi etc/hadoop/hdfs-site.xml
修改文件:
dfs.namenode.http-address:该参数是配置NameNode的http访问地址和端口号。因为在集群规划中指定hadoop100设为NameNode的服务器,故设置为hadoop100:9870。
dfs.namenode.secondary.http-address:该参数是配置SecondaryNameNode的http访问地址和端口号。在集群规划中指定hadoop102设为SecondaryNameNode的服务器,故设置为hadoop102:50090。
dfs.replication:该参数是配置HDFS副本数量,建议不超过从节点数。
dfs.namenode.name.dir:该参数是设置NameNode存放的路径。
dfs.datanode.data.dir:该参数是设置DataNode存放的路径。
<configuration> <property> <name>dfs.namenode.http-address</name> <value>hadoop100:9870</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop102:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoopTmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoopTmp/dfs/data</value> </property> </configuration>
打开文件
vi etc/hadoop/yarn-site.xml
修改文件:
参数说明:
yarn.resourcemanager.hostsname:该参数是指定ResourceManager运行在那个节点上。
yarn.resourcemanager.webapp.address:该参数是指定ResourceManager服务器的web地址和端口。
yarn.nodemanager,aux-services:该参数是指定启动时加载server的方式。
yarn.nodemanager.aux-services.mapreduce.shuffle.class:该参数是指定使用mapreduce_shuffle中的类。
yarn.log-aggregation-enable:该参数是配置是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds:该参数是配置聚集的日志在HDFS上保存的最长时间。
yarn.nodemanager.remote-app-log-dir:该参数是指定日志聚合目录。
<configuration> <property> <name>yarn.resourcemanager.hostsname</name> **先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里** **深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。** ![img](https://img-blog.csdnimg.cn/img_convert/bcf512d488b229ce36c74f79b779fb58.png) ![img](https://img-blog.csdnimg.cn/img_convert/4bef2f62f9ef279fe1b5638706b6773d.png) ![img](https://img-blog.csdnimg.cn/img_convert/8a944157ff3b29cdc935ab76bb9b9910.png) ![img](https://img-blog.csdnimg.cn/img_convert/dd9e781b9b38625558a7cfbba8cb02d0.png) ![img](https://img-blog.csdnimg.cn/img_convert/5a0b6b3a1f452c764fcebc703af873eb.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!** **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)** 希望能够帮助到想自学提升又不知道该从何学起的朋友。** [外链图片转存中...(img-ZvbeCYfb-1715265860305)] [外链图片转存中...(img-DUZDvPX5-1715265860305)] [外链图片转存中...(img-eBfTFkD4-1715265860306)] [外链图片转存中...(img-8PoqiZQI-1715265860306)] [外链图片转存中...(img-RHlVdNRl-1715265860307)] **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!** **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。