zoukankan      html  css  js  c++  java
  • hadoop的单机配置

    hadoop单机配置

    准备工作

    利用vim /etc/sysconfig/network命令修改主机名称。

    Ssh security shell

    远程登录

    登录远程服务器

    $ ssh user@host

    如果本地用户名与远程用户名一致,登录时可以省略用户名。

    $ ssh host

    提示信息

    The authenticity of host 'host (12.18.429.21)' can't be established.

      RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

    Are you sure you want to continue connecting (yes/no)?

    说明

    这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?

    所谓"公钥指纹",是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比较,就容易多了。

    很自然的一个问题就是,用户怎么知道远程主机的公钥指纹应该是多少?回答是没有好办法,远程主机必须在自己的网站上贴出公钥指纹,以便用户自行核对。

    假定经过风险衡量以后,用户决定接受这个远程主机的公钥。

    同意接受远程主机公钥

    Are you sure you want to continue connecting (yes/no)? yes

    系统提示认可

    Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.

    输入密码

    Password: (enter password)

    说明

    当完成以上几步以后,就可以登录到远程服务器端了。当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。这样有一个缺点,就是每一次登录的时候都要输入密码,这样的操作是比较繁琐的。

    公钥登录

    步骤

    1、 机器A发送自己的公钥到机器B这个时候机器B了机器A公钥

    2、 机器B发送一个随机的字符串向机器A

    3、 机器A利用自己的私钥把字符串加密

    4、 机器A加密后的字符串再次发送给机器B

    5、 机器B利用公钥解密字符串,如果和原来的一样,则OK。

    实现

    1、 生成自己的公钥和私钥

    $ ssh-keygen

    2、 把生成的公钥copy远程机器上

    $ ssh-copy-id user@host

    3、 远程主机的authorized_keys文件

    在远程主机上生成了一个authorized_keys文件,保存公钥的。

    4、当再次访问的时候就不需要输入密码了。

    jdk安装

    上传jdk

    /home创建一个文件夹app

    jdk解压app

    调用tar –zxvf 文件的目录    的命令把jdk解压缩在app目录下

    命令解释:

    tar –zxvf  文件的路径

      f:指定文件的名称

      z:gz结尾的文件就是用gzip压缩的结果。与gzip相对的就是gunzip,这个参数的作用就是用来调用gzip

      X:为解开的意思

      Z:详细报告处理文件的信息

    转到jdkbin目录下,输出java命令

    [root@localhost bin]# ./java

    Usage: java [-options] class [args...]

               (to execute a class)

       or  java [-options] -jar jarfile [args...]

               (to execute a jar file)

    where options include:

        -d32          use a 32-bit data model if available

        -d64          use a 64-bit data model if available

        -server       to select the "server" VM

                      The default VM is server.

        -cp <class search path of directories and zip/jar files>

        -classpath <class search path of directories and zip/jar files>

                      A : separated list of directories, JAR archives,

                      and ZIP archives to search for class files.

    当离开bin这个目录,输出java命令

    [root@localhost bin]# cd ..

    [root@localhost jdk1.7.0_45]# java

    bash: java: command not found

    [root@localhost jdk1.7.0_45]#

    上述的内容很简单:不识别java这个命令

    设置环境变量

    export JAVA_HOME=/home/app/jdk1.7.0_45/

    export PATH=$PATH:$JAVA_HOME/bin

    把这两行配置放入到/etc/profile以后,要做source /etc/profile这样一个命令。

    这样就设置了环境变量。

    Echo命令

    [root@localhost /]# echo $JAVA_HOME

    /home/app/jdk1.7.0_45/

    可以利用该命令看环境变量。

    默认的配置文件

    hadoop-hdfs.jar中,有一个配置文件

    Hadoop-default.xml文件

    hadoop-common.jar中,有一个配置文件

    core-default.xml文件

    修改hadoop-env.sh

    主要是修改java_home的路径,在hadoop-env.sh的第27行。

    export JAVA_HOME=${JAVA_HOME}修改成具体的路径

    [root@localhost hadoop]# vim hadoop-env.sh

    export JAVA_HOME=${JAVA_HOME}àexport JAVA_HOME=/home/app/jdk1.7.0_45/

    [root@localhost hadoop]# source hadoop-env.sh

    如果比较难找,利用: set nu命令可以显示行数

    修改core-site.xml

    [root@localhost hadoop]# vim core-site.xml

    原来的内容:

    <configuration>

    </configuration>

    现在的内容:

    <configuration>

            <property>

                    <name>fs.defaultFS</name>  namenode的名字

                    <value>hdfs://zd01:9000</value>  namenode的地址

            </property>

            <property>

                    <name>hadoop.tmp.dir</name>  文件存储的名称

                    <value>/home/app/hadoop-2.6.0/tmp</value>   文件存储的地址

            </property>

    文件存储路径

    data节点的路径

    name节点的路径

    修改hdfs-site.xml

    原来的内容

    <configuration>

    </configuration>

    现在的内容:

    <configuration>

            <property>

                    <name>dfs.replication</name>  //指的是hdfs的副本的数量,包括自己。

                    <value>3</value>

            </property>

    </configuration>

    修改mapred-site.xml

    说明:在/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,所以必须改名

    [root@localhost hadoop]# mv mapred-site.xml.template mapred-site.xml

    mapred-site.xml文件中

    原来的文件

    <configuration>

    </configuration>

    现在的文件

    <configuration>

            <property>  //指明mapreduce运行在yarn

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

                    <value>yarn</value>

            </property>

    </configuration>

    修改yarn-site.xml

    原来的值:

    <configuration>

    <!-- Site specific YARN configuration properties -->

    </configuration>

    现在的值:

    <configuration>

            <property>

    //指定resourcemanager的地址

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

                    <value>zd01</value>

            </property>

            <property>

    //reduce获取数据的方式

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

                    <value>mapreduce_shuffle</value>

            </property>

    </configuration>

    修改slaves

    存放的是datanode节点的名称

    配置hadoop的环境变量

    export HADOOP_HOME=/home/app/hadoop-2.6.0/

    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ANT_HOME/bin

    格式化namenode

    操作

    hdfs namenode format(Hadoop namenode format  以前的方式)

    在格式化的时候,会有这样的输出:

    Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted

    作用

    1、 清空namenode目录下的所有的文件,上图中的tmp/dfs/name的所有的内容就是要清空的内容

    2、 创建一些文件,例如:fsimage,edits文件

    启动hadoop

    在/home/app/hadoop-2.6.0/sbin目录下

    [root@localhost sbin]# start-all.sh

  • 相关阅读:
    JDK自带的轻量级HTTP Server进行加载。 .
    Linux系统上安装MySQL 5.5prm
    Linux系统下MongoDB数据库安装、配置、主从同步、备份与恢复
    Windows 下 MongoDB的备份(mongodump)与恢复(mongorestore)
    JAVA Socket用法详解 .
    类 ByteBuffer
    java.nio.ByteBuffer中flip、rewind、clear方法的区别
    Apache Mina2.0学习笔记(初版)
    mina源代码阅读笔记
    使用非阻塞ServerSocketChannel、SocketChannel代替ServerSocket和Socket
  • 原文地址:https://www.cnblogs.com/zpb2016/p/5788395.html
Copyright © 2011-2022 走看看