Ubuntu16.04环境下搭建Hadoop3.0.3伪分布式集群

    最近刚好赶上双11腾讯促销,于是抢购了一个8核16G内存的云服务器,加上业务上需要用到hadoop,hive,于是想搭建搭建一个hadoop分布式集群,但是限于自己手头上服务器数量不多,因此打算先搭建一个hadoop伪分布式集群。

  首先介绍一下我的安装环境:

  (1)java version 

     

(2)hadopp version

   

接下来,开始我的环境搭建之旅,由于在上学期间已经搭建过,所以这里就不再很详细的阐述,只是记录重要的关键点。

目录

(1)创建hadoop用户

(2)ssh免密登陆

(2)安装java环境

(3)安装hadoop3.0.3   

(4)搭建hadoop伪分布式集群

(5)验证是否安装成功


(1)创建hadoop用户

      其实,完全可以用root用户来操作hadoop的,但是毕竟root的权限太高了,我们还是要令创建一个专门来管理hadoop的用户,这里就取名叫hadoop  。(以下是root模式下操作的)

useradd -m hadoop -s /bin/bash

这条命令创建了可以登录的hadoop用户,并使用/bin/bash作为shell。

接着使用如下命令设置密码,可简单的设置为hadoop,按提示输入两次密码:

sudo passwd hadoop

可为hadoop用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题

adduser hadoop sudo

至此已经创建好了hadoop用户

(2)ssh免密登陆

      使用su hadoop 切换到用户hadoop

su hadoop

      切换到hadoop用户后,先更新一些apt,后续会使用apt安装软件,如果没更新可能有一些软件安装不了。按ctrl+alt+t打开终端窗口或者使用xshell建立远程连接,执行如下命令:

sudo apt-get update

      集群,单节点模式都需要用到SSH登录(类似于远程登录,你可以登录某台Linux主机,并且在上面运行命令),Ubuntu默认已安装了SSH client,此外还需要安装SSH server:

sudo apt-get install openssh-server

    安装后,可以使用命令登录本机:

ssh localhost

   此时会有如下提示(SSH首次登陆提示),输入yes。然后按提示输入密码hadoop,这样就可以登录到本机。

      但这样登录是需要每次输入密码的,我们需要配置成SSH无密码登录比较方便。

    首先推出刚才的ssh,就回到了原先的终端窗口,然后利用ssh-keygen生成密钥,并将密钥加入到授权中:

exit 退出刚才的ssh localhost
cd ~/.ssh/    若没有该目录,请执行一次ssh localhost
ssh-keygen -t rsa    会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys    加入授权
注释:~的含义 
在Linux中,~代表的是用户的主文件夹,即”/home/用户名”这个目录,如你的用户名为hadoop,则~就代表”/home/hadoop”。此外,命令中的#后面的文字是注释,只需要输入前面命令即可。

此时再用ssh localhost命令,无需输入密码就可以直接登录了,如下图所示。

需要注意的一点:

     以上只是给hadoop用户配置了免密登陆,但是root用户没有,如果后续想通过root用户来管理hadoop,这里建议在root用户模式下,重复上述ssh免密的过程,具体如下:

1、从hadoop模式进入到root模式

sudo su

2、配置免密ssh

cd ~/.ssh/    若没有该目录,请执行一次ssh localhost
ssh-keygen -t rsa    会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys    加入授权

3、ssh localhost看需不需要密码来验证

(2)安装java环境

      这里就不再赘述。注意jdk版本保持在1.8以上。

(3)安装hadoop3.0.3   

     下载完hadoop文件后一般可以直接使用。我们选择将Hadoop安装至/usr/local/中:

sudo tar -zxf ~/Downloads/hadoop-2.7.3.tar.gz -C /usr/local  #解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.7.3/ ./hadoop  #将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop     #修改文件权限  这一步一定要做,因为权限很重要

  Hadoop解压后即可使用。输入如下命令来检查Hadoop是否可用,成功则会显示Hadoop版本信息:

cd /usr/local/hadoop
./bin/hadoop version

  这样操作还是不方便,我们可以hadoop命令配置成全局的.

vim /etc/profile

   添加以下hadoop配置信息

#hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
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_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

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

  是配置的命令生效:

source /etc/profile

  如下图所示:

(4)搭建hadoop伪分布式集群

     Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的java进程来运行,节点既作为NameNode也作为DataNode,同时,读取的是HDFS中的文件。

需要对以下文件进行修改:

 1、hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/usr/local/hadoop/data/dfs/name</value>
        <final>true</final>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/usr/local/hadoop/data/dfs/data</value>
                </description>
                <final>true</final>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
       <property>
             <name>dfs.http.address</name>
             <value>0.0.0.0:9870</value>
       </property>

           <property>
             <name>fs.checkpoint.dir</name>
             <value>/usr/local/hadoop/data/dfs/testdir</value>
       </property>
           <property>
             <name>fs.checkpoint.edits.dir</name>
             <value>/usr/local/hadoop/data/dfs/testdir</value>
       </property>
           <property>
                         <name>ipc.maximum.data.length</name>
                         <value>134217728</value>
                </property>

     <property>
          <name>dfs.webhdfs.enabled</name>
          <value>true</value>
     </property>


</configuration>

2、core-site.xml文件(注意创建data文件夹以及里面的文件夹,具体见下面配置路径)

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9820</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/data/tmp</value>
    <description>Abase for other temporary directories.</description>
</property>
<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
    </property>

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

</configuration>

 3、hadoop-env.sh,添加以下两行代码

export JAVA_HOME=/usr/jvm/java
export HADOOP_HOME=/usr/local/hadoop

4、以下四个文件配置如下信息(主要是给root用户操作)

(5)验证是否安装成功

   1、执行NameNode的格式化

hdfs namenode -format

成功的话,会看到”successfully formatted”和”Exitting with status 0”的提示,若为”Exitting with status 1”则是处错。 

 2、开启所有的进程

sbin/start-dfs.sh

3、jps查看当前进程是否都启动了(主要是如下截图的6种)

4、web页面查看是否启动,浏览器输入IP+端口,出现如下截图表示成功。

至此hadoop3x的伪分布式环境搭建完毕,hive的环境搭建在我的博文其他篇章,欢迎阅读. 

参考文章;

https://blog.csdn.net/qjk19940101/article/details/70544197

猜你喜欢

转载自blog.csdn.net/qq_35571554/article/details/84075605