hadoop 分布式安装笔记及安装过程中遇到的问题

准备工作

1 准备3个linux系统的环境主机或者虚拟机

2 修改/etc/hostname文件将主机名分别改为 master、slave1、slave2

3 为每台主机创建hadoop用户

4 为三台主机的hadoop用户配置免密登录

ssh-keygen -t rsa    命令生公钥文件

cat .ssh/id_rsa.pub >> .ssh/authorized_keys  将hadoop用户下生成的加入到用于认证的公钥文件中,并将本台主机的公钥内容追加的其他两台主机hadoop用户下的公钥文件当中。

5 安装JAVA环境 

6 关闭防火墙

7 为hadoop用户添加sudo权限

 

 

开始安装

1 用hadoop用户创建/usr/local/hadoop 目录,并将下载好的hadoop压缩包上传至此目录解压

2 配置环境变量(root用户操作)

vi /etc/profile

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.5
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

source /etc/profile

3  hadoop version 可以查看hadoop版本

[root@master ~]# hadoop version
Hadoop 2.8.5
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8
Compiled by jdu on 2018-09-10T03:32Z
Compiled with protoc 2.5.0
From source with checksum 9942ca5c745417c14e318835f420733
This command was run using /usr/local/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar

4 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_231
#下边这两行是后边遇到问题后才加上的配置文件
export HADOOP_IDENT_STRING=$USER
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

5 修改core-site.xml( hadoop 的核心配置文件,添加设置为namenode节点的地址,端口号一般为9000)

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://10.12.1.170:9000</value>
    </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/hadoop/hadoop-2.8.5/tmp</value>
        </property>
</configuration>

6 修改hdfs-site.xml(设置备份数量,由于我们有两个datanode,所以设置为2)

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.8.5/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.8.5/tmp/dfs/data</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slaver1:9001</value>
    </property>
</configuration>

7 修改mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

8 修改yarn-site.xml

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</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>
</configuration>

9 修改slaves

[root@master hadoop]# cat slaves
slaver1
slaver2

10 将配置好的hadoop复制到另外两台机器上,并为两台slave配置hadoop环境变量
sudo scp -r hadoop-3.1.3 root@slaver1:/usr/local/hadoop/
sudo scp -r hadoop-3.1.3 root@slaver2:/usr/local/hadoop/
chown -R  hadoop:hadoop hadoop-3.1.3/

11 在master上初始换hadoop,并启动hadoop

  hadoop namenode –format  初始话namenode

  cd $HADOOP_HOME/sbin;./start-all.sh

遇到的问题及解决办法

 

1 datanode节点日志报错如下:

WARN org.apache.hadoop.ipc.Client: Failed to connect to server: master/10.12.1.170:9000: retries get failed due to exceeded

maximum allowed retries number: 10

可以用telnet测试:telnet master 9000

报错:无法连接master。防火强未关闭,telnet测试
telnet master 9000 发现不通,查看是防火墙未关闭,可以关闭防火墙,或者开放9000端口

2 执行 hadoop fs -ls /  有以下警告信息  

Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决办法:

vi /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/hadoop-env.sh
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

 

 

 

posted @ 2019-11-21 22:49  此间的少年no  阅读(214)  评论(0编辑  收藏  举报