Hadoop2.0.4-alpha搭建安装过程

来源:互联网 发布:js乱码怎么解决 编辑:程序博客网 时间:2024/06/05 16:19

搭建过程参考:http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html

之前在实验室搭建过1.0.4版本的apachehadoop,但是最近由于需要对hadoop版本更新,所以需要hadoop2.0.4,这次教程就写写具体的搭建过程,这里很多思想都是来源于hadoop1.0.4的搭建方法,如果大家看不懂,可以先搭建hadoop1.0.4,这样对你会有很大帮助的。

废话不多说,现在来讲讲我的具体搭建说明。

1.搭建环境的说明

1.1使用的操作系统

很多人搭建hadoop都是用的ubuntu,其实这个操作环境只要是LINUX就可以,但是本文中我使用的是centos,其他的区别可能是配置文件的路径不同,但是大致思想还是一致的。

1.2集群IP地址分配

本次我搭建的是3台物理机器的Hadoop搭建,具体每台机器的IP地址如下:

192.168.132.2 Master.Hadoop

192.168.132.3 Slave1.Hadoop

192.168.132.4 Slave2.Hadoop

2.hosts的配置

这一步是必须的,因为这里需要对使用环境的user做具体的分配和指定。

2.1更改hosts(这一步的内容均需要在root用户下执行)

1.设定IP地址:

#ifconfig //查询现在的ip地址

然后通过设置VPN,来设置各机器的IP地址,具体过程这里就

详述了。

2.配置每台电脑的hosts名称

#vim/etc/sysconfig/network

在其中添加这样的内容:

HOSTNAME=Master.Hadoop

(备注:Slave机器则改为相应的Slave1.Hadoop…….

3.配置hosts文件

#vim /etc/hosts

在其中添加下面几行内容:

192.168.132.2Master.Hadoop

192.168.132.3 Slave1.Hadoop

192.168.132.4 Slave2.Hadoop

4.验证设置是否启用

我们在Master.Hadoop对机器为"Slave1.Hadoop"的主机名进行ping通测试,看是否能测试成功。

(备注:对于其他机器之间的测试同理)

5.添加一个用户

#adduser hadoop

#passwd hadoop //设置hadoop的密码

3ssh无密码验证设置(以下设置全部在hadoop用户下进行)

Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSHSecureShell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode

3.1安装和启动ssh

可以通过下面命令查看是否已经安装sshrsync,显示如下:

  rpm –qa | grepopenssh

rpm –qa | grep rsync

3.2配置MasterSlave之间的无密码登陆

3.2.1ssh无密码登陆的原理

   MasterNameNode| JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器SalveDataNode|Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给MasterMaster收到加密数之后再用私钥解密,并将解密数回传给SlaveSlave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

3.2.2Master机器上生成密码对

   Master节点上执行以下命令:

  $ssh-keygen –trsa –P ''

(备注:这里的“’”是单引号,上面指令最后使用了两个单引号)

这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsaid_rsa.pub,默认存储在"~/.ssh"目录下。

查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。使用下面的指令:

  $cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。

3.2.2.1修改文件"authorized_keys"

     $chmod600 ~/.ssh/authorized_keys

3.2.2.2设置SSH配置

  root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容,去掉下面几句话前面的注释符“#”

RSAAuthentication yes #启用RSA认证

PubkeyAuthentication yes #启用公钥私钥配对认证方式

AuthorizedKeysFile.ssh/authorized_keys #公钥文件路径(和上面生成的文件同)

   设置完之后记得重启SSH服务,才能使刚才设置有效。

$service sshd restart

      退出root登录,使用hadoop普通用户验证是否成功。

  #ssh localhost

3.2.3Slave机器上生成密码对

Slave1.Hadoop上执行下列指令:

$ssh-keygen –t –rsa–P ''

Slave1.Hadoop机器中生成~/.ssh文件。然后在把本机生成的密码对加载到本机上的authorized_keys

$cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

然后更改authorized_keys文件的权限。

$chmod 600~/.ssh/authorized_keys

(备注:如果有多个Slave,对多个Slave进行相同的操作即可,Slave2.Hadoop,Slave2.Hadoop……)

3.2.4MasterSlave之间追加授权密码

Master.Hadoop$cd ~/.ssh

Master.Hadoop$scp./id_rsa.pubhadoop@192.168.132.3:~/

Slave1.Hadoop$cat~/id_rsa.pub >> ~/.ssh/authorized_keys

Slave1.Hadoop$scp~/.ssh/id_rsa.pubhadoop@192.168.132.4:~/

Master.Hadoop$cat~/id_rsa.pub >> ~/.ssh/authorized_keys

(备注:如果有多个Slave,对多个SlaveMaster之间进行相同的操作即可)

root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容,去掉下面几句话前面的注释符“#”

RSAAuthentication yes #启用RSA认证

PubkeyAuthentication yes #启用公钥私钥配对认证方式

AuthorizedKeysFile.ssh/authorized_keys #公钥文件路径(和上面生成的文件同)

   设置完之后记得重启SSH服务,才能使刚才设置有效。

$service sshd restart

      退出root登录,使用hadoop普通用户验证是否成功。

  #ssh localhost

3.2.5验证ssh无密码登陆设置成功

Master.Hadoop$ssh Slave1.Hadoop

这时候如果不需要输入Slave1.Hadoop主机的登陆密码,就说明设置成功了,否则,说明前面的设置出错了,请细心检查下。

同理,再输入下列指令,检验SlaveMaster的设置是否成功:

Slave1.Hadoop$ssh Master.Hadoop

4.JAVA环境安装(所有主机均要安装,并且以下操作在root用户下执行)

4.1下载jdk

oracle官网下载jdk1.7.0_21,放到根目录下/

4.2安装jdk

执行下列指令:

#cd /usr

#mkdir java

#cp / jdk-7u21-linux-x64.rpm/usr/java/

#cd /usr/java

#rpm –ivhjdk-7u21-linux-x64.rpm

然后会进行rpm安装的过程。

4.3设置java环境变量

编辑"/etc/profile"文件,在后面添加Java"JAVA_HOME""CLASSPATH"以及"PATH"内容。

4.3.1编辑"/etc/profile"文件

  #vim /etc/profile

 4.3.2添加Java环境变量

  "/etc/profile"文件的尾部添加以下内容:

  # set javaenvironment

exportJAVA_HOME=/usr/java/jdk1.7.0_21

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

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

 4.3.3使配置生效

  保存并退出,执行下面命令使其配置立即生效。

  #source/etc/profile

4.3.4验证安装和配置是否成功

输入下列指令:

#java –version

然后写一个小的JAVA程序,编译执行下是否正确执行,如果可以,则配置成功,否则,JAVA的配置过程可能有问题,需要检查。

5.HADOOP集群安装

5.1Master机器安装(以下命令在root用户下执行)

5.1.1下载hadoop-2.0.4-alpha.tar.gz

apachehadoop官网下载hadoop安装包,此次使用的是hadoop-2.0.4版本。下载到目录/usr/下。

5.1.2hadoop安装

执行下列指令:

#cd /usr/

#tar –zxvfhadoop-2.0.4-alpha.tar.gz

#mv hadoop-2.0.4-alphahadoop

#chown –R hadoop:hadoop hadoop

5.1.3配置/etc/profile文件

/usr/hadoop"下面创建tmp文件夹,如下指令:

#cd /usr/hadoop

#mkdir tmp

然后把Hadoop的安装路径添加到"/etc/profile"中,修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效:

# set hadoop path

exportHADOOP_DEV_HOME=/usr/hadoop

exportPATH=$PATH:$HADOOP_DEV_HOME/bin

exportPATH=$PATH:$HADOOP_DEV_HOME/sbin

exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_DEV_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_DEV_HOME}

exportYARN_HOME=${HADOOP_DEV_HOME}

exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

加载/etc/profile使其生效:

#source /etc/profile

5.1.4配置hadoop文件

5.1.4.1创建并配置hadoop-env.sh,使用下列指令:

#vim /usr/hadoop/etc/hadoop/hadoop-env.sh

在末尾添加exportJAVA_HOME=/usr/java/jdk1.7.0_21

5.1.4.2配置core-site.xml文件,使用下列指令:

<configuration></configuration>之间添加属性

<property>

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

<value>/usr/hadoop/tmp</value>

<description>A base for other temporarydirectories.</description>

</property>

<property>

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

<value>hdfs://192.168.132.2:9000</value>

</property>

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>192.168.132.2</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

5.1.4.3配置slaves

执行下列指令:

#cd /usr/hadoop/etc/hadoop

#vim slaves

把其中的内容改为:

192.168.132.3

192.168.132.4

5.1.4.4配置hdfs-site.xml

#vim /usr/hadoop/etc/hadoop/hdfs-site.xml

添加节点:

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

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

<value>file:/usr/hadoop/hdfs/name</value>

<final>true</final>

</property>

<property>

<name>dfs.federation.nameservice.id</name>

<value>ns1</value>

</property>

<property>

<name>dfs.namenode.backup.address.ns1</name>

<value>192.168.132.2:50100</value>

</property>

<property>

<name>dfs.namenode.backup.http-address.ns1</name>

<value>192.168.132.2:50105</value>

</property>

<property>

<name>dfs.federation.nameservices</name>

<value>ns1</value>

</property>

<property>

<name>dfs.namenode.rpc-address.ns1</name>

<value>192.168.132.2:9000</value>

</property>

<property>

<name>dfs.namenode.rpc-address.ns2</name>

<value>192.168.132.2:9000</value>

</property>

<property>

<name>dfs.namenode.http-address.ns1</name>

<value>192.168.132.2:23001</value>

</property>

<property>

<name>dfs.namenode.http-address.ns2</name>

<value>192.168.132.2:13001</value>

</property>

<property>

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

<value>file:/usr/hadoop/hdfs/data</value>

<final>true</final>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns1</name>

<value>192.168.132.2:23002</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns2</name>

<value>192.168.132.2:23002</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns1</name>

<value>192.168.132.2:23003</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns2</name>

<value>192.168.132.2:23003</value>

</property>

5.1.4.5配置yarn-site.xml

添加节点:

<property>

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

<value>192.168.132.2:18040</value>

</property>

<property>

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

<value>192.168.132.2:18030</value>

</property>

<property>

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

<value>192.168.132.2:18088</value>

</property>

<property>

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

<value>192.168.132.2:18025</value>

</property>

<property>

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

<value>192.168.132.2:18141</value>

</property>

<property>

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

<value>mapreduce.shuffle</value>

</property>

5.2Slave机器上hadoop的安装

Master.Hadoop上的hadoop文件发送给Slave机器并进行相应的配置:

Master.Hadoop#scp–r /usr/hadoop root@192.168.132.3:/usr/

Slave1.Hadoop#chown–R hadoop:hadoop /usr/hadoop

编辑/etc/profile文件,将以下语句添加到末尾,并使其有效:

# set hadoop path

exportHADOOP_DEV_HOME=/usr/hadoop

exportPATH=$PATH:$HADOOP_DEV_HOME/bin

exportPATH=$PATH:$HADOOP_DEV_HOME/sbin

exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_DEV_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_DEV_HOME}

exportYARN_HOME=${HADOOP_DEV_HOME}

exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

加载/etc/profile使其生效:

#source /etc/profile

5.3hdfs初始化

Master.Hadoop上初始化HDFS,使用下列指令:

$hadoop namenode–format

6.启动hadoop(这一步必须使用hadoop用户执行)

$start-all.sh

7.检查服务是否开启

在各台机器执行jps,看进程是否都已经启动:

[hadoop@Master.Hadoop ~]# jps

7396 NameNode

24834 Bootstrap

7594 SecondaryNameNode

7681 ResourceManager

32261 Jps

[hadoop@Slave1.Hadoop ~]# jps

8966 Jps

31822 DataNode

31935 NodeManager

如果服务开启,就可以打开浏览器,登陆页面:192.168.132.2:23001查看hadoop网页。到这里所有的安装工作就结束了,下面截图仅供参考。

截图:




D&C

原创粉丝点击