CDH安装包下载地址:http://archive.cloudera.com/cdh5/repo-as-tarball/5.3.2/

CDH5.3.2官方安装说明文档地址:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_cdh5_cluster_deploy.html

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_command_line.html

注:版本变动可能会涉及地址变动,请灵活使用



一、准备工作

    1.关闭防火墙(所有机器)(root用户)

        关闭防火墙:/etc/init.d/iptables stop

        关闭开机启动:chkconfig iptables off

    2.关闭selinux(所有机器)(root用户)

        临时方法:setenforce 0

        永久方法:/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器

    3.禁用ipv6

        vim /etc/sysctl.conf

        #disable ipv6

        net.ipv6.conf.all.disable_ipv6=1   

        net.ipv6.conf.default.disable_ipv6=1

        net.ipv6.conf.lo.disable_ipv6=1


        使其生效:sysctl -p


    4.时间(所有机器)(root用户)

        关闭ntpd服务

        service ntpd stop

        设置日期date -s "2014-5-13 09:56:33"

ntp1.iapp.com为ntp服务器地址)

    5.主机名(所有机器)(root用户)

        暂时修改主机名:hostname  192.168.80.19

        永久修改:vim /etc/sysconfig/network

    6.hosts文件(所有机器)(root用户)

        在hosts文件中写入整个集群的主机信息:

        192.168.60.98 bigdata07.ihep.ac.cn bigdata07

        192.168.60.97 bigdata06.ihep.ac.cn bigdata06

    7.设置IP地址(所有机器)(root用户)(一般在服务器上使用,虚拟机不需要)

        vim /etc/sysconfig/network-scripts/ifcfg-em1

        修改如下内容:

            HWADDR=90:B1:1C:37:A9:E5

            TYPE=Ethernet

            UUID=58ad6ae5-2e55-4c9a-81a3-b5d16441d65a

            ONBOOT=yes

            NM_CONTROLLED=yes

            BOOTPROTO=none

            IPADDR=192.168.60.96

            GATEWAY=192.169.60.1

            IPV6INIT=NO

    8.设置windows的hosts文件

        文件地址一般在:C:\Windows\System32\drivers\etc

        加入和linux服务器中一样的hosts对应关系:

            192.168.60.98 bigdata07.ihep.ac.cn bigdata07

            192.168.60.97 bigdata06.ihep.ac.cn bigdata06           


二、JDK1.8安装(所有机器)(root用户)

    1.查看java状况:rpm -qa |grep java

    2.查看jdk状况:rpm -qa |grep jdk

    3.卸载上两步显示的程序:rpm -e --nodeps java-###

    4.安装jdk:将jdk-8-linux-x64.rpm放入任意目录,执行rpm -ivh jdk-8-linux-x64.rpm

    5.修改环境变量:vim /etc/profile,加入如下几行:

        export JAVA_HOME=/usr/java/jdk1.8.0

        export JRE_HOME=/usr/java/jdk1.8.0/jre

        export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    6.生效:source /etc/profile

    7.验证:java –version、echo $JAVA_HOME


三、SSH无密码登录(所有机器)(root用户)


    1.启动ssh:service sshd start

    以下步骤全部在root用户下操作,首先需要保证所有主机能够ping通

    2.生成密钥:ssh-keygen -t rsa(然后一直按回车,会自动生成.ssh文件夹,内有两个文件)

    3.生成authorized_keys:cat id_dsa.pub  >>  authorized_keys

    4.赋权限:chmod 600 authorized_keys

    5.生成公有的密钥,包括所有主机的信息:

        5.1.将第一台主机的authorized_keys发送至第二台主机,替换掉之前的authorized_keys:

            scp -r authorized_keys root@192.168.60.92:/home/hadoop/.ssh

        5.2.将第二台主机的id_dsa.pub追加入authorized_keys(追加后的应有两台主机的信息)

            cat id_dsa.pub  >>  authorized_keys

        5.3.重复前两步,直到把所有主机的id_dsa.pub追加入authorized_keys

        5.4.将最后一个authorized_keys分发回给所有主机:

            scp -r authorized_keys root@192.168.60.92:/home/hadoop/.ssh

    6.验证登陆:ssh ip地址或者主机名


四、下载CDH安装包,配置yum源

    1.开启http服务

    2.设置yum配置文件       

    [cloudera-cdh5]

    # Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64

    name=Cloudera's Distribution for Hadoop, Version 5

    baseurl=http://192.168.83.147/cdh/5.3.2/

    gpgkey = http://192.168.83.147/cdh/RPM-GPG-KEY-cloudera

    gpgcheck = 1


五、Zookeeper3.4.5搭建(部分主机)

    1.注意事项:

        1.1.Zookeeper分布的主机数必须是奇数,不用使用全部主机,挑选出部分即可

    2.所有节点安装zookeeper

        2.1   

            yum install zookeeper-server

    3.配置文件:分发给所有节点

        zoo.cfg:

            maxClientCnxns=50

            tickTime=3000

            initLimit=15

            syncLimit=10

            dataDir=/data/zookeeper/data        ##Zookeeper存放数据

            dataLogDir=/data/zookeeper/logs        ##存放数据日志

            autopurge.purgeInterval=96

            server.1=192.168.60.92:2888:3888    ##所有安装Zookeeper的主机。server.ID,ID写入每台主机的/data/myid中

            clientPort=2181


    5.创建/data和/logs两个文件夹

        权限:drwxr-xr-x. 3 zookeeper root 4096 Mar 20 15:31 data

              drwxr-xr-x. 3 zookeeper root 4096 Mar 20 15:31 logs


    7.启动Zookeeper集群

        7.1.初次启动zookeeper需要初始化:  service zookeeper-server init --myid=1   

            第二个节点                      service zookeeper-server init --myid=2   依次类推

        7.2.启动Zookeeper集群(每台Zookeeper机器)

             service zookeeper-server start

        7.3.查看状态:

             /usr/lib/zookeeper/bin/zkServer.sh  status

             zookeeper-server status

        7.4.验证:

            主节点:/usr/lib/zookeeper/bin/zkCli.sh   

                    ls /

        7.5.格式化集群

            在主节点:hdfs zkfc -formatZK(注意:!!!安装好hdfs后)

        7.6.验证

            ls / ##是否出现了hadoop-ha


六、 Hadoop-HA模式(所有主机)

            注意:(hadoop HA设置两个namenode,一个active,一个standby)

        1.安装hadoop所需部件

            所有主机运行一次  yum clean all


            NameNode (选取两台NameNode节点安装)             

                                        yum install hadoop-hdfs-namenode -y

                                        yum install hadoop-hdfs-zkfc -y                       

                                         yum install hadoop-hdfs-journalnode -y

            ResourceManager(选取一台主机安装)             

                                         yum install hadoop-mapreduce-historyserver -y

                                         yum install hadoop-yarn-proxyserver -y

                                         yum install hadoop-yarn-resourcemanager -y


            集群所有节点除了ResourceManager                 

                                         yum install hadoop-hdfs-datanode -y

                                         yum install hadoop-mapreduce -y               

                                         yum install hadoop-client -y

                                         yum install hadoop-yarn-nodemanager -y


        2 HDFS

            2.1创建dfs.name.dir目录dfs.data.dir本地目录,并且设定权限。  注:(dfs.data.dir和dfs.name.dir已经过时了,但是还能用;建议使用dfs.datanode.data.dir和dfs.namenode.name.dir)

                 mkdir -p /data/hdfs/name /data/hdfs/data

                 chown -R hdfs:hdfs    /data/hdfs/name /data/hdfs/data

                注:hadoop 进程可能会自动给dfs.name.dir目录设置755权限,注意查看,必须改为700权限

            2.2创建dfs.journalnode.edits.dir目录,设定权限

                 mkdir -p /data/hdfs/journal

                 chown -R hdfs:hdfs /data/hdfs/journal

            2.3配置两个NaemNode主机 hdfs用户无密码登陆 (hdfs用户下)

                2.3.1生成密钥:ssh-keygen -t rsa(然后一直按回车,会自动生成.ssh文件夹,内有两个文件)

                2.3.2生成authorized_keys:cat .ssh/id_rsa.pub  >>  .ssh/authorized_keys

                2.3.3赋权限:chmod 600 authorized_keys

                2.3.4生成公有的密钥,包括两个NameNode主机的信息:

                    1.将第一台主机的authorized_keys发送至第二台主机,替换掉之前的authorized_keys:

                        scp -r authorized_keys hdfs@192.168.83.148:/var/lib/hadoop-hdfs/.ssh

                    2.将第二台主机的id_dsa.pub追加入authorized_keys(追加后的应有两台主机的信息)

                        cat id_dsa.pub  >>  authorized_keys

                    3.将第二台主机authorized_keys分发回给第一台NameNode主机:

                        scp -r authorized_keys hdfs@192.168.83.147:/var/lib/hadoop-hdfs/.ssh

                2.3.5验证登陆:ssh ip地址或者主机名

            2.4每个节点启动JournalNode

                sudo service hadoop-hdfs-journalnode start

            2.5启动ZKFC(两个NameNode节点)

                sudo service hadoop-hdfs-zkfc start  在次之前,先要格式化zkfc 7.5  在主节点:hdfs zkfc -formatZK

            2.6格式化namenode(hdfs用户下)

                sudo -u hdfs hdfs namenode -format

            2.7启动NameNode节点

                sudo service hadoop-hdfs-namenode start

            2.8启动NameNode节点(standby)

                sudo -u hdfs hdfs namenode -bootstrapStandby

                sudo service hadoop-hdfs-namenode start

            2.9建立/temp 目录,设置权限。注:如果不自己创建,程序可能自动创建,从而使其他程序无法使用这个目录。

                 sudo -u hdfs hadoop fs -mkdir /tmp

                 sudo -u hdfs hadoop fs -chmod -R 1777 /tmp

            2.10启动datanode

                 service  hadoop-hdfs-datanode start

        3 YARN

            3.1创建yarn.nodemanager.local-dirs目录:/data/yarn/local;创建yarn.nodemanager.log-dirs目录:/data/yarn/logs

            3.2改变上一步所创建目录权限

                mkdir -p /data/yarn/local /data/yarn/logs

                sudo chown -R yarn:yarn /data/yarn/local /data/yarn/logs

                yarn:yarn   drwxr-xr-x

            3.3.创建mapred-site.xml中yarn.app.mapreduce.am.staging-dir的目录 /user  并且在/user下创建/history  (系统默认创建的不是/user目录,系统给默认创建的目录权限可能会阻止程序正常运行,所以要自己创建/user目录)

            3.4 创建上一步所创建的目录,并改变权限

                sudo -u hdfs hadoop fs -mkdir -p /user/history

                sudo -u hdfs hadoop fs -chmod -R 1777 /user/history

                sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history

            3.5创建yarn.nodemanager.remote-app-log-dir /var/log/hadoop-yarn日志目录,并设定权限

                sudo -u hdfs hadoop fs -mkdir -p /var/log/hadoop-yarn

                sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn

            3.6确认目录,以及目录权限

                sudo -u hdfs hadoop fs -ls -R /


                drwxrwxrwt   - hdfs supergroup          0 2012-04-19 14:31 /tmp

                drwxr-xr-x   - hdfs supergroup          0 2012-05-31 10:26 /user

                drwxrwxrwt   - mapred hadoop          0 2012-04-19 14:31 /user/history

                drwxr-xr-x   - hdfs   supergroup        0 2012-05-31 15:31 /var

                drwxr-xr-x   - hdfs   supergroup        0 2012-05-31 15:31 /var/log

                drwxr-xr-x   - yarn   mapred            0 2012-05-31 15:31 /var/log/hadoop-yarn

            3.7启动ResourceManager,以及每一个 NodeManager   

                  sudo service hadoop-yarn-resourcemanager start

                  sudo service hadoop-yarn-nodemanager start

            3.8启动MapReduce JobHistory Server

                  sudo service hadoop-mapreduce-historyserver start


CDH版本hbase安装文档:


    1.所有机器安装hbase:yum install hbase

    2.安装hbase master以及backup master :yum install hbase-master

    3.安装regionserver:yum install hbase-regionserver

    4.修改配置文件:hbase-site.xml regionservers

    5.在hdfs上创建hbase目录,并且改变目录权限:

        sudo -u hdfs hadoop fs -mkdir /hbase

            sudo -u hdfs hadoop fs -chown hbase /hbase


    6.创建目录 并改变权限 (所有master 和 regionserver)

        mkdir -p /usr/lib/hbase/tmpid

        chown -R hbase:hbase /usr/lib/hbase/tmpid

    7.启动hbasemaster节点,以及regionserver节点:

        service hbase-master start

        service hbase-regionserver start



CDH版本的Spark安装指导:




1、配置本地yum源,在安装完cdh版本的Hadoop后已经配置。

2、可用yum list| gerp  spark 命令查看是否有以下安装包

    1)spark-core

    2)spark-worker

    3)spark-master

    4)spark-python

    5)spark-history-server

3、安装spark的安装包

   1)在master节点上运行以下命令

        sudo yum install  spark-core  spark-master  spark-python

2)在所有worker节点上运行以下命令

        sudo yum install  spark-core  spark-worker  spark-python

   3)若需安装spark的history server服务,可在master节点安装,也可单独安装

      在master节点安装

        sudo 

      单独在其他节点安装history server服务

         sudo yum install spark-core spark-history-server

4、配置spark集群(以standalone模式运行)

修改/etc/spark/conf/spark-env.sh文件

export STANDALONE_SPARK_MASTER_HOST=hostname   (必须配置的) 

将hostname修改为master节点的主机名

还可以修改以下配置属性:

SPARK_MASTER_PORT                默认7077

SPARK_MASTER_WEBUI_PORT          默认18080

SPARK_WORKER_PORT                默认7078

SPARK_WORKER_WEBUI_PORT         默认18081

SPARK_WORKER_CORES                设置在该节点使用几核

SPARK-WORKER_MEMORY                设置可以使用多少内存

SPARK_WORKER_INSTANCE            设置该几点可以运行几个worker进程

SPARK_WORKER_DIR        设置worker进程运行过程中将中间文件存放在本地何处

修改完spark-env.sh文件后,将该配置文件发送到集群中的其他节点。

5、配置spark history server

   首先在hdfs上创建一个文件夹,用来存放应用运行的日志信息。

    sudo -u hdfs hadoop fs -mkdir /user/spark

    sudo -u hdfs hadoop fs -mkdir /user/spark/applicationHistory

    sudo -u hdfs hadoop fs -chown spark:spark /user/spark

    sudo -u hdfs hadoop fs -chown spark:spark /user/spark/applicationHistory


     在提交任务的客户端作如下配置:

1)创建spark-default.conf文件

cp /etc/spark/conf/spark-defaults.conf.template  /etc/spark/conf/spark-defaults.conf

2)在spark-default.conf 文件中添加如下内容

spark.eventLog.dir=/user/spark/applicationHistory   

spark.eventLog.enabled=true

spark.yarn.historyServer.address=http://History_host:history_port   该项可以使RM连接到spark  history  server ,具体还没实践过,

该项也可以不配置 。history server服务端可以不用配置,直接使用默认配置,该项服务只是用来查看一些历史信息。


6、启动、停止服务

在master节点启动master服务

sudo service spark-master start

在所有的worker节点都启动worker服务

sudo service spark-worker start

在History server 节点启动History server服务

sudo service spark-history-server start

停止服务时,在相应的节点上运行以下命令

sudo service spark-worker stop

sudo service spark-master stop

sudo service spark-history-server stop


启动后,可以通过http://spark-master:18080查看集群状态。


yarn application -kill application_1428487296152_25597

./bin/spark-class org.apache.spark.deploy.Client kill <master url> <driver ID>

/bin/spark-class org.apache.spark.deploy.Client kill spark://myspark.com:7077 app-20140316142129-0000



参考链接

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_spark_configure.html    配置文件的参考链接


http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_yumrepo_local_create.html  创建本地yum 源的链接


http://archive.cloudera.com/cdh5/repo-as-tarball/5.3.2/    cdh5.3.2的下载地址