zoukankan      html  css  js  c++  java
  • 在ubuntu server上搭建Hadoop

    1. Java安装:

    Because everything work with java.

    $ sudo apt-get install openjdk-7-jdk
    

    安装之后,可以查看java的版本信息:

    wu@ubuntu:~$ java -version
    java version "1.7.0_181"
    OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
    OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
    

    2. 创建Group

    我们将会创建一个group,并配置这个group的权限,之后将user加到这个group之中。在下列程序中hadoop是group name,hduser是该group中的user。

    将两个命令在ubuntu server的terminal里输入。

    $ sudo addgroup hadoop
    
    $ sudo adduser --ingroup hadoop hduser
    

    3. 配置hduser的权限

    打开visudo,配置hduser的权限:

    $ sudo visudo
    

    在nano编辑器里增加下面这句话,即给予hduser和root一样的权限

    hduser ALL=(ALL) ALL
    

    4. 创建hadoop目录并修改权限

    $ sudo mkdir /usr/local/hadoop
    $ sudo chown -R hduser /usr/local/hadoop
    $ sudo chmod -R 755 /usr/local/hadoop
    

    5. 切换用户(Switch User)

    su hduser
    

    6. 下载解压hadoop

    这里采用镜像下载:

    $ wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.9.1.tar.gz
    

    下载完之后解压:

    $ tar xzf hadoop-2.9.1.tar.gz
    

    将解压后的目录/hadoop-2.9.1中的所有内容移动到/usr/local/hadoop

    mv hadoop-2.9.1/* /usr/local/hadoop
    

    7. 配置环境变量

    编辑$HOME/.bashrc 文件,添加java和hadoop路径

    $ vim $HOME/.bashrc
    

    在 .bashrc 中添加如下变量:

    # Set Hadoop-related environment variables
    export HADOOP_HOME=/usr/local/hadoop
    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
    PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/native"
    
    # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    

    重新加载 .bashrc 文件

    $ source $HOME/.bashrc
    

    8. 生成ssh

    生成一个新的ssh public/private key pair在你的本机上,我们需要本机访问ubuntu server无需密码。这一步具体操作可见:Mac OS利用ssh访问ubuntu虚拟机及云端操作的第5节内容。

    9. 添加localhost

    $ ssh localhost
    

    10. 配置文件

    1.将当前目录移动到/usr/local/hadoop/etc/hadoop

    $ cd $HADOOP_HOME/etc/hadoop
    

    配置hadoop-env.sh文件,将以下内容添加到文件中。

    # remove comment and change java_HOME 
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    

    2.配置core-site.xml文件,该文件用于定义系统级别的参数,如HDFS,URL,Hadoop的临时目录等。所以,添加以下内容到configure中:

    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
      <description>The name of the default file system.  A URI whose
      scheme and authority determine the FileSystem implementation.  The
      uri's scheme determines the config property (fs.SCHEME.impl) naming
      the FileSystem implementation class.  The uri's authority is used to
      determine the host, port, etc. for a filesystem.</description>
    </property>
    

    3.配置hdfs-site.xml文件,该文件主要有hdfs参数,如名称节点和数据节点的存放位置,文件副本的个数,文件读取权限等。所以,添加以下内容到configure中:

    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    
    <property>
    <name>dfs.name.dir</name>
    <value>/app/hadoop/tmp/namenode</value>
    </property>
    
    <property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/tmp/datanode</value>
    </property>
    

    4.配置yarn-site.xml文件,该文件主要包含集群资源管理系统参数,如配置ResourceManager, NodeManger的通信端口,web监控端口等。所以,添加以下内容到configure中:

    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    

    5.复制文件mapred-site.xml.template,并粘贴为 mapred-site.xml。

    $ cp mapred-site.xml.template mapred-site.xml
    

    配置mapred-site.xml文件,它里面主要是Mapreduce参数,包含JobHistory Server和应用程序两部分,如reduce任务的默认个数、任务所能够使用内存的默认上限等。所以,将以下内容加入到文件中:

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

    6.编辑slaves文件,添加如下一句话到文件中:

    localhost
    

    11. 添加/app/hadoop/tmp目录,并改变权限:

    $ sudo mkdir /app/hadoop/tmp
    $ sudo chown -R hduser /app/hadoop/tmp
    $ sudo chmod -R 755 /app/hadoop/tmp
    

    12. 格式化

    我们现在完成所有的配置,所以在启动集群之前,我们需要格式化namenode。

    将工作目录移动到/usr/local/hadoop/sbin,并进行格式化:

    $ cd /usr/local/hadoop/sbin
    $ hadoop namenode -format
    

    13. 启动

    是时候启动hadoop了,有两种方式:

    1. 分别启动dfs和yarn:
    $ start-dfs.sh
    $ start-yarn.sh
    
    1. 一键全部启动:
    $ start-all.sh
    

    14. JPS

    一旦dfs启动没有任何错误,我们可以使用命令JPS(java virtual machine process status tool)检查一切是否正常工作,我们应该看到至少一个Namenode和Datanode

    $ jps
    

    15. 网页查看

    由于我们是在ubuntu server中配置的,没有ui界面,所以我们只能通过主机来访问。用http://your IP address:50070上的Namenode的Web界面检查Apache Hadoop的状态。

    16.关闭

    $ stop-all.sh
    

    Reference:

    1. http://hadoop.praveendeshmane.co.in/hadoop/hadoop-2-6-4-pseudo-distributed-mode-installation-on-ubuntu-14-04.jsp
    2. https://zhuanlan.zhihu.com/p/25472769
    3. https://blog.csdn.net/boonya/article/details/55194170
    4. 《鸟哥的Linux私房菜》
  • 相关阅读:
    dedecms织梦修改标题默认长度
    Python正课68 —— 实现面向对象编程
    Python正课67 —— 面向对象介绍
    Win10系统下提示VMware与Device/Credential Guard不兼容的解决方法
    周考5 月考1 内容
    Python正课66 —— ATM + 购物车 小有成就
    Python正课65 —— ATM + 购物车 架构
    Python正课64 —— re模块
    Python正课63 —— logging模块
    Python正课62 —— subprocess模块
  • 原文地址:https://www.cnblogs.com/bjwu/p/9863634.html
Copyright © 2011-2022 走看看