目录
前言:
安装hadoop:
hadoop单机配置:
hadoop伪分布配置:
关于一些遇到的报错:
总结:
前言:
由于笔者最近有比赛,所以隔了好久才更新第二篇,上篇文章是关于ubuntu的基础配置,这篇我们开始正式学习hadoop。
安装hadoop:
下载地址:http://hadoop.apache.org/
练习使用版本:hadoop-3.3.0.tar.gz
连接xftp,将安装包传入虚拟机。
#在虚拟机中解压安装包,解压到/usr的local目录下,该目录为用户下载目录。
tar -zxf hadoop-3.3.0.tar.gz -C /usr/local/hadoop
注:xftp的非商业版需在其官方网站上填报邮箱申请,官方网址如下家庭/学校免费 - NetSarang Website
如果是用作商业用途,需购买。
hadoop单机配置:
将hadoop加入环境配置
vi ~/.bashrc #添加以下内容 #Hadoop Environment export HADOOP_HOME=/usr/local/hadoop-3.3.0 export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改环境变量配置文件
vi /etc/profile #添加以下内容 export HADOOP_HOME=/usr/local/hadoop-3.3.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NaTIVE_DIR" #加载环境变量配置文件 source /etc/profile
修改hadoop配置
#首先备份原配置文件
cp /usr/local/hadoop-3.3.0/etc/hadoop/hadoop-env.sh /usr/local/hadoop-3.3.0/etc/hadoop/hadoop-env.bak
#然后再修改
vi /usr/local/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
#The java implemention to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
#export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.0/etc/hadoop
#测试hadoop版本信息,显示版本即配置成功
hadoop version
hadoop伪分布配置:
我们在单机模式的基础上继续配置。
首先关闭防火墙,selinux0
#重启网卡 systemctl retstart network-manager #检查当前防火墙状态 sudo ufw status #开启防火墙 sudo ufw enable #关闭防火墙 sudo ufw disable #设置selinux为permissive模式 setenforce 0 #设置selinux为enforcing模式 setenforce 1 #查看jdk版本 java -version
修改主机相关
#修改主机名 vi /etc/hostname #主机名 master #修改ip与主机名的对应关系 vi /etc/hosts 127.0.0.1 localhost 10.211.4.103 master
在单机模式的基础上修改配置文件
#修改配置 vi /usr/local/hadoop-3.3.0/etc/hadoop/core-site.xml #配置hadoop的tmp目录和fs的链接,tmp用于存放hdfs的关键文件#创建tmp下的一系列目录 mkdir /usr/local/hadoop-3.3.0/tmp mkdir tmp/dfs mkdir tmp/dfs/name mkdir tmp/dfs/data mkdir tmp/dfs/namesecondary #修改tmp目录下(包括tmp)的目录权限 chmod -R +777 tmp #修改文件块在hdfs中保存的副本数以及namenode和datanode文件的保存目录 vi /usr/local/hadoop-3.3.0/etc/hadoop/hdfs-site.xml #配置namenode和datanode的保存路径为上面配置的同名目录 hadoop.tmp.dir file:/usr/local/hadoop-3.3.0/tmp fs.defaultFS hdfs://localhost:9000 #格式化namenode,若找到name has been successfully formatted信息,则成功 hdfs namenode -format #启动服务 start-dfs.sh #使用浏览器访问127.0.0.1:9870 #ubuntu20.04版本的namenode端口为9870 #如果显示页面即配置成功 dfs.replication 1 dfs.namenode.name.dir file:/usr/local/hadoop-3.3.0/tmp/dfs/name dfs.datanode.data.dir file:/usr/local/hadoop-3.3.0/tmp/dfs/data
关于一些遇到的报错:
配置过程中免不了的就是遇到报错,解决了的报错写下来,以后再遇到就能很好解决。
###报错: root@master:~# start-dfs.sh Starting namenodes on [localhost] ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes ERROR: Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation. Starting secondary namenodes [master] ERROR: Attempting to operate on hdfs secondarynamenode as root ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. #原因:使用root账户启动但没将root加入配置文件,启动被阻止 #解决方法:进入hadoop安装目录下的sbin,修改以下内容 #增加在第一行下,如果放在文档尾部会读取不到导致配置无效 cd /usrl/local/hadoop-3.3.0/sbin vi start-dfs.sh #!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root vi stop-dfs.sh #!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root vi start-yarn.sh #!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root vi stop-yarn.sh #!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root #重新start-dfs.sh即可 ### #jps 查看进程号和进程名 -l 显示详细 #使用firefox访问127.0.0.1:9870 #不能访问的解决方案(过长) #禁用TLS 1.3 #1、在Firefox的地址栏中输入“ about:config ”。 #2、在搜索条目“tls.version.max ”。将值从4更改为3。 #3、值4所表示TLS 1.3,3个代表TLS 1.2。 #重新启动浏览器即可。
总结:
好好学习天天向上,下一篇讲hadoop的分布式配置,不知道多久写出来。



