Hadoop学习(2)-Hadoop配置与安装

来源:互联网 发布:网民数据统计 编辑:程序博客网 时间:2024/04/29 08:24

在安装Hadoop之前,首先要安装好两个软件:

(1)JDK Hadoop就是Java编写的,需要Java来编译执行。

(2)SSH(安全外壳协议),推荐安装OpenSSH。需要通过SSH来启动Slave列表中各台主机的守护线程,所以需要安装SSH。不论是集群还是伪分布式,都是需要到SSH的。

安装步骤如下:

1、下载并安装JDK1.6,在/etc/profile中配置环境变量

2、安装并配置SSH免密码登录。假设在ubuntu环境下:

sudo apt-get install ssh  安装ssh

在用户u目录下 /home/u 输入命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  //生成dsa类型的秘钥

此时在.ssh文件夹下面多了id_dsa文件夹和id_dsa.pub文件夹。这是SSH的一对私钥和公钥,类似于钥匙和锁。

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  //将公钥加入到认证的公钥中

此时就可以免密码登录本机了。

3、Hadoop有三种运行方式:单机模式  伪分布式  完全分布式

伪分布式可以看作只有一个几点,就是NameNode,又是TaskNode。简单配置就可以做到:

(1)修改conf文件夹下的Hadoop-env.sh

export JAVA_HOME = /usr/lib/jvm/jdk  //配置jdk目录

(2)修改hadoop核心配置文件conf/core-site.xml, 指明HDFS的地址以及端口

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

  </property>

</configuration>

(3)修改hdfs-site.xml 配置HDFS,配置的备份方式为3,单机模式下为1

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

  </property>

</configuration>

(4) 修改mapred-site.xml文件,配置MapReduce,配置JobTracker的地址及端口。

<configuration>

<property>

<name>mapred.jbo.tracker</name>

<value>localhost:9001</value>

</property>

</configuration>

(5)启动hadoop之前,需要格式化Hadoop的文件系统HDFS,进入hadoop的文件夹

bin/Hadoop NameNode -format

接下来,启动Hadoop:

bin/start-all.sh

可以在浏览器中验证hadoop是否安装成功:http://localhost:50030(mapreduce) 以及 http://localhost:50070(hdfs页面)


如果是真实的场景下,如何配置? 下面假设有三台机器:

10.37.128.2  master namenode jobtracker  主机名:master

10.37.128.3  slave   datanode   tasktracker  主机名:slave1

10.37.128.4  slave   datanode   tasktracker  主机名:slave2

(1)三台机器安装jdk,配置环境

(2)三台机器上配置etc/hosts   hosts这个文件用于定义主机名与ip地址之间的对应关系

 127.0.0.1  localhost

10.37.128.2  master

10.37.128.3  slave1

10.37.128.4  slave2

在etc/hostname中配置主机名:

"master"(或者slave1等)

(3)三台机器上安装OpenSSH,并配置SSH可以免密码登录。

在master用户文件夹下输入:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~./ssh/authorized_keys

然后将文件复制到两台slave相同的文件夹下面,输入命令:

scp authorized_keys slave1:~/.ssh

scp authorized_keys slvae2:~/.ssh

(4) 尝试无密码登录其他机器

ssh slave1

ssh slave2

(5) 配置三台主机的Hadoop文件

conf/Hadoop-env.sh

export JAVA_HOME= jdk目录


conf/core-site.xml

<configuration>       <property>              <name>fs.default.name</name>             <value>hdfs:master:9000</value>      </property>      <property>           <name>hadoop.tmp.dir</name>           <value>/tmp</value>      </property></configuration>

conf/hdfs-site.xml

<configuration>       <property>              <name>dfs.replication</name>             <value>2</value>      </property></configuration>

conf/mapred-site.xml

<configuration>       <property>              <name>mapred.jbo.tracker</name>             <value>master:9001</value>      </property></configuration>

conf/masters

master

conf/slaves

slave1slave2

(6) 启动hadoop

bin/Hadoop NameNode -format

bin/start-all.sh

ok,通过以上步骤就可以搭建一个集群了。其实每个机器上面的配置基本一致,通过hosts文件知道了如何找到集群中的伙伴们。


额外内容:

(1)可以通过日志信息查看运行状况

(2)可以动态的加入任务节点和数据节点

(3)可以单独重启某一个数据节点或者任务节点























0 0