Hadoop2.6.0完全分布式安装

1、修改主机名称

对master/slave1/slave2同时配置为Master/Slave1/Slave2

master@Master:~$ sudo gedit /etc/hostname


 上述3个虚机结点均需要进行以上步骤

2、填写主机IP

对master/slave1/slave2同时配置

master@Master:~$ sudo gedit /etc/hosts

192.168.48.128 master
192.168.48.129 slave1
192.168.48.130 slave2

 上述3个虚机结点均需要进行以上步骤

3、建立hadoop用户组及新用户

对master/slave1/slave2同时配置

为hadoop集群专门设置一个用户组及用户

master@Master:~$ sudo groupadd hadoop    //设置hadoop用户组

master@Master:~$ sudo useradd -s /bin/bash -d /home/hnu -m hnu -g hadoop   //添加一个hnu用户,此用户属于hadoop用户组。

master@Master:~$ sudo passwd hnu   //设置用户hnu登录密码

master@Master:~$ su hnu  //切换到hnu用户中

上述3个虚机结点均需要进行以上步骤

4、 配置ssh免密码连入

Ubuntu14.04系统下:

对master/slave1/slave2同时配置

master@Master:~$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1

master@Master:~$ sudo apt-get install openssh-server

上述3个虚机结点均需要进行以上步骤

(1) 每个结点分别产生公私密钥。

hnu@Master:~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:

hnu@Master:~$ cd .ssh

hnu@Master:~$ ls

Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

hnu@Master:~/.ssh$ cat id_dsa.pub >> authorized_keys

hnu@Master:~/.ssh$ ls

用上述同样的方法在剩下的两个结点中如法炮制即可。

 上述3个虚机结点均需要进行以上步骤

 

(2)本机ssh免密码登录测试

hnu@Master:~$ ssh localhost

在单机结点上用ssh进行登录,这将为后续对子结点SSH远程免密码登录作好准备。

用上述同样的方法在剩下的两个结点中如法炮制即可。

上述3个虚机结点均需要进行以上步骤

(3)    让主结点(master)能通过SSH免密码登录两个子结点(slave)

1)对slave1节点操作:

为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:

hnu@Slave1:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub ./master_dsa.pub

hnu@Slave1:~/.ssh$  cat master_dsa.pub >> authorized_keys

如上过程显示了slave1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接slave1结点了。

2)对slave2节点同样进行以上步骤

在master结点中对两个子节点进行免密登陆:

hnu@Master:~$ ssh slave1

slave1结点首次连接时需要输入yes后成功接入,紧接着注销退出至master结点。然后再执行一遍ssh slave1,如果没有要求你输入”yes”,就算成功了,对node2结点也可以用同样的方法进行上述操作。

表面上看,这两个节点的ssh免密码登录已经配置成功,但是我们还需要对主节点master也要进行上面的同样工作,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

3)对master自身进行ssh免密码登录测试工作:

hnu@Master:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub  ./master_dsa.pub

hnu@Master:~/.ssh$ cat master_dsa.pub  >> authorized_keys

hnu@Master:~/.ssh$ ssh master

至此,SSH免密码登录已经配置成功。

5、JDK与HADOOP环境变量配置

对master/slave1/slave2同时配置

解压JDK

master@Master:~$ sudo tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt

master@Master:~$ sudo gedit /etc/profile

#JAVA

export JAVA_HOME=/opt/jdk1.8.0_91

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#HADOOP

export HADOOP_PREFIX=/home/hnu/hadoop-2.6.0

export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

上述3个虚机结点均需要进行以上步骤

6、HADOOP安装与配置

对master配置

解压hadoop

master@Master:~$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /home/hnu

master@Master:/home/hnu/hadoop-2.6.0/etc/hadoop$

1)  core-site.xml

<configuration>

<property>

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

<value>file:/home/hnu/hadoop-2.6.0/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>4096</value>

</property>

</configuration>


2)   hadoop-env.sh 添加如下环境变量(一定要添加切勿少了) 

export JAVA_HOME=/opt/jdk1.8.0_91

export HADOOP_PID_DIR=/home/hnu/hadoop-2.6.0/pids

在yarn-env.sh下添加如下环境变量

export JAVA_HOME=/opt/jdk1.8.0_91

export YARN_PID_DIR=/home/hnu/hadoop-2.6.0/pids

3) hdfs-site.xml 

<configuration>

<property>

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

<value>file:/home/hnu/hadoop-2.6.0/name</value>

</property>

<property>

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

<value>file:/home/hnu/hadoop-2.6.0/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

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

<value>master:50090</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

4)  mapred-site.xml 

<configuration>

<property>

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

<value>yarn</value>

<final>true</final>

</property>

<property>

<name>mapreduce.jobtracker.http.address</name>

<value>master:50030</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>

<property>

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

<value>http://master:9001</value>

</property>

</configuration>

5) yarn-site.xml 

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

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

<value>mapreduce_shuffle</value>

</property>

<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>

</configuration>

6)slaves

slave1

slave2

7、向各节点复制hadoop

向slave1节点复制hadoop:

hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave1:~

向slave2节点复制hadoop:

hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave2:~

8、赋予权限

对master/slave1/slave2执行相同操作

将目录hadoop文件夹及子目录的所有者和组更改为用户hnu和组hadoop

root@Master:/home/hnu# chown -R hnu:hadoop hadoop-2.6.0

9、格式化hadoop

hnu@Master:~$ source /etc/profile

hnu@Master:~$ hdfs namenode -format

 

10、启动/关闭hadoop

start-all.sh/stop-all.sh

start-dfs.sh/start-yarn.sh

stop-dfs.sh/stop-dfs.sh

 

查看hdfs/RM

192.168.48.128:50070/192.168.48.128:8088

master:50070/master:8088

注:

(1)hadoop集群启动jps查看后没有DATANODE 

删除slave1/slave2  中  /home/hnu/hadoop/data/current/VERSION文件后重启即可

微信扫一扫
关注该公众号

 
 
原文地址:https://www.cnblogs.com/zhangguangxu98/p/8434212.html