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

posted @ 2016-08-19 17:24  周蓬勃  阅读(1986)  评论(0编辑  收藏  举报