首页 > 技术文章 > 大二暑假第一周总结--初次安装配置Hadoop

heiyang 2019-07-17 10:29 原文

  本次配置主要使用的教程:http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/

  以下是自己在配置中的遇到的一些问题和解决方法,或者提示

  一.使用虚拟机安装centos7并设置图形界面

  在安装的过程中,由于自己还是熟悉图形界面,所以还是在安装之后又继续安装了图形界面

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

  这行代码是安装图形界面,但是我们需要注意的是,我们需要设置好网络连接,否则无法下载成功,再次之前最好先ping一下,如果不想麻烦的设置网络连接,最好在安装的时候就设置好网络,否则从命令界面设置网络还是有些麻烦的。安装图形界面的具体连接:https://www.cnblogs.com/passer101/p/9899249.html

  二.创建Hadoop用户

  这里唯一需要注意的是要对Hadoop用户添加管理员权限

visudo

  

  三.安装SSH、配置SSH无密码登陆

  这个具体流程可以参考连接,实现上没有难度,至少我在操作的时候没有遇到问题

  http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/

  四.安装Java环境

  这里我们没有按照教程上面的使用openjdk,而是选择了Oraclejdk,这里我们需要注意的就是精简版的centos安装包和完整版centos都有预装openjdk,所以我们首先需要的是卸载openjdk,然后再安装Oraclejdk才可以。我们在此之前使用java -version命令先查看自己是否有openjdk,如果有的话然后再进行卸载。

rpm -qa | grep java | xargs rpm -e --nodeps //使用此代码来进行openjdk的卸载

  然后进入Oracle官网:https://www.oracle.com/technetwork/java/javase/downloads/index.html,然后找到选择你要的jdk,并进行下载,我们需要注意的是,现在新版的jdk下载需要注册账户,比较繁琐一点。

  

  解压JDK
       1 将"/root/下载/jdk-8u211-linux-x64.tar.gz"文件拷贝到/usr/java 目录下
      [root@localhost 下载]# cp jdk-8u211-linux-x64.tar.gz  /usr/java
      2 解压缩该压缩文件到 /usr/java目录   
     [root@localhost java]#tar -zxvf jdk-8u211-linux-x64.tar.gz 
  配置jdk环境变量
     1 编辑
    [root@localhost java]#vim /etc/profile
     在最后一行加上如下值
    #java environment
    export JAVA_HOME=/usr/java/jdk1.8.0_211
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    export PATH=$PATH:${JAVA_HOME}/bin
     注:CentOS6上面的是JAVAHOME,CentOS7是{JAVA_HOME}

 接着需要配置一下 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置

  vim ~/.bashrc 在文件最后面添加如下单独一行(指向 JDK 的安装位置),并保存:

  •   export JAVA_HOME=/usr/java/jdk1.8.0_211

 接着还需要让该环境变量生效,执行如下代码:source ~/.bashrc            使变量设置生效

    设置好后我们来检验一下是否设置正确:

  1. echo $JAVA_HOME # 检验变量值
  2. java -version
  3. $JAVA_HOME/bin/java -version # 与直接执行 java -version 一样
  4. 如果设置正确的话,$JAVA_HOME/bin/java -version 会输出 java 的版本信息,且和 java -version 的输出结果一样

  需要注意的是,上面的方法是需要中文输入法的(就是拼音),所以我们需要再添加一个拼音的输入法,然后就是最好在VMware上面安装VMware Tool,这样有时候就会在输入命令直接粘贴就好,比较便捷省事

  具体的安装操作可以参考连接:https://jingyan.baidu.com/article/597a0643356fdc312b5243f6.html

  五.安装hadoop2

  按照第三步骤给出的教程即可完成安装,总体不算十分复杂,安装的时候也没有遇到什么困难。

  六.Hadoop单机配置(非分布式)

  此部分也没有遇到什么困难,依照教程即可。

  七.Hadoop伪分布式配置

  在设置 Hadoop 伪分布式配置前,我们还需要设置 HADOOP 环境变量,执行如下命令在 ~/.bashrc 中设置:

   gedit ~/.bashrc

  在文件最后面增加如下内容

  export HADOOP_HOME=/usr/local/hadoop

  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/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

  保存后,不要忘记执行如下命令使配置生效:source ~/.bashrc

  

  Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

  修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),

将当中的

  1. <configuration>
  2. </configuration>

修改为下面配置:(序号不要添加)

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>file:/usr/local/hadoop/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://localhost:9000</value>
  10. </property>
  11. </configuration>

同样的,修改配置文件 hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  13. </property>
  14. </configuration>

  配置完成后,执行 NameNode 的格式化:./bin/hdfs namenode -format

  成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

  接着开启 NaneNode 和 DataNode 守护进程:./sbin/start-dfs.sh

  如果正常打开,我们可以看到大致如下的图片:

 

  如果只是单独一个21323 jps类似的输出的话就是有问题的,那么可能是格式化出现了问题,多次格式化会导致namenode和DataNode的ID不同,所以就不会同时出现。或者说端口号被占用也会导致这种情况出现。

  可参考以下链接:

  端口号问题:https://blog.csdn.net/kangkanggegeg/article/details/73960642

  权限问题:https://blog.csdn.net/qq_38082431/article/details/78727084

  多次格式化问题:https://blog.csdn.net/Fly_TheWind/article/details/80444750

  最终解决方法:先停止进程,删除/usr/local/hadoop/目录下的tmp目录,然后重新再来一遍。

  八.运行Hadoop伪分布式实例

  按照主教程走是没有问题的,这里主要是总结一下,在运行中出现的问题,就是有时候会显示 input目标不是文件或是目录,这个问题是有因为使用的相对位置错误,我们需要在input和output前加一个/,使它成为相对地址才可以,如果不想的话,也可以使用绝对地址/usr/hadoop/input。还有就是一定要是使用Hadoop用户来创建,如果你不是使用Hadoop用户来创建的话,或者使用了sudo 命令来创建,可能用户就会变成root,那么就地址相应的也会出错,绝对地址就会变成user/root/input,或者你使用的用户的地址,所以就会出现不存在的情况。

  九.启动YARN

  这一部分也是比较简单,很容易就配置好了,按照教程来就好。

推荐阅读