Hadoop 2.0.0-cdh4.5.0安装

Hadoop2.0.0-cdh4.5.0部署文档

1.       环境

Hadoop 2.0.0-cdh4.5.0

java version "1.7.0_45"

Ubuntu 12.04.3 LTS (GNU/Linux3.8.0-29-generic x86_64)

 

VMware虚拟机3台:

192.168.0.8     master

192.168.0.9     slave1

192.168.0.10   slave2

用户名密码都是root / 123456

 

2.       步骤

2.1.   配置虚拟机

准备三台虚拟机,操作系统为:

Ubuntu 12.04.3 LTS (GNU/Linux3.8.0-29-generic x86_64)

 

为三台虚拟机做以下配置(具体步骤自行百度):

Ø  配置静态IP

Ø  配置/etc/hosts

Ø  配置/etc/hostname

Ø  安装JDK

 

2.2.   配置集群免登陆

第一步:所有节点分别生成密钥对

所有节点都要做:

命令行中,通过cd命令进入根目录,在根目录执行以下命令生成秘钥:

ssh-keygen -t rsa

密钥成功生成后存储在根目录下的.ssh隐藏目录下,直接用 cd .ssh 就能进入,然后用ls命令就能看到id_rsa    id_rsa.pub

 

第二步:拷贝生成authorized_keys

所有节点都要做:

将id_rsa.pub拷贝到文件anthorized_keys文件中,在 .ssh 文件夹中执行以下命令:

cp id_rsa.pub authorized_keys

 

第三步:合并所有节点的authorized_keys文件,并分发到所有节点根目录的 .ssh 隐藏文件夹下

slave1中将authorized_keys发送到master的temp1临时文件中:

scp authorized_keys root@master:~/.ssh/temp1

 

slave2中将authorized_keys发送到master的temp2临时文件中:

scp authorized_keys root@master:~/.ssh/temp2

 

master中将temp1和temp2附加到authorized_keys文件中,这样的话master的authorized_keys文件就包含了所有节点的公钥:

cat temp1 >> authorized_keys

cat temp2 >> authorized_keys

rm temp1

rm temp2

 

master中将合并好的authorized_keys文件分发到各节点:

scp authorized_keys root@slave1:~/.ssh/

scp authorized_keys root@slave2:~/.ssh/

 

第四步:所有系统配置  /etc/ssh/sshd_config  文件,使得系统使用公钥认证,并能识别 authorized_keys

cd /etc/ssh/ 以后,

sudo vi sshd_config

在文件中找到以下几行

RSAAuthentication yes

PubkeyAuthentication yes

#AuthorizedKeysFile%h/.ssh/authorized_keys

#去掉即可,系统就能通过authorized_keys来识别公钥了

 

第五步:检查sshd是否运行/安装,如果未安装将不能成功相互连接

运行 ps -e | grep ssh,查看是否有sshd进程

如果没有,说明server没启动,通过 /etc/init.d/ssh -start 启动server进程

如果提示ssh不存在那么就是没安装server

通过 sudo apt-get install openssh-server命令安装即可

 

第六步:解决 Agentadmitted failure to sign using the key

如果出现该错误,则需要在所有的节点都执行   ssh-add   ~/.ssh/id_rsa   将私钥加入ssh。

 

至此,大功告成,应该就可以在任意一台机器使用 ssh  master/slave1/slave2 免密码连入对方了。

 

2.3.   Hadoop下载

官网或者百度搜索下载hadoop-2.0.0-cdh4.5.0.tar.gz

可在windows下载,拷贝到虚拟机。

注意:配置hadoop相关步骤仅在一台机器做即可,配好好后scp拷贝到其它机器。

 

在压缩包的当前目录下执行以下命令解压:

tar –zxvf hadoop-2.0.0-cdh4.5.0.tar.gz

 

解压后的文件夹拷贝到/home/fulong/hadoop/下,并改名为cdh,以/home/fulong/hadoop/cdh作为HADOOP_HOME配置环境变量。

 

2.4.   配置环境变量

使用任意编辑器编辑环境变量/etc/profile,配置好后的环境变量为:

# /etc/profile:system-wide .profile file for the Bourne shell (sh(1))

# and Bournecompatible shells (bash(1), ksh(1), ash(1), ...).

 

if [ "$PS1"]; then

  if [ "$BASH" ] && ["$BASH" != "/bin/sh" ]; then

    # The file bash.bashrc already sets thedefault PS1.

    # PS1='\h:\w\$ '

    if [ -f /etc/bash.bashrc ]; then

      . /etc/bash.bashrc

    fi

  else

    if [ "`id -u`" -eq 0 ]; then

      PS1='# '

    else

      PS1='$ '

    fi

  fi

fi

 

# The default umaskis now handled by pam_umask.

# See pam_umask(8)and /etc/login.defs.

 

if [ -d/etc/profile.d ]; then

  for i in /etc/profile.d/*.sh; do

    if [ -r $i ]; then

      . $i

    fi

  done

  unset i

fi

export JAVA_HOME=/usr/lib/jvm7/jdk

export HADOOP_HOME=/home/fulong/hadoop/cdh

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

exportCLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

 

注意最后部分的HADOOP_HOME和PATH中与hadoop相关的部分。

 

配置完后,通过以下命令使得环境变量立即生效:

sudo source /etc/profile 

 

2.5.   修改Hadoop配置文件

Cdh4.5(Hadoop2.0)的配置文件在/cdh/etc/hadoop路径下,和Hadoop1.0的路径不同。

 

1)    hadoop-env.sh

修改hadoop-env.sh配置文件,设置jdk所在的路径,在里面找到JAVA_HOME,并将它的值设置为你电脑jdk所在的绝对路径:

export JAVA_HOME=/usr/lib/jvm7/jdk  

 

2)    修改core-site.xml

添加如下代码:

<property>

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

  <value>hdfs://master:8020</value>

  <final>true</final>

 </property>

 <property>

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

  <value>/home/fulong/hadoop/tempdata</value>

</property> 

 

3)     修改yarn-site.xml

添加如下代码:

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

<property>

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

<value>mapreduce.shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

 

注意:yarn.nodemanager.aux-services的值是“mapreduce_shuffle”(在hadoop-2.1-beta中的值是“mapreduce.shuffle”)

 

4)    修改mapred-site.xml

添加如下代码:

<property>

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

<value>yarn</value>

</property>

<property>

<name>mapred.system.dir</name>

<value>file:/home/fulong/hadoop/mapred_system</value>

<final>true</final>

</property>

<property>

<name>mapred.local.dir</name>

<value>file:/home/fulong/hadoop/mapred_local</value>

<final>true</final>

</property>

 

5)    修改hdfs-site.xml  

添加如下代码:

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/fulong/hadoop/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/fulong/hadoop/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>  

 

根据配置内容,需创建几个用于存储数据的目录:

/home/fulong/hadoop/tempdata

/home/fulong/hadoop/mapred_system

/home/fulong/hadoop/mapred_local

/home/fulong/hadoop/name

/home/fulong/hadoop/data

 

注意:本实验中几个新建的存数据目录在cdh之外,需要分别在各个机器创建。如果将这几个目录建到cdh中,则可直接scp拷贝。

 

配置好Hadoop的配置文件后,使用如下命令将整个hadoop文件夹分别拷贝到slave1和slave2主机上去:

scp -r /home/fulong/hadoop/cdh root@slave1:/home/fulong/hadoop/

scp -r /home/fulong/hadoop/cdh root@slave1: /home/fulong/hadoop/

 

2.6.   启动Hadoop

格式化hdfs文件系统:

hdfs namenode -format

 

启动hdfs:

Start-dfs.sh

 

启动yarn

Start-yarn.sh

 

如果成功启动

则在master机器执行jps命令可以看到如下进程:

12916 NameNode

13280 ResourceManager

13133 SecondaryNameNode

15025 Jps

 

在所有slave机器执行jps可看到如下进程:

576 Jps

31403 NodeManager

31252 DataNode

 

如果出现任何问题,进入相应机器/home/fulong/hadoop/cdh/logs目录查看日志。

 

2.7.   基础监控&运行实例

成功启动后,浏览器访问以下页面可以查看hadoop相关信息:

http://master:50070/dfshealth.jsp

http://master:8088/cluster/nodes

 

在/cdh/share/hadoop/mapreduce下有hadoop自带的实例程序,可以通过wordcount程序测试hadoop集群是否正常运行。

Wordcount是hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar中的一个程序,用于统计文本中单词的出现次数。

 

1.在hdfs根目录下创建存储输入文本的目录

hadoopfs -mkdir /testinput

然后用以下命令可以查看hdfs文件目录,绿色文字是输出:

hadoop fs -ls /

13/12/10 16:42:34WARN util.NativeCodeLoader: Unable to load native-hadoop library for yourplatform... using builtin-java classes where applicable

Found 2 items

drwxr-xr-x   - root supergroup          0 2013-12-10 16:42 /testinput

drwx------   - root supergroup          0 2013-12-10 14:28 /tmp

 

将输入文本上传到hdfs:

hadoop fs -put/home/fulong/hadoop/cdh/etc/hadoop/yarn-site.xml /testinput

 

执行wordcount程序:

hadoop jarhadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar wordcount /testinput/* /testoutput

 

执行完后,通过以下命令查看结果:

hadoop fs -cat /testoutput/*

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值