本文旨在提供最基本的,可以用于在生产环境进行Hadoop、HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用。

本文旨在提供最基本的,可以用于在生产环境进行Hadoop、HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用。

Hadoop真分布式完全集群安装,基于版本2.7.2安装,在两台Linux机器上面分别安装Hadoop的master和slave节点。

基础环境

一、基础环境

不管NameNode还是DataNode节点,安装的用户名需要一致。master和slave的区别,只是在于配置的hostname,在config的slaves配置的hostname所代表的机器即为slave,不使用主机名也可以,直接配置为IP即可。在这种集群下面,需要在master节点创建namenode路径,并且使用格式化命令hdfs
namenode –format。然后在slave节点创建datanode路径,注意目录的权限。

JDK的安装与配置

现在直接到Oracle官网(

使用以下命令将jdk-7u79-linux-x64.gz下载到Linux下的/home/jiaan.gja/software目录

wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

然后使用以下命令将jdk-7u79-linux-x64.gz解压缩到/home/jiaan.gja/install目录

tar zxvf jdk-7u79-linux-x64.gz -C ../install

回到/home/jiaan.gja目录,配置java环境变量,命令如下:

cd ~
vim .bash_profile

在.bash_profile中加入以下内容:

威尼斯城真人赌钱网站 1
立刻让java环境变量生效,执行如下命令:

source .bash_profile

最后验证java是否安装配置正确:

威尼斯城真人赌钱网站 2

在Linux上安装Hadoop之前,需要先安装两个程序:

如果已经存在则不需要,每台机器进行相同的操作10.43.156.193 zdh193
ywmaster/fish master10.43.156.194 zdh194 ywmaster/fish slave

Host

由于我搭建Hadoop集群包含三台机器,所以需要修改调整各台机器的hosts文件配置,命令如下:

vi /etc/hosts

如果没有足够的权限,可以切换用户为root。

如果禁止使用root权限,则可以使用以下命令修改:

sudo vi /etc/hosts

三台机器的内容统一增加以下host配置:

威尼斯城真人赌钱网站 3

1.1 安装说明

集群上面的用户名必须都是一样的,否则无法影响Hadoop集群启动,在每台机器里面添加相同的用户,参考如下命令:useradd
ywmaster

SSH

由于NameNode与DataNode之间通信,使用了SSH,所以需要配置免登录。

首先登录Master机器,生成SSH的公钥,命令如下:

ssh-keygen -t rsa

执行命令后会在当前用户目录下生成.ssh目录,然后进入此目录将id_rsa.pub追加到authorized_keys文件中,命令如下:

cd .ssh
cat id_rsa.pub >> authorized_keys

最后将authorized_keys文件复制到其它机器节点,命令如下:

scp authorized_keys jiaan.gja@Slave1:/home/jiaan.gja/.ssh
scp authorized_keys jiaan.gja@Slave2:/home/jiaan.gja/.ssh
  1. JDK
    1.6或更高版本(本文所提到的安装的是jdk1.7);

此处安装的是jdk1.7

文件目录

为了便于管理,给Master的hdfs的NameNode、DataNode及临时文件,在用户目录下创建目录:
/home/jiaan.gja/hdfs/name
/home/jiaan.gja/hdfs/data
/home/jiaan.gja/hdfs/tmp
然后将这些目录通过scp命令拷贝到Slave1和Slave2的相同目录下。

2.
SSH(安全外壳协议),推荐安装OpenSSH。

scp yuwen@10.43.156.193:/home/yuwen/backup/jdk-7u80-linux-x64.tar.gz .zdh123tar -zxvf jdk-7u80-linux-x64.tar.gz vi .bash_profile export JAVA_HOME=~/jdk1.7.0_80export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource .bash_profile 

HADOOP的安装与配置

 

验证jdkjava -version

下载

首先到Apache官网(

cd ~/software/
wget http://apache.fayea.com/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

然后使用以下命令将hadoop-2.6.0.tar.gz解压缩到/home/jiaan.gja/install目录

tar zxvf hadoop-2.6.0.tar.gz -C ../install/

下面简述一下安装这两个程序的原因:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

环境变量

回到/home/jiaan.gja目录,配置hadoop环境变量,命令如下:

cd ~
vim .bash_profile

在.bash_profile中加入以下内容:

威尼斯城真人赌钱网站 4

立刻让hadoop环境变量生效,执行如下命令:

source .bash_profile
  1. Hadoop是用Java开发的,Hadoop的编译及MapReduce的运行都需要使用JDK。

必须修改权限,否则无法免秘登陆chmod 600
~/.ssh/authorized_keys验证免密登陆ssh localhost

Hadoop的配置

进入hadoop-2.6.0的配置目录:

cd ~/install/hadoop-2.6.0/etc/hadoop/

依次修改core-site.xml、hdfs-site.xml、mapred-site.xml及yarn-site.xml文件。

2.
Hadoop需要通过SSH来启动salve列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即依次序启动文件conf/slaves中记载的主机上的进程,只不过伪分布式中salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必须的。

需要把本机的公钥放到对方的机器authorized_keys,才能免密登陆其他机器。进入ywmaster的.ssh目录

core-site.xml

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/jiaan.gja/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://Master:9000</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
</configuration>

1.1 JDK的安装与配置

scp ~/.ssh/authorized_keys ywmaster@10.43.156.194:~/.ssh/authorized_keys_from_zdh193

hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/jiaan.gja/hdfs/name</value>
    <final>true</final>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/jiaan.gja/hdfs/data</value>
    <final>true</final>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Master:9001</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

1、上传压缩包

进入ywslave的.ssh目录,注意备份,否则下面步骤存在重复的ywmaster公钥。cat
authorized_keys_from_zdh193 >> authorized_keysssh zdh194

mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

我这里使用的是WinScp工具 上传jdk-7u76-linux-x64.tar.gz压缩包

参考上面的步骤同理设置其他机器,配置后zdh193可以免密登陆。

相关文章