真实操作:在天翼云搭建最小规模的Hadoop环境

        讲了这么久的理论,话说实践是检验真理的唯一标准,我们来搭一个Hadoop环境。通过实践加深对Hadoop复杂理论的理解,通过实践再反过来看理论,也许会有更深的认知。今天我们用天翼云3.0环境,搭建最小规模的Hadoop。我们一步一步来,你会跟上。

        一、申请两台云主机,分别用于Hadoop的Master节点、Node节点

       为了省点money,我们申请1vCpu、2G内存,40G系统盘的CentOS 7.3主机两台。

        

为利于后期两台主机的内网通信,建议这两台主机放到同一个vpc,同一个安全组中。

       二、通过公网弹性IP,分别登陆CentOS进行JAVA、Hadoop安装和配置。

        1、登陆Master节点,修改本地hosts,用于后期的内网通信连接。192.168的内网地址需要根据您的云主机真实内网地址修改。

[root@ecs-hadoop-0001 ~]# vi /etc/hosts

192.168.189.60 master

扫描二维码关注公众号,回复: 5593226 查看本文章

192.168.189.80 node1

        修改完成后,按同样的方法修改Node节点。

        2、配置两台云主机的SSH无密码登录,用于Master、Node节点的hadoop通信。

        首先登录master节点

[root@ecs-hadoop-0001 ~]# ssh-keygen 输入后一直按回车即可

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): ^C

[root@ecs-hadoop-0001 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[root@ecs-hadoop-0001 ~]# scp ~/.ssh/id_rsa.pub root@node1:~/.ssh

id_rsa.pub                                                                                                        100%  402     0.4KB/s   00:00    

        

        登陆node节点,将master的授权写入node节点中

[root@ecs-hadoop-0002]#cat  ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

        3、安装Java JDK,在master、node节点分别操作

        下载JDK至CentOS中,并解压

[root@ecs-hadoop-0001 ~]# tar -zxf jdk-8u1.8-linux-x64.tar.gz -C ../

        配置环境变量

[root@ecs-hadoop-0001 ~]# vi /etc/profile

export JAVA_HOME=/jdk1.8.0_201

export PATH=$JAVA_HOME/bin:$PATH

        4、安装hadoop,在master、node节点分别操作

 [root@ecs-hadoop-0001 ~]# tar -zxf hadoop-2.7.7.tar.gz -C ../

        配置环境变量

[root@ecs-hadoop-0001 ~]# vi /etc/profile

export JAVA_HOME=/jdk1.8.0_201

export HADOOP_HOME=/hadoop-2.7.7

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

        5、配置hadoop

vi core-site.xml  修改hadoop的core-site配置

<configuration>

  <property>

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

     <value>file:/hadoop-2.7.7/tmp</value>       //临时目录

  </property>

  <property>

    <name>fs.defaultFS</name>                         //hdfs的数据通信内网端口

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

  </property>

修改hdfs-site.xml如下:

<configuration>

  <property>

    <name>dfs.replication</name>

    <value>1</value>    //hdfs只要一份副本

  </property>

  <property>

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

    <value>file:/hadoop-2.7.7/tmp/dfs/name</value>    //hdfs namenode的临时目录

  </property>

  

  <property>

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

    <value>file:/hadoop-2.7.7/tmp/dfs/data</value>

  </property>

  <property>

    <name>dfs.permissions</name>

    <value>false</value>

  </property>

</configuration>

将mapred-site.xml.template拷贝一份并命名为mapred-site.xml,用cp命令。

修改mapred-site.xml如下:

<configuration>

  <property>

    <name>mapreduce.framework.name</name>   //指定mapreduce的调度框架为yarn

    <value>yarn</value>

  </property>

</configuration>


修改yarn-site.xml如下:

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

         <property>

    <!-- 指定YARN的resourcemanager的地址(伪分布式时就是主机名,aliyun填写内网IP) -->

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

           <value>master</value>   //指定yarn的资源服务器为master

        </property>

        <property>

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

           <value>mapreduce_shuffle</value>

        </property>

        <property>

           <name>yarn.nodemanager.resource.cpu-vcores</name>

           <value>1</value>

        </property>

        <property>

           <name>yarn.nodemanager.resource.memory-mb</name>

           <value>2048</value>

        </property>

        <property>

           <name>yarn.scheduler.maximum-allocation-mb</name>

           <value>2048</value>

        </property>

        <property>

           <name>yarn.nodemanager.vmem-check-enable</name>

           <value>false</value>

        </property>


修改slaves文件如下:

master

node1

修改hadoop-env.sh如下:

# The java implementation to use.

export JAVA_HOME=/jdk1.8.0_201

最后,注意:将上述的配置文件拷贝一份到node1对应的目录中

        三、登录master节点,格式化hdfs

 [root@ecs-hadoop-0001 ~]# hdfs namenode -format

hdfs的文件操作指令不同于linux,如显示hdfs中的当前目录

       四、登录master节点,启动hadoop进程

[root@ecs-hadoop-0001 ~]# ./start-all.sh

完成后用jps命令,应能看到五个进程,表示正常

        五、最后用put命令往hdfs中放一个文件,用wordCount自带的例子可以看到最终结果。

       mapreduce的web管理端口默认为8088,请在天翼云安全组打开这个端口。大家会看到有一个dr.who的黑客帐号用mapreduce的漏洞攻击了这台主机,安全问题不容忽视。

hdfs的默认web管理端口为50070,请在天翼云安全组打开这个端口

希望以上文章能帮到您。

更多内容实时更新,请访问公众号。    

点击这里,获取最高¥1888阿里云产品通用代金券

猜你喜欢

转载自blog.csdn.net/qq_29718979/article/details/88651087