用WinScp将jdk1.8压缩包上传到/opt/software文件夹下
在 opt目录下解压jdk: tar -zxvf software/jdk-8u241-linux-x64.tar.gz
jdk重命名:
mv jdk1.8.0_241/ jdk
vim /etc/profile.d/hadoop_etc.sh # 在这个中编写环境变量
写入以下内容:
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
更新环境变量:
source /etc/profile.d/hadoop_etc.sh
本人将虚拟机 master作为主节点 s1作为从节点
vim /etc/sysconfig/network
2.1 安装: yum install iptables-services
2.2 关闭: service iptables stop & chkconfig iptables off
2.3 检查: service iptables status
打开配置文件添加一下内容:
1. 打开文件: vim /etc/hosts`
2. 添加:
192.168.1.100 master
192.168.1.101 s1
验证:
ping s1 / ping master
vim /etc/selinux/config
5.1 用 vim /etc/hosts
往 hosts中添加以下内容(ip 和主机名)
192.168.1.100 master
192.168.1.101 s1
scp /etc/hosts [email protected]:/etc/hosts
ssh-keygen -t rsa # 中间直接敲三个回车会看到以下内容
ls
scp id_rsa.pub root@master:/root/.ssh/id_rsa.pub.s1
检查:
5.5 将主节点和从节点的公钥添加到主节点的authorized_keys中:
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.s1 >> authorized_keys
检查:
5.6 修改authorized_keys 文件的权限:(必须要做)
chmod 644 ~/.ssh/authorized_keys
5.7 拷贝authorized_keys 这个文件到从节点中:
scp /root/.ssh/authorized_keys s1:/root/.ssh/authorized_keys
tar -zxvf software/hadoop-3.2.1.tar.gz
4.3.1 配置文件1
vim /etc/profile.d/hadoop_etc.sh
写入:
export HADOOP_INSTALL=/opt/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export HADOOP_YARN_HOME=$HADOOP_INSTALL
export HADOOP_CONF_HOME=$HADOOP_INSTALL
source /etc/profile.d/hadoop_etc.sh
hadoop version
4.4.1 编辑hadoop的配置文件在/opt/hadoop/etc/hadoop目录下:
vim hadoop-env.sh vim yarn-env.sh中
分别添加: export JAVA_HOME=/opt/jdk
4.4.2 在workers中配置workers节点的ip或hostname(或者vim一个slaves)
sudo vim workers
删除localhost,增加s1再添加一个master
4.4.3 建立相关的hdfs文件:在opt目录下:
mkdir -p hd_space/tmp
mkdir -p hd_space/hdfs/name
mkdir -p hd_space/hdfs/data
mkdir -p hd_space/mapred/local
mkdir -p hd_space/mapred/system
4.4.4 下面配置的文件都在:/opt/hadoop/etc/hadoop目录下:
配置1:core-site.xml文件: vim core-site.xml
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/hd_space/tmpvalue>
property>
configuration>
配置2 : hdfs-site.xml文件: vim hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dirname>
<value>/opt/hd_space/hdfs/namevalue>
property>
<property>
<name>dfs.data.dirname>
<value>/opt/hd_space/hdfs/datavalue>
property>
<property>
<name>dfs.replicationname>
<value>2value>
property>
<property>
<name>dfs.http.addressname>
<value>master:50070value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>s1:50090value>
property>
configuration>
配置3 :mapred-site.xml文件:(如果没有这个文件则用这个文件的模板创建一个)
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.cluster.local.dirname>
<value>/opt/hd_space/mapred/localvalue>
property>
<property>
<name>mapreduce.cluster.system.dirname>
<value>/opt/hd_space/mapred/systemvalue>
property>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>master:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>master:19888value>
property>
configuration>
配置4: yarn-site.xml文件: vim yarn-site.xml
<configuration>
<property>
<description>The hostname of the RM.description>
<name>yarn.resourcemanager.hostnamename>
<value>mastervalue>
property>
<property>
<description>the valid service name should only contain a-zA-Z0-9_ and
can not start with numbersdescription>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
configuration>
4.5.1 将主节点上的东西传到从节点上:
拷贝jdk: scp -r /opt/jdk root@s1:/opt/
拷贝hadoop: scp -r /opt/hadoop root@s1:/opt/
拷贝hd_space: scp -r /opt/hd_space root@s1:/opt/
4.5.2 拷贝配置文件:
scp -r /etc/profile.d/hadoop_etc.sh root@s1:/etc/profile.d/hadoop_etc.sh
4.5.3 在从节点(s1)中重启环境变量:
source /etc/profile.d/hadoop_etc.sh
4.5.4 验证Hadoop和java是否安装成功:
hadoop version
java -version
4.6.1 格式化:hdfs namenode -format
4.6.2 启动集群: start-all.sh
4.6.3 验证:
jps : 查看守护进程
首页: 192.168.1.100:50070
应用:
节点:
文件目录:
5.1 使用yum 命令出现以下错误时:
解决方法:
用这个命令修改文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33
加上最后两句
更改完后重启网络:
service network restart
5.2 启动hadoop时出现问题:
问题出现的原因: 没有权限
解决方法:
执行: (可以在目录:/opt/hadoop/sbin中的start-all.sh、stop-all.sh文件中加入以下内容)
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”
5.3 要注意的是:启动hadoop前:
(1)关闭防火墙
(2)权限足够
(3)配置的时候地址填对
5.4 用hadoop上传文件的时候出现错误:
put: File /data/file/group._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.
原因:
1)datanode没有启动
2)之前由于格式化不成功的原因格式化了两次出现:data/current/下的VERSION中的clusterID和name/current/下VERSION中的clusterID不一样
解决:
1) 启动datanode :hadoop --daemon start datanode使用这个启动
2)将name中的clusterID复制到data的clusterID中,覆盖data的。(如果data下没有current文件,请先启动datanode节点)
查看VERSION的存放目录:
在hdfs-site.xml文件中
5.5 归档时出现的错误:
1)没有找到类:
解决方法:
hadoop classpath
vim yarn-site.xml
更改后重启hadoop
2)出现安全问题
解决:关闭安全模式: hdfs dfsadmin -safemode leave