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
注:版本变动可能会涉及地址变动,请灵活使用
一、准备工作
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的下载地址