图片 3

虚拟机下配置成功,0单节点以及多节点安装教程

依赖项

1、安装jdk
可通过whereis java命令,查看java的安装路径;或者通过which
java查看java的执行路径;更新/etc/profile文件,在文件的末尾加入以下命令:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20
export JRE_HOME=/usr/lib/jdk/jdk1.8.0_20/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
使用source /etc/profile命令,更新系统的环境变量
最后,将系统默认jdk修改过来

1)、机器准备:

Java

$ sudo update-alternatives –install /usr/bin/java java
/usr/lib/jdk/jdk1.8.0_20/bin/java 300
$ sudo update-alternatives –install /usr/bin/javac javac
/usr/lib/jdk/jdk1.8.0_20/bin/javac 300
$ sudo update-alternatives –config java
$ sudo update-alternatives –config javac

物理机器总共4台,想配置基于物理机的Hadoop集群中包括4个节点:
1 个 Master, 3个 Salve ,

1.

————————————–分割线

Ubuntu
13.04上搭建Hadoop环境
http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置
http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解
http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建)
http://www.linuxidc.com/Linux/2011-12/48894.htm

节点之间局域网连接,可以相互 ping通  IP分布为:
192.168.216.131 hadoop1
192.168.216.132 hadoop2
192.168.216.133 hadoop3
192.168.216.134 hadoop4

wget

————————————–分割线

2、安装SSH(集群已安装配置好SSH免密码服务;若是搭建多台节点,需要节点户县之间均能免密码SSH登录)
      注意:
     
Linux系统中$HOME目录下的.ssh目录为用户所有,权限必须为700(只有用户自己可以全权访问)
   
.ssh目录下的授权文件“authorized_keys”为用户所有,权限必须为644(只有权限为644,才可以实现免密码,否则ssh连接时,仍需要输入密码)
    配置两台计算节点之间免密码登录(假设为master免密码登录slave):
      1、先生成公钥和私钥:ssh-keygen -t rsa -P “”
     
2、将master的公钥拷贝至slave的authorized_keys文件中:hduser@master:ssh-copy-id
-i $HOME/.ssh/id_rsa.pub hduser@slave

3、将Hdoop安装目录解压至opt目录
tar -zxvf archive_name.tar.gz

4、更改Hadoop目录权限和所有者
sudo chown -R hu:hu hadoop-2.5.0
sudo chmod -R 755 hadoop-2.5.0

5、配置Hadoop(以下为单节点配置,多节点中,也只需要配置主节点的环境变量即可)

在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中,添加JAVA安装目录:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_20/bin/java

设置用户环境变量,以方便使用shell操作hadoop,将以下设置添加至~/.bashrc文件中

export JAVA_HOME=$HOME/java
export HADOOP_DEV_HOME=$HOME/hadoop-0.23.1
export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_DEV_HOME}/logs
export PATH=${HADOOP_DEV_HOME}/bin

修改mapred-site.xml
在${HADOOP_HOME}/etc/hadoop/下,将mapred-site.xml.templat重命名成mapred-site.xml,并添加以下内容

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

修改core-site.xml
在${HADOOP_HOME}/etc/hadoop/中,修改core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000/</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
               
<value>/opt/hadoop-data/tmp/hadoop-${user.name}</value>
                <description>A base for other temporary
directories.</description>
        </property>
</configuration>

修改yarn-site.xml

在${HADOOP_HOME}/etc/hadoop/中,修改yarn-site.xml:

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

修改hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
 <value>1</value>
 </property>
 <property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

修改slaves

在slaves文件中添加你的节点ip或者host;如:master
如果有多个NodeManager,可一次添加到该文件中,每个占一行。

更多详情见请继续阅读下一页的精彩内容
http://www.linuxidc.com/Linux/2014-12/110458p2.htm

图片 1

操作系统为CentOS6.2
64bit
Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;

  1. 解压到/usr/local

3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

tar -jxvf jdk-7u51-linux-x64.tar.gz -C /usr/local

其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。

  1. 配置符号链接:cd /usr/local; ln -snf jdk1.7.0_45/ jdk

  2. 配置环境变量到~/.bashrc

后续经验积累一定阶段后补上一台备用Master机器。

export JAVA_HOME=”/usr/local/jdk”

2)、创建账户

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

使用root登陆所有机器后,所有的机器都创建 hadoop 用户
useradd hadoop
passwd hadoop

  1. 命令行下使用java、javax命令判断是否安装成功。

  2. 在其他机器上

此时在 /home/下就会生成一个 hadoop目录,目录路径为 /home/hadoop

Hosts

创建相关的目录

所有的节点都修改/etc/hosts,使彼此之间都能把主机名解析为ip

定义需要数据及目录的存放路径

图片 2

定义代码及工具存放的路径
mkdir -p /home/hadoop/source
mkdir -p /home/hadoop/tools

————————————–分割线

Ubuntu
13.04上搭建Hadoop环境
http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置
http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解
http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop LZO 安装教程
http://www.linuxidc.com/Linux/2013-01/78397.htm

Hadoop集群上使用Lzo压缩
http://www.linuxidc.com/Linux/2012-05/60554.htm

定义数据节点存放的路径到跟目录下的hadoop文件夹,这里是数据节点存放目录需要有足够的空间存放
mkdir -p /hadoop/hdfs
mkdir -p /hadoop/tmp
mkdir -p /hadoop/log
设置可写权限
chmod -R 777 /hadoop

————————————–分割线

SSH 无密码登陆

首先要配置本机的SSH服务器,运行 ps -e | grep
ssh,查看是否有sshd进程,如果没有,说明server没启动,通过
/etc/init.d/ssh -start 启动server进程,如果提示ssh不存在
那么就是没安装server。Ubuntu下通过 sudo apt-get install
openssh-server命令安装即可。

(1)生成当前用户的SSH公钥。

$ ssh-keygen -t rsa -P ”

它在/home/[你当前登录的用户名]
下生成.ssh目录(root用户即是在/root目录下),.ssh下有id_rsa和id_rsa.pub。id_rsa.pub即是本地SSH生成的公钥文件。客户端机器将id_rsa.pub文件添加到自己的~/.ssh/authorized_keys文件中即可免密码登录到本机。

(2)将~/.ssh/id_rsa.pub添加到目标机器的~/.ssh/authorized_keys文件中

•如果是本机的操作,则使用

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

将要登录的机器的公钥添加到本地的认证密钥库中。注意这里必须要用>>操作符进行追加操作。

使用

ssh localhost

命令即可免密码登录到本地。

•如果是将自己的公钥发送到别的机器上。

可以使用

scp ~/.ssh/id_rsa.pub root@172.24.253.2:.ssh/id_rsa.pub

这条scp命令进行文件上传操作。

安装Hadoop

下载Hadoop

最新版本hadoop-2.4.0安装包为 hadoop-2.4.0.tar.gz

下载官网地址 :

下载到 /opt/hadoop/source 目录下

wget

解压目录

tar zxvf hadoop-2.4.0.tar.gz

最终是这样子:

图片 3

环境配置项

配置环境变量:

vim /etc/profile

添加

export HADOOP_DEV_HOME=/opt/hadoop/source
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

更多详情见请继续阅读下一页的精彩内容
http://www.linuxidc.com/Linux/2014-05/101693p2.htm

图片 4

定义 java安装程序路径
mkdir -p /usr/java

 

3)、安装JDK

在官网下载jdk1.7 (x64)

解压#tar zvxf jdk-7u10-linux-x64.tar.gz

  #mv jdk1.7.0_10 /usr/java/jdk1.7

配置环境变量,执行 cd /etc命令后执行 vi profile,在行末尾添加

export JAVA_HOME=/usr/java/jdk1.7export

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=$PATH :$JAVA_HOME/bin:

 执行 chmod +x profile将其变成可执行文件
 执行 source profile使其配置立即生效
#source /etc/profile
 执行 java -version查看是否安装成功

这个步骤所有机器都必须安装

 

4)、修改主机名

修改主机名,所有节点均一样配置
    1 ,连接到主节点192.168.216.131,修改 network,执行 vim
/etc/sysconfig/network,修改 HOSTNAME=hadoop1
      2 ,修改 hosts文件,执行 cd /etc命令后执行 vi hosts,在行末尾添加
:

192.168.216.131 hadoop1
192.168.216.132 hadoop2
192.168.216.133 hadoop3
192.168.216.134 hadoop4

    3 ,执行 hostname hadoop1
    4 ,执行 exit后重新连接可看到主机名以修改 OK

其他节点也修改主机名后添加 Host,或者 host文件可以在后面执行 scp覆盖操作

5)、配置SSH无密码登陆

SSH 无密码原理简介 :
首先在
hadoop1上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave(hadoop2-hadoop4)上。
然后当 master 通过 SSH连接 slave时, slave 就会生成一个随机数并用
master的公钥对随机数进行加密,并发送给 master。
最后 master 收到加密数之后再用私钥解密,并将解密数回传给 slave,
slave确认解密数无误之后就允许 master不输入密码进行连接了

2 ,具体步骤(在root用户和hadoop用户登陆情况下执行)
1 、执行命令 ssh-keygen -t rsa之后一路回车,查看刚生成的无密码钥对: cd
.ssh后执行 ll
2 、把 id_rsa.pub追加到授权的 key里面去。执行命令 cat
~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
3 、修改权限:执行 chmod 600 ~/.ssh/authorized_keys
4 、确保 cat/etc/ssh/sshd_config中存在如下内容

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如需修改,则在修改后执行重启 SSH服务命令使其生效 :service sshd restart

  将公钥复制到所有的 slave机器上 :scp~/.ssh/id_rsa.pub192.168.216.133:
~/  然后输入 yes,最后输入 slave机器的密码;
在 slave机器上创建 .ssh文件夹 :mkdir ~/.ssh然后执行 chmod 700
~/.ssh(若文件夹以存在则不需要创建);
追加到授权文件 authorized_keys执行命令 :cat ~/id_rsa.pub
>>~/.ssh/authorized_keys然后执行 chmod 600
~/.ssh/authorized_keys
重复第 4步
验证命令 :在 master 机器上执行 ssh 192.168.216.133发现主机名由
hadoop1变成 hadoop3 即成功,

最后删除 id_rsa.pub文件 :rm -r
id_rsa.pub(这步不是必须,子要不和本机的公钥文件冲突就行)
按照以上步骤分别配置
hadoop1,hadoop2,hadoop3,hadoop4,要求每个都可以无密码登录

6)源码下载

        HADOOP 版本
最新版本 hadoop-2.0.0-alpha安装包为 hadoop-2.0.0-alpha.tar.gz
下载官网地址 :
在/usr/local目录下解压目录
tar zxvf hadoop-2.0.0-alpha.tar.gz

mv hadoop-2.0.0-alpha hadoop

 

源码配置修改

/etc/profile