当前位置:   article > 正文

Linux下Hadoop3.2.0的安装_juw7

juw7

我所安装的是hadoop-3.2.0,安装包链接在下方,可自取。

链接:https://pan.baidu.com/s/1o81ZThq7Juw7h8LglAZIfg 
提取码:pgvm 

预操作

首先,在安装Hadoop之前要进行的一个操作是关闭防火墙

关闭系统防火墙:

systemctl stop firewalld

systemctl disable firewalld

修改主机名称为:master

主机文件配置地址:

vi /etc/hostname

在hosts添加  IP和主机名对应关系

vi /etc/hosts

其次,在关闭防火墙后,还需要执行一个操作,那就是设置ssh免密登录在Linux中安装其他软件之前最好先设置ssh免密登录

1、进入root用户,执行ssh-keygen -t rsa,一路回车

执行:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

查看/root/.ssh/文件夹中生成一系列文件

JAVA JDK安装 

要运行Hadoop,需要由jdk环境,所有安装java jdk是必不可少的。

由于linux系统在装好时系统里面就自带了一个jdk,但是这个自带的jdk是open jdk,没有oracle jdk功能全,所以需要卸载原有的open jdk再重新安装一个jdk。

已有OpenJdk卸载

查询现有Java Jdk版本

java -version

查看已经安装版本

rpm –qa|grep java

进行卸载:

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

查看卸载情况

java -version

转到跟Hadoop所在的同一目录下(这个可随意),将安装包解压在这个目录下

cd /usr/local/soft/

解压:

tar -zxvf jdk-8u11-linux-x64.tar.gz

配置环境变量:

 vim /etc/profile

输入

export JAVA_HOME=/usr/local/soft/jdk1.8.0_11  (这个是jdk所在的目录)

export PATH=.:$PATH:$JAVA_HOME/bin

保存退出

 :wq

使修改立即生效(不管安装什么,在是配置完环境变量后都要执行这步操作):

source /etc/profile

验证:

java  -version

 

Hadoop部署

在做好上面两步后,就可以开始Hadoop的配置了。

1、软件解压

cd /usr/local/soft/

tar -zxvf hadoop-3.2.0.tar.gz

2、修改Hadoop的Java配置路径:/usr/local/soft/hadoop-3.2.0/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/local/soft/jdk1.8.0_11

 

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

 

export HADOOP_PID_DIR=/data/hadoop/pids

export HADOOP_LOG_DIR=/data/hadoop/logs

修改系统环境变量:vi /etc/profile

export HADOOP_HOME=/usr/local/soft/hadoop-3.2.0

export PATH=$PATH:$HADOOP_HOME/bin

export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

保存系统环境变量:souce /etc/profile

3、修改配置文件

core-site.xml

<configuration>

       <property>

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

       </property>

       <property>

                <name>hadoop.tmp.dir</name>

                <value>/data/hadoop/tmp</value>

       </property>

</configuration>

hdfs-site.xml

<configuration>

   <property>

            <name>dfs.namenode.secondary.http-address</name>

            <value>master:50090</value>

   </property>

   <property>

            <name>dfs.replication</name>

            <value>2</value>

   </property>

   <property>

            <name>dfs.namenode.name.dir</name>

            <value>file:/data/hadoop/hdfs/name</value>

   </property>

   <property>

            <name>dfs.datanode.data.dir</name>

            <value>file:/data/hadoop/hdfs/data</value>

   </property>

   <property>

        <name>dfs.permissions.enabled</name>

        <value>false</value>

    </property>

</configuration>

dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将master1规划为SecondaryNameNode服务器。

Workers.sh中添加   master

workers文件是指定HDFS上有哪些DataNode节点。

yarn-site.xml

<configuration>

    <property>

       <name>yarn.nodemanager.aux-services</name>

       <value>mapreduce_shuffle</value>

   </property>

   <property>

      <name>yarn.nodemanager.localizer.address</name>

      <value>0.0.0.0:8140</value>

   </property>

   <property>

       <name>yarn.resourcemanager.hostname</name>

       <value>master</value>

   </property>

   <property>

       <name>yarn.log-aggregation-enable</name>

       <value>true</value>

   </property>

   <property>

       <name>yarn.log-aggregation.retain-seconds</name>

       <value>604800</value>

   </property>

   <property>

       <name>yarn.log.server.url</name>

       <value>http://master:19888/jobhistory/logs</value>

   </property>

</configuration>

根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向master1。

yarn.log-aggregation-enable是配置是否启用日志聚集功能。

yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间。

mapred-site.xml配置

<configuration>

   <property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

   </property>

  

   <property>

       <name>yarn.app.mapreduce.am.env</name>

       <value>HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0</value>

   </property>

   <property>

       <name>mapreduce.map.env</name>

       <value>HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0</value>

   </property>

   <property>

       <name>mapreduce.reduce.env</name>

       <value>HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0</value>

   </property>

  

   <property>

       <name>mapreduce.jobhistory.address</name>

       <value>master:10020</value>

   </property>

   <property>

       <name>mapreduce.jobhistory.webapp.address</name>

       <value> master:19888</value>

   </property>

</configuration>

mapreduce.framework.name设置mapreduce任务运行在yarn上。

mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在master1机器上。

mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号

4、格式化Hadoop系统

./bin/hdfs namenode  -format

5、启动

./sbin/start-dfs.sh

停止:

./sbin/stop-dfs.sh

6、检测进程:

jps

HDFS Web页面

http://127.0.0.1:9870/

YARN Web页面

http://192.168.24.56:8088/(linux的ip地址)

 

常见问题:

1、如果集群正常启动,发现网页中没有子节点,有两种办法解决,但其实都是同一个原理:

 

第一种方法:

先关闭集群:

./sbin/stop-all.sh

查找主节点version中的集群ID,路径/data/hadoop/hdfs/name/current/

 

在两个从节点中找到从节点的version,路径:/data/hdfs/data/current/

 

clusterID从节点需要和主节点保持一致,如果从节点没有current文件夹,再自己检查配置和日志文件里面错误信息

第二种方法:

找到Hadoop目录中的一个data文件夹,里面存放的都是Hadoop的缓存文件,直接删掉就可以解决这个问题。其实一般找不到节点的话可能是因为安装了多次Hadoop,除去第一次安装生成的data文件夹,后面的安装都是在第一次生成的data文件夹上进行的,里面的一些文件什么的可能就会出现问题,所以就需要删除data文件夹再重新安装。

2、启动都成功,网页中没有从节点

检查防火墙是否关闭

3、格式化失败,报权限问题

检查hadoop文件夹所有者是否当前用户,如果不是,执行命令

chown -R root /usr/local/soft/hadoop-3.2.0

4、如果某个端口号不起作用,命令查看端口启动情况

netstat -tlpn

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/922454
推荐阅读
相关标签
  

闽ICP备14008679号