从头安装hadoop环境

请看上一篇linux 的安装。

环境:centos6.5    3台主机   (复制主机,可以直接复制虚拟机文件)一台为主,复制的为从。

master-ip:192.168.237.10    slave1-ip:192.168.237.11   slave2-ip:192.168.237.12

上网调试: 分别进入slave1 和 slave2   里面的  ifcfg-eth0 文件下修改 IPADDR  分别为 11 和 12.

进入secureCRT,添加 slave1和slave2 的连接端口(填写 ssh2下的hostname  和 username  属性)

然后进入3台主机 。测试是否可以上网。(如果复制的不可以。可以采取删除网卡重新添加试试^_^)

软件包:jdk-6u45-linux-x64.bin    hadoop-1.2.1-bin.tar.gz

步骤一:安装jdk,配置java运行环境

1.可以使用rz  命令上传jdk-6u45-linux-x64.bin

2.可以在wmware里面设置(右击标题--设置--文件共享打开并且指定共享文件位置)

复制程序到/usr/local/src  目录下

#  cp   jdk-6u45-linux-x64.bin /usr/local/src/

# ll  jdk-6u45-linux-x64.bin(查看权限看是否有X 权限)

#./jdk-6u45-linux-x64.bin(安装jdk)

3.配置java

# vim ~/.bashrc

export JAVA_HOME=/usr/local/src/jdk1.6.0_45

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/bin

export PATH=.:$PATH:$JAVA_HOME/bin

# source ~/.bashrc  (使刚才配置生效)

4.测试java

在任意目录下  # java    (如果命令生效则代表成功。否则从新回到第一步。检查)


下面配置另外两台slave的 java环境

# scp  -rp /usr/local/src/jdk1.6.0_45 192.168.237.11:/usr/local/src

# scp -rp /usr/local/src/jdk1.6.0_45 192.168.237.12:/usr/local/src

(这里选项 -r: 递归复制整个目录。-p:保留原文件的修改时间,访问时间和访问权限。)

然后分别修改 环境变量设置     ~/.bashrc    文件   同上面的。

步骤二:hadoop相关配置文件信息解析,配置


一 概述:

(1)Hadoop MapReduce采用Master/Slave结构。

*Master:是整个集群的唯一的全局管理者,功能包括:作业管理、状态监控和任务调度等,即MapReduce中的JobTracker。

*Slave:负责任务的执行和任务状态的回报,即MapReduce中的TaskTracker。

二 JobTracker剖析:

(1)概述:JobTracker是一个后台服务进程,启动之后,会一直监听并接收来自各个TaskTracker发送的心跳信息,包括资源使用情况和任务运行情况等信息。 

(2)JobTracker的主要功能:

1.作业控制:在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任务,JobTracker的作业控制模块则负责作业的分解和状态监控。

*最重要的是状态监控:主要包括TaskTracker状态监控、作业状态监控和任务状态监控。主要作用:容错和为任务调度提供决策依据。

2.资源管理。

三 TaskTracker剖析:

(1)TaskTracker概述:TaskTracker是JobTracker和Task之间的桥梁:一方面,从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等;另一方面,将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信。

(2)TaskTracker的功能:

1.汇报心跳:Tracker周期性将所有节点上各种信息通过心跳机制汇报给JobTracker。这些信息包括两部分:

*机器级别信息:节点健康情况、资源使用情况等。

*任务级别信息:任务执行进度、任务运行状态等。

2.执行命令:JobTracker会给TaskTracker下达各种命令,主要包括:启动任务(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、杀死作业(KillJobAction)和重新初始化(TaskTrackerReinitAction)。


hadoop 集群中有两种节点,一种是namenode,还有一种是datanode。

其中datanode主要负责数据的存储,namenode主要负责三个功能,分别是(1)管理元数据  (2)维护目录树 (3)响应客户请求

hadoop的安装配置:同样把hadoop-1.2.1-bin.tar.gz拷贝到 /usr/local/src/

解压:  # tar  zxvf hadoop-1.2.1-bin.tar.gz

进入hadoop-1.2.1创建hadoop运行所需的临时文件  tmp

# cd hadoop-1.2.1  &&  mkdir tmp

修改配置文件:

1. # vim  master

master

2. # vim slaves

slave1

slave2

3. # vim core-site.xml       (设置tmp目录和 namenode节点)

####添加如下内容

<property>

                <name>hadoop.tmp.dir</name>

                <value>/usr/local/src/hadoop-1.2.1/tmp</value>

</property>

<property>

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

                <value>hdfs://192.168.237.10:9000</value>

</property>

4.#vim mapred-site.xml(配置 jobtracker)

#####添加如下内容

        <property>

                <name>mapred.job.tracker</name>

                <value>http://192.168.237.10:9001</value>

        </property>

5. #vim hdfs-site.xml

##########添加如下内容

        <property>

                <name>dfs.replication</name>

                <value>3</value>

        </property>         

  6.# vim  hadoop-env.sh

  最结尾添加:export JAVA_HOME=/usr/local/src/jdk1.6.0_45

     # source hadoop-env.sh

  检查下,修改配置文件是否完成。

  然后复制给给slave1和slave2

  #  scp -rp hadoop-1.2.1 slave1:/usr/local/src/(这里的slave1 是这192.168.237.11机器配置完hostname后使用。)

#  scp -rp hadoop-1.2.1 slave2:/usr/local/src/(如果没有配置hostname,请使用ip地址)

  配置master的DNS和hosts

  # vim  /etc/hosts

    ### 添加如下

     192.168.237.10  master

     192.168.237.11 slave1

     192.168.237.12 slave2

  # vim /etc/sysconfig/network

  HOSTNAME=master

  # hostname master

  slave1和slave2的修改:

              # vim /etc/hosts

              192.168.237.10  master

  192.168.237.11 slave1

  192.168.237.12 slave2

  slave1:

  # vim /etc/sysconfig/network

  HOSTNAME=slave1

  # hostname slave1

  slave2:

  # vim /etc/sysconfig/network

  HOSTNAME=slave2

  # hostname slave2

步骤三:下面需要主机之间进行免密码登录;配置openssl

建议先关闭防护墙和selinux

  # /etc/init.d/iptable stop

  # setenforce 0

进入master主机:

# ssh-keygen      (然后一路回车即可)

# cd ~/.ssh/ (查看是否生成公钥文件)

# cat id_rsa.pub >authorized_keys   (authorized_keys 是认证文件,存放公钥。是一个3台主机都共同需要的)

依次进入slave1和slave2 主机:

# ssh-keygen 

# cd ~/.ssh/

分别把slave1 和 slave2的  id_rsa.pub  文件里面的内容 复制给 master里面的authorized_keys

然后进入将master里面的 ~/.ssh/authorized_keys   分发给slave1和 slave2 中的  ~/.ssh/ 目录下

步骤四:启动hadoop

# ./hadoop namenode -format  (初始化namenode)

# ./start-all.sh  (启动hadoop)

# jsp (查看信息)

如果有异常请重点检查配置文件

下面是几条简单的hadoop命令

# cd /usr/local/src/hadoop-1.2.1/bin

#./hadoop fs -ls /

# ./hadoop fs -put /usr/local/src/hadoop-1.2.1/README.txt /

# ./hadoop fs -ls /

             -rw-r--r--   3 root supergroup       1366 2018-03-26 18:57 /README.txt

如果,你觉得可以请继续关注。陆续会有系列跟新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章