hadoop集群搭建细节

Hadoop Single Node Cluster的安装

c.NotebookApp.password = u'sha1:fc7089583f37:60e920d6132346258b951e6303157131d189bc21'
jupyter notebook & --ip=0.0.0.0 --no-browser --allow-root 
jupyter notebook
后台运行:nohup jupyter notebook

1、安装JDK                       因为Hadoop是使用Java开发的,所以必须先安装JDK
2、设置SSH无密码登录             Hadoop必须通过SSH与本地计算机以及其他主机连接,所以必须设置SSH
3、下载安装Hadoop                到Hadoop官网下载Hadoop2.6.4,并安装到Ubuntu中
4、设置Hadoop环境变量            设置每次用户登录时必须要设置的环境变量
5、Hadoop配置文件的设置          在Hadoop的/usr/local/hadoop/ect/hadoop目录下有很多配置设置文件,通过编译这些文件                 来启用基本或是更高级的功能
6、创建并格式化HDFS目录          HDFS目录是存储HDFS文件的地方,在启动Hadoop之前必须先创建并格式化HDFS目录
7、启动Hadoop                    全部设置完成就可以开始启动Hadoop,并查看Hadoop相关进程是否已经启动
8、打开Hadoop Web界面            Hadoop界面可以让我们查看当前Hadoop的状态:Node节点、应用程序、任务状态



1.安装JDK
java -version  查询Java版本
sudo apt-get update  连接到APT Server,更新软件包信息
sudo apt-get install default-jdk  使用apt-get安装JDK
java -version  查询Java版本
update-alternatives --display java  查询Java安装位置

2.设置SSH无密码登录
sudo apt-get install ssh  安装SSH
sudo apt-get install rsync  安装rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  产生SSHKey(密钥)进行后续身份验证
ll ~/.ssh  查看产生的SSH Key(密钥)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  将产生的Key放置到许可证文件中
   
3.下载安裝Hadoop (https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz)
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz  下载Hadoop-2.6.4.tar.gz
sudo tar -zxvf hadoop-2.6.4.tar.gz  解压hadoop-2.6.4.tar。gz至hadoop-2.6.4目录
sudo mv hadoop-2.6.4 /usr/local/hadoop  移动hadoop-2.6.4 目录到/usr/local/hadoop
ll /usr/local/hadoop  查看Hadoop安装目录/usr/local/hadoop

bin/                各项运行文件,包括Hadoop、HDFS、YARN等
sbin/               各项shell运行文件,包括start-all.sh、stop-all.sh
etc/                etc/hadoop子目录包括Hadoop配置文件,例如hadoop-env.sh、core-site.xml、YARN-site.xml、
                    mapred-site.xml、hdfs-siet.xml
lib/                Hadoop函数库
logs/               系统日志,可以查看系统运行状况,运行有问题时可以从日志找出错误原因

4.设置Hadoop环境变量

修改~/.bashrc
sudo gedit ~/.bashrc  编辑~/.bashrc

輸入下列內容

# 设置JDK安装路径
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

# 设置HADOOP_HOME为Hadoop的安装路径/usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop

# 设置PATH
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

# 设置HADOOP其他环境变量
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

# 链接库的相关设置
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

让~/.bashrc修改生效
source ~/.bashrc

5.修改Hadoop配置设置文件
接下来要进行Hadoop配置设置,包括Hadoop-env.sh、core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml

5.1修改hadoop-env.sh
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh  编辑Hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64  修改

5.2修改core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml

设置HDFS的默认名称,当我们使用命令或程序要存取HDFS时,可使用此名称
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

5.3 修改yarn-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml  编辑YARN-site.xml

yarn-site.xml文件中含有MapReduce2(YARN)相关的配置设置

<configuration>
<!-- Site specific YARN configuration properties -->
    <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>

5.4修改mapred-site.xml
  mapred-site.xml 用于设置监控Map与Reduce程序的JobTrecker 任务分配情况以及TaskTracker任务运行情况。Hadoop提供了设置的模板文件,可以自行复制修改

复制模板文件:由mapred-site.xml.template至mapred-site.xml
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml


设置mapreduce框架为yarn
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5.5修改hdfs-site.xml
hdfs-site.xml用于设置HDFS分布式文件系统
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

默认的blocks副本备份数量是每一个文件在其他node的备份数量,默认值为3.
<configuration>
    <!--设置blocks副本备份数量-->
    <property>
        <name>dfs.replication</name>    
        <value>3</value>    
    </property>
    <!--设置NameNode数据存储目录-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
    </property>
    <!--设置DataNode数据存储目录-->
    <property>  
        <name>dfs.datanode.data.dir</name>    
        <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
    </property>  
</configuration>

6.创建并格式化HDFS目录

6.1创建namenode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

6.2创建datanode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

6.3将Hadoop目录的所有者更改为hduser
sudo chown hduser:hduser -R /usr/local/hadoop

6.4将HDFS进行格式化
hadoop namenode -format

7.启动Hadoop
分别启动HDFS、YARN,使用start-dfs.sh(启动HDFS)、start-YARN.sh(启动YARN)
同时启动HDFS、YARN,使用start-all.sh

7.1启动HDFS
start-dfs.sh
7.2启动Hadoop MapReduce框架Yarn
start-yarn.sh
7.3同时启动HDFS、Yarn
start-all.sh

7.4关闭命令
hadoop-daemon.sh stop namenode  //关闭namenode进程
hadoop-daemon.sh stop datanode    //关闭当前机器上的datanode
hadoop-daemons.sh stop datanode    //关闭所有机器上的datanode
或者
stop-dfs.sh // 关闭namenode+datanode进程

查看NameNode、DataNode进程是否启动
jps

启动进程的说明:因为只有一台服务器,所以所有功能都集中在这台服务器中
HDFS功能:NamNode、SecondaryNameNode、DataNode已经启动。
MapReduce2(YARN):ResourceManager、NaodeManager已经启动

8.打开Hadoop Resource-Manager Web界面
Hadoop ResourceManager Web界面可用于查看Hadoop的状态:Node节点、应用程序、进程运行状态。

Hadoop ResourceManager Web界面网址
http://localhost:8088/

9.NameNode HDFS Web界面
HDFS Web界面可以查看当前HDFS于DataNode的运行情况。

HDFS Web UI网址
http://localhost:50070/


=================================================================================================================

安装多台机器的hadoop集群(Hadoop Multi Node Cluster),以及Hadoop资源管理(ResourceManager)与NameNode HDFS Web界面

Hadoop Multi Node Cluster 规划由多台计算机组成
1、有一台主要的计算机master,在HDFS担任NameNode角色、在MapReduce2(YARN)担任ResourceManager角色。
2、有多台辅助计算机data1、data2、data3,在HGFS担任DataNode角色、在MapReduce2(YARN)担任NodeManager角色。

                                       
                                             master          HAFS:NameNode
                     192.168.56.100      MapReduce2:ResourceManager
          


        HDFS:DataNode              HDFS:DataNode                       HDFS:DataNode
        YARN:NodeManager            YARN:NodeManager                    YARN:NodeManager
            
                    data1                data2                                data3
        192.168.56.101                192.168.56.102                  192.168.56.103

规划:

服务器名称                 内部IP                        HDFS                     YARN
master               192.168.56.100         NameNode          ResourceManager
data1               192.168.56.101                DataNode          NodeManager
data2               192.168.56.102         DataNode                 NodeManager
data3               192.168.56.103         DataNode                 NodeManager


1、复制single Node Cluster 到data1     为了节省安装时间,我们将创建的Single Node Cluster Hadoop 复制到data1,创建                                       data1虚拟机
2、VirtuaBox 适配卡设置                设置两块适配卡:
                    1.适配卡1:设置为“NAT适配卡”,可以通过Host主机连接至外部网络
                    2.适配卡2:设置为“内部网络适配器”,用于建立内部网络
3、设置data1服务器               设置Multi Node Cluster 服务器,配置设置文件共同的部分(固定IP、hostname、
                       core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml)
4、复制data1服务器至                   我们已经设置了data1服务器、配置设置文件共同的部分,为了节省安装时间,所以复    data2、data3、master             制data1到data2、data3、master
5、设置data2服务器                     设置data2固定ip、hostname
6、设置data3服务器                     设置data3固定ip、hostname
7、设置master服务器                    设置NameNode服务器(master):设置固定IP、hostname、hdfs-site.xml、master、                       slaves
8、master连接到data1、data2、          重新启动master与data1、data2、data3后,master通过SSH连接data1、data2、data3
   data3创建HGFS目录                  并创建HDFS目录
9、建立与格式化NameNode HDFS目录       创建NameNode HDFS 目录,并且格式化HDFS目录
10、启动Hadoop Multi Node cluster      启动Hadoop Multi Cluster 并使用jps查看当前所运行的进程
11、打开Hadoop Resource Manager Web    Hadoop ResourceManagerWeb界面可用于查看当前Hadoop:Node节点、应用程序、进程
    界面                               运行状态
12、打开NameNode Web界面               HDFS Web界面,可以检查当前HDFS与DataNode运行情况
                 
   

设置data1服务器
  设置 Multi Node Cluster 服务器,配置设置文件共同的部分:固定IP、hostname、core-site.xml、YARN-site.xml、mapred-stie.xml、hdfs-site.xml

1、设置data1虚拟主机每次开机都是使用固定IP:192.168.56.101
编辑interfaces网络配置文件
sudo gedit /etc/network/interfaces

设置网卡1
  设置为“NAT网卡”,可以通过Host主机连接至外部网络(internet),设置为eth0,并设置dhcp自动获得IP地址。

设置网卡2
  设置为“仅主机适配器”,用于建立内部网络,内部网络连接虚拟主机(master、data1、data2、data3)与Host主机。设置为eth1,并设置为static,即指定固定IP地址。

# NAT interface
auto eth0 
iface eth0 inet dhcp

# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.101 
netmask 255.255.255.0 
network 192.168.56.0 
broadcast 192.168.56.255


设置hostname(必须设置data1的hostname--主机名)
编辑hostname主机名
sudo gedit /etc/hostname

设置hosts文件
  建立的Hadoop Multi Node Cluster中有4台计算机,如何让网络中所有的计算机都知道其他计算机的主机名与IP呢?可以编辑hosta文件或者设置DNS。hosts文件通常用于补充或取代网络中DNS的功能,和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。hosts文件可存储计算机网络中各节点的信息,负责将主机名映射到对应的IP地址(名字解析)。

编辑hosts文件
sudo gedit /etc/hosts


192.168.56.100 master
192.168.56.101 data1
192.168.56.102 data2
192.168.56.103 data3


编辑core-site.xml
  在core-site.xml中,我们必须设置HDFS的默认名称,当使用命令或程序来存取HDFS时,可使用此名称。之前Single Node Cluster因为只有一台计算机,所以我们设置namenode位置为localhost即可,但是现在有多台计算机,所以必须指定主机名。

编辑core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml


<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

编辑YARN-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <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>
        <property>
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master:8025</value> 
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8050</value>
    </property>
</configuration>

ResourceManager 主机与NodeManager 的连接地址为8025.
ResourceManager 与ApplicationMaster 的连接地址为 8030.
ResourceManager 与客户端的连接地址为 8050.


编辑mapred-site.xml
mapred-ssite.xml 用于设置监控Map与Reduce程序的JobTracker任务分配情况,以及TaskTracker任务运行状况。

编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name> 
        <value>master:54311</value>
    </property>
</configuration>

编辑hdfs-site.xml
hdfs-site.xml用于设置HDFS分布式文件系统的相关配置。之前在Single Node Cluster中因为只有一台服务器,所以同时身兼NameNode与DataNode角色。但是data1现在只是单纯的DataNode,所以请删除NameNode的设置,只保留DataNode的设置。
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

<configuration>
    <!--设置blocks副本备份数量-->
    <property>
        <name>dfs.replication</name>    
        <value>3</value>    
    </property>
    <!--设置DataNode数据存储目录-->
    <property>   
        <name>dfs.datanode.data.dir</name>    
        <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
    </property>  
</configuration>


重启:
ifconfig

复制data1服务器到data2、data3、master

因为目前data1已经设置了Hadoop Multi Node Cluster共同的部分,为了节省安装时间,所以复制data1到data2、data3、master。如果不适用虚拟机,也可以重复之前的步骤来创建data2、data3、master。


设置data2服务器
设置data2的固定IP、hostname

编辑interfsces网络配置文件
sudo gedit /etc/network/interfaces

# NAT interface
auto eth0 
iface eth0 inet dhcp

# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.102 
netmask 255.255.255.0 
network 192.168.56.0 
broadcast 192.168.56.255

编辑hostname文件
sudo gedit /etc/hostname

data2

ifconfig


设置data3服务器
设置data2的固定IP、hostname

编辑interfsces网络配置文件
sudo gedit /etc/network/interfaces

# NAT interface
auto eth0 
iface eth0 inet dhcp

# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.103
netmask 255.255.255.0 
network 192.168.56.0 
broadcast 192.168.56.255

编辑hostname文件
sudo gedit /etc/hostname

data3

ifconfig

设置master服务器
在NameNode服务器(master)中需要设置固定IP地址、hostname、hdfs-site.xml、masters、slaves。


设置master固定IP地址
我们必需设置master虚拟主机每次开机使用固定IP地址192.168.56.100

编辑master的insterfaces网络配置文件
sudo gedit /etc/network/interfaces


# NAT interface
auto eth0
iface eth0 inet dhcp

# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.100
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

编辑hostname文件
sudo gedit /etc/hostname


master

设置hdfs-site.xml
hdfs-site.xml 用于设置HDFS分布式文件系统相关配置的设置。因为master现在只是单纯的NameNode,所以请删除DataNode的HDFS设置,并加入NameNode额度HDFS设置。

编辑hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml


<configuration>
    <!--设置blocks副本备份数量-->
    <property>
        <name>dfs.replication</name>    
        <value>3</value>    
    </property>
    <!--设置namenode HGFS存储目录-->
    <property>   
        <name>dfs.namenode.name.dir</name>    
        <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
    </property>  
</configuration>


编辑masters文件
master文件主要告诉Hadoop系统哪一台服务器是NameNode

编辑master文件
sudo gedit /usr/local/hadoop/etc/hadoop/masters

master

编辑slaves文件
sudo gedit /usr/local/hadoop/etc/hadoop/slaves

data1
data2
data3

master连接到data1、data2、data3创建HGFS目录
我们创建了master与data1、data2、data3服务器。接下来,创建NamNode(master)的SSH连接到DataNode(data1、data2、data3),并创建HGFS相关目录


master通过SSH连接到data1虚拟机
ssh data1

连接到data1创建HDFS相关目录
登录data1后,我们将在data1创建HDFS相关目录。

删除HDFS所有目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs

创建DataNode存储目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

将目录的所有者跟改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop

中断data1连接,回到master
exit

data2、data3


创建并格式化NameNode HDFS目录
重新创建NameNode HDFS目录

删除之前的HDFS目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs

创建NameNode目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

将目录的所有者更改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop

格式化NameNode HDFS目录
之前我们已经创建了DataNode与NameNode的HGFS目录,接下来,需要格式化HGFS目录。

格式化NameNode HDFS目录
hadoop namenode -format


启动Hadoop Multi Node Cluster


分别启动HDFS与YARN
命令                              说明
start-dfs.sh                      启动HDFS
start-YARN.sh                     启动Hadoop MapReduce框架YARN

同时启动HDFS与YARN
命令                              说明
start-all.sh                      同时启动HDFS与YARN

查看master(NameNode)进程(process)
jps(Java Virtual Machine Process Status Tool)可以用于查看当前所运行的进程.

查看master(NameNode)的进程(process)是否启动
jps

HDFS功能:NameNode、SecondaryNameNode已经启动。
MapReduce2(YARN):ResourceManager已经启动


查看data1(DataNode)进程

HDFS功能:DataNode已经启动。
MapReduce2(YARN):NodeManager已经启动。


打开Hadoop ResourceManager Web界面
Hadoop ResourceManager Web界面可用于查看当前Hadoop的状态:Node节点、应用程序、进程运行状况

打开ResourceManager Web界面
ResourceManager Web 界面网址
http://master:8088/

查看已经运行的节点Nodes
当点击Nodes时,会显示当前的节点。当前共有3个节点Nodes:data1、data2、data3.

打开NameNode Web界面
HDFS Web加密那可用于检查当前的HDFS与DataNode运行情况

HDFS Web用户界面网址
http://master:50070/

查看Datanode
单击Datanode,可以看到当前启动了3个节点Datanode


停止Hadoop Multi Node Cluster
stop-all.sh

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值