CentOS7 单机搭建hadoop2.7.1

一 、配置jdk环境

参考:https://blog.csdn.net/qq_41020714/article/details/88529827

二、创建Hadoop用户

1. 通过useradd添加用户(创建新用户hadoop):useradd -m hadoop -s /bin/bash

2.为新用户设置密码:passwd hadoop

3.给Hadoop用户添加管理员权限: visudo

找到root ALL=(ALL)ALL这一行,一般在98行附近,然后在这一行下面增加指令:

查看行数:

:set nu

hadoop  ALL=(ALL)       ALL    #中间的间隔为tab

保存退出

4.切换到Hadoop用户:su hadoop

三、配置SSH无密码登陆

1.检查服务器上是否安装和SHH client、SHH server:rpm -qa | grep ssh

如上图就不用安装,否则,可以通过yum进行安装:

 yum –y install openssh-clients

yum –y install openssh-clients

2.测试SHH是否可用:ssh localhost

首次登陆会有提示,输入yes即可,然后按提示输入账号密码即可。

上述有密码登陆的方式

3.配置SHH无密码登陆

输入exit回到原先的终端命令窗口,执行以下命令:

cd ~/.ssh/                             #若没有该目录,请先执行一次ssh localhost

ssh-keygen -t rsa                     #会有提示,都按回车就可以

cat id_rsa.pub >> authorized_keys     #加入授权

chmod 600 ./authorized_keys             #修改文件权限

四、安装hadoop及验证

1.下载hadoop 地址:http://mirror.bit.edu.cn/apache/hadoop/common/

2.将hadoop解压到安装文件夹(比如:/home/bigdata):

tar  -zvxf  hadoop-2.7.1.tar.gz  -C  /home/bigdata

3.进入解压后的文件夹(如:/home/bigdata)更改文件名

mv  ./hadoop-2.7.1/  ./hadoop

4.修改文件权限: chown -R hadoop:hadoop  ./hadoop

5.检查 hadoop 是否可用,执行以下命令

  cd  /home/bigdata/hadoop   #去到hadoop目录

执行 ./bin/hadoop  version   #检查hadoop是否可以使用

出现上图正常使用,可能提示报错为:

应该需要如下配置

    1) vim  /etc/hadoop/hadoop-env.sh 添加java安装路径加进去:

       export   JAVA_HOME=/usr/java/jdk1.8.0_121

     2) 编辑:  vim  /etc/profile 配置hadoop环境变量(配置此环境变量hadoop常用命令才可以全局化):

          export HADOOP_HOME=/usr/hadoop/hadoop-2.7.1

         export PATH=$PATH:$HADOOP_HOME/bin

         :wq!  保存退出后执行:source  /etc/profile 使之生效

6、单机测试

 Hadoop 默认模式为非分布式模式,执行以下可运行:

  cd  /home/bigdata/hadoop

 ./bin/hadoop jar  ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar

7. cd到hadoop目录下(cd /home/bigdata/hadoop),新建一个input文件夹(mkdir input),

   将配置文件作为输入文件:cp ./etc/hadoop/*.xml ./input

8.筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,并输出到output文件夹

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar  grep ./input/ ./output 'dfs[a-z.]+'

9.查看output中的运行结果,如下图测试成功

 

五、配置hadoop  dfs和yarn

1、配置hdfs

   1)  修改/home/bigdata/hadoop/etc/hadoop/core-site.xml 文件,

 <configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
    </property>
</configuration>

fs.defaultFS直接用localhost就行,如果重命名了主机名,也可以用重命名的。

2)   修改/home/bigdata/hadoop/etc/hadoop/hdfs-site.xml 

<configuration>
    <property>
    <name>dfs.name.dir</name>
    <value>/usr/hadoop/hdfs/name</value>
    <description>namenode上存储hdfs名字空间元数据 </description>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/hadoop/hdfs/data</value>
        <description>datanode上数据块的物理存储位置</description>
    </property>
    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

3)   hdfs启动与停止

 第一次启动hdfs需要格式化,之后启动就不需要的:

  cd  /home/bigdata/hadoop

  ./bin/hdfs namenode -format

 

启动命令:./sbin/start-dfs.sh

停止命令:./sbin/stop-dfs.sh

从图中看,会启动namenode,datanode,secondarynamenode

浏览器输入:http://ip:50070  查看效果:

 

如果访问不了,需要确认是否开通防火墙,端口没开放以下操作:

systemctl status firewalld  #查看防火墙是否开启

systemctl start firewalld.service  #开启防火墙

1、firewall-cmd --list-ports #查看是否开启相关端口

2、firewall-cmd --permanent --zone=public --add-port=xxxx/tcp  #防火墙添加开启的端口

3、systemctl  reload  firewalld  #重启防火墙

 

 

2、配置 yarm

1) 配置/home/bigdata/hadoop/etc/hadoop/mapred-site.xml; 

    hadoop默认是mapred-site.xml.template文件,重命名为mapred-site.xml

   cp  mapred-site.xml.template  mapred-site.xml

   vim  mapred-site.xml

<configuration>

    <!-- 通知框架MR使用YARN -->

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

2)  配置/home/bigdata/hadoop/etc/hadoop/yarn-site.xml文件,

<configuration>

    <!-- reducer取数据的方式是mapreduce_shuffle -->

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

启动:./sbin/start-yarn.sh

停止:./sbin/stop-yarn.sh

会启动resourcemanager,nodemanager  如图:

可以用jps命令查看启动了什么进程:

 

浏览器输入:http://192.168.10.191:8088

 

另外补充:

 1) 一般配置如下yarn-site.xml默认端口为8088,

<configuration>

    <!-- reducer取数据的方式是mapreduce_shuffle -->

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

若默认端口被占用修改以上配置为:

<configuration>

    <!-- reducer取数据的方式是mapreduce_shuffle -->

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

  <property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>192.168.10.101:34567</value><!--填写自定义的主机名/ip:自定义端口-->

  </property>

</configuration>

重启启动yarm,访问http://192.168.10.101:34567 ,如图:

 

2) hadoop 8088端口无法访问,配置修改为:

  <configuration>
<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>xxxx</value>   <!--填写自定义的主机名/ip-->
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>0.0.0.0:8032</value>
         </property>
         <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>0.0.0.0:8030</value>
         </property>
         <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>0.0.0.0:8031</value>
         </property>
         <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>0.0.0.0:8033</value>
         </property>
         <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>0.0.0.0:8088</value>
         </property>
</configuration>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值