CDH集群伪分布式搭建步骤

1.安装虚拟机,配置ip(参考链接:点击这里

2.更改主机名,关闭防火墙,设置ip映射

[root@hadoop001 ~]# vi /etc/sysconfig/network    //更改主机名
[root@hadoop001 ~]# service iptables stop        //关闭防火墙
[root@hadoop001 ~]# chkconfig iptables off       //永久关闭防火墙
[root@hadoop001 ~]# vi /etc/hosts                //增加ip和主机名映射关系

3.安装JDK环境并配置全局环境变量(参考链接:点击这里)

4.下载我们需要安装的cdh软件包,本教程使用的cdh版本为hadoop-2.6.0-cdh5.7.0.tar.gz(1.可以直接通过wget cdh包链接下载 2.windows下载后上传至linux上)

cdh下载地址:点击这里

5.使用拥有root权限的用户创建管理hadoop集群用户 useradd hadoop,然后切换到hadoop用户在其家目录下创建生产环境下的目录 mkdir app software data log

[root@hadoop001 ~]# useradd hadoop     //添加hadoop用户

[root@hadoop001 ~]# su - hadoop

[hadoop@hadoop001 ~]$ mkdir app software data log

6.上传tar包到hadoop用户的software目录下并解压

7.使用hadoop用户在app目录下制作软连接hadoop

 

8.查看hadoop目录

[hadoop@hadoop001 app]$ cd hadoop/
[hadoop@hadoop001 hadoop]$ ll

drwxr-xr-x.  2 hadoop hadoop  4096 Mar 24  2016 bin                 //存放一些shell脚本
drwxr-xr-x.  2 hadoop hadoop  4096 Mar 24  2016 bin-mapreduce1
drwxr-xr-x.  3 hadoop hadoop  4096 Mar 24  2016 cloudera
drwxr-xr-x.  6 hadoop hadoop  4096 Mar 24  2016 etc                //存放配置文件
drwxr-xr-x.  5 hadoop hadoop  4096 Mar 24  2016 examples
drwxr-xr-x.  3 hadoop hadoop  4096 Mar 24  2016 examples-mapreduce1
drwxr-xr-x.  2 hadoop hadoop  4096 Mar 24  2016 include
drwxr-xr-x.  3 hadoop hadoop  4096 Mar 24  2016 lib                //存放jar包
drwxr-xr-x.  2 hadoop hadoop  4096 Mar 24  2016 libexec
-rw-r--r--.  1 hadoop hadoop 17087 Mar 24  2016 LICENSE.txt
-rw-r--r--.  1 hadoop hadoop   101 Mar 24  2016 NOTICE.txt
-rw-r--r--.  1 hadoop hadoop  1366 Mar 24  2016 README.txt
drwxr-xr-x.  3 hadoop hadoop  4096 Mar 24  2016 sbin             //存放的是一些启动停止命令
drwxr-xr-x.  4 hadoop hadoop  4096 Mar 24  2016 share
drwxr-xr-x. 17 hadoop hadoop  4096 Mar 24  2016 src

 

 9.使用hadoop用户修改一系列配置文件

9.1.vi etc/hadoop/hadoop-env.sh:

[hadoop@hadoop001 hadoop]# vi hadoop-env.sh     //修改两处
export JAVA_HOME=/usr/java/jdk1.8.0_45               //1.虽然该位置配置了JAVA_HOME,但是还是要显示的写出自己jdk的路径(bug)

export HADOOP_PID_DIR=/home/hadoop/data/tmp     //2.该目录为存放你执行start-dfs.sh后的jps当前进程nn/dn/snn的pid文件的目录(默认在/tmp下名称为hadoop-hadoop.进程名.pid,但是/tmp目录下保存时间一般为30天,如果集群启动30天以后/tmp下的pid文件被删除掉的话到时候你再去stop-dfs.sh的时候会出现no namenode/datanode.. to stop,就会有问题,一句话,缺少pid文件的话,无论是启动还是停止都会有问题,所有我们将这些重要的文件保存在我们指定的目录中,该配置只针对nn/dn/snn的pid,至于其它组件的话需要在其它配置文件中配置,当然如果你的集群是CDH的话则不用关心pid这个问题,因为CDH已经帮我们考虑到这个问题了,会帮我优化的很好的)

9.2.vi etc/hadoop/core-site.xml:

[hadoop@hadoop001 hadoop]# vi /etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>                       <!--该参数指定你的hdfs集群的namenode是谁-->
        <value>hdfs://hadoop001:9000</value>     <!--hadoop001为你的主机名-->
    </property>
</configuration>

9.3.在配置文件目录下 vi slaves文件增加上你的主机名,即datanode是谁(多个dn的话换行即可)

hadoop001

9.4.vi etc/hadoop/hdfs-site.xml:

[hadoop@hadoop001 hadoop]$ vi hdfs-site.xml 

<configuration>
    <property>
        <name>dfs.replication</name>         <!--该参数是配置你的hdfs数据块的副本数-->
        <value>1</value>
    </property>

    <property>
      <name>dfs.namenode.secondary.http-address</name>  <!--该参数是配置你secondaryNamenode是谁-->
        <value>hadoop001:50090</value>
    </property>

    <property>
      <name>dfs.namenode.secondary.https-address</name>   <!--该参数含义同上,只不过为http的加密 -->       
      <value>hadoop001:50091</value>
    </property>
</configuration>

9.5 vi mapred-site.xml(需要先mv mapred-site.xml.template mapred-site.xml)

<configuration>
    <property>
        <name>mapreduce.framework.name</name>   <!--该参数是说明你的mr程序是部署在yarn上,即使用yarn调度-->
        <value>yarn</value>
    </property>
</configuration>

9.6  vi yarn-site.xml 

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

10.配置免密钥(如果不配置的话无法远程登陆其它机器,或者需要我们频繁输入密码,但是这里我们的hadoop用户根本没有密码,所以需要通过ssh免密来实现) 

[hadoop@hadoop001 hadoop]$ ssh-keygen       //执行该语句一直按enter,会在当前用户的家目录生成一个.ssh的隐藏文件夹,里面存放着私钥和公钥
[hadoop@hadoop001 ~]$ cd .ssh/
[hadoop@hadoop001 .ssh]$ ll
total 12
-rw-------. 1 hadoop hadoop 1675 Jul  2 16:58 id_rsa                            //私钥文件
-rw-r--r--. 1 hadoop hadoop  398 Jul  2 16:58 id_rsa.pub                      //公钥文件
-rw-r--r--. 1 hadoop hadoop  407 Jul  2 17:00 known_hosts                  //一个维护信任的文件,输入yes时候会添加进该文件

[hadoop@hadoop001 .ssh]$ cat id_rsa.pub >> ~/.ssh/authorized_keys    //执行该语句,将公钥追加到authorized_keys这个固定的信任文件中

[hadoop@hadoop001 .ssh]$ chmod 600 ~/.ssh/authorized_keys              //必须给该信任文件一个600的权限

然后就可以实现免密钥了。。。。。。。。(可使用命令测试:ssh 主机名   需输入一次yes将主机名添加到known_hosts文件中)

Attention:如果是多台需要实现ssh免密的话,首先需要在每一台上面都先执行ssh-keygen,然后每一台的用户家目录下都会生成一个.ssh的隐藏文件,然后文件中会有对应的公钥文件和私钥文件,然后需要选择一台在上面执行cat id_rsa.pub >> ~/.ssh/authorized_keys ,然后使用scp命令,将当前机器上的authorized_keys文件(该文件权限必须为600)远程发送到别的机器上就可以实现在当前机器远程登陆其它机器了,原理就是让你想远程登陆的机器上面拥有你本机的公钥即可。

11.启动hdfs

11.1.格式化hdfs

[hadoop@hadoop001 hadoop]$ bin/hdfs namenode -format

11.2.启动namenode,datanode进程,secondaryNamenode进程

[hadoop@hadoop001 hadoop]$ sbin/start-dfs.sh 

[hadoop@hadoop001 hadoop]$ jps    
4384 NameNode
4664 SecondaryNameNode
4475 DataNode
4767 Jps
11.3启动yarn的进程(ResourceManager和NodeManager进程)

[hadoop@hadoop001 hadoop]$ start-yarn.sh 

[hadoop@hadoop001 hadoop]$ jps
11858 DataNode
12389 Jps
12038 SecondaryNameNode
12359 NodeManager
12267 ResourceManager
11758 NameNode

...............

也可以使用 start-start/stop.sh(该命令可能过时了)来一次性全部开启/关闭

可以使用ps -ef | grep hadoop查看启动的进程

---------------------------------------------------------------------

补充1:关于jps命令

1.1jps命令是jdk里面的一个命令,可以通过which jps来查看位置,该jps命令是用来查看当前用户启动的java进程,通常是用来查看hadoop各组件的进程情况。

1.2使用jps命令的用户可以查看到自己启动的java进程情况,但是切记,jps后出现的情况有可能是一个残留进程的信息(即被kill掉了),也许过一会你再执行jps就没有进程信息了,所以如果想看是否有某一个hadoop组件进程存在,使用ps -ef是最准确的命令。

1.3使用jps后的用户只能查看到自己的java进程,其它用户启动的java进程你是看不到的,并且即使root用户也不能完全查看到你启动的java进程详细信息,一般情况只能够看到一个进程号和-- process information unavailable这句信息,极少数或许也能看到进程号和进程名称。

1.4jps后出现的进程号是存放在/tmp/hsperfdata_hadoop目录中的,里面以进程号为文件名进行存储,文件中是一些进程信息

补充2:关于/tmp默认30天后会删除一些不常用的文件或者文件夹,我们的集群pid文件之所以修改它的存储路径就是因为集群启动的30后会删除我们的pid文件(通过tmpwatch命令),到时候我们集群启动/停止都会有问题

补充3:...............

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值