1.配置yum源
Xftp 10.72.39.160 /etc/yum.repo.d/RHEL.repo
目的机器上:
cd /etc/yum.repos.d/
mkdir bak
mv CentOS-*.repo bak
yum clean all
yum makecache
yum list
2.编译64位库
yum install gcc-c++-y
yum installncurses-devel -y
yum install cmake -y
yum installzlib-devel -y
解压tar-zvxf hadoop-2.7.2.tar.gz
4.安装hadoop准备
在安装Hadoop之前,所有集群节点均需对操作系统进行以下配置:
4.1)去掉操作系统ulimit -n 限制
(1)修改/etc/security/limits.conf ,在最后增加如下内容:
* soft nofile 102400
* hard nofile 409600
(2)修改/etc/pam.d/login,在最后添加如下内容:
session required/lib/security/pam_limits.so
(3)重启系统使得配置生效
4.2)关闭防火墙
(1)重启后生效
关闭:chkconfig iptables off
(2)即时生效,重启后失效
关闭:serviceiptables stop
4.3)配置hostname,设置主机名
vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
4.4).配置host, 设置ip和主机名的映射
vi /etc/hosts
10.72.39.55 master
10.72.39.58 slave01
10.72.39.62 slave02
10.72.39.67 slave03
4.5)查看系统的JDK版本
rpm –qa | grepjdk 若是1.8则不用管,若不是1.8则卸载系统jdk
yum –y remove 系统JDK版本
安装jdk-8u66-linux-x64.rpm
cd/usr/local
chmod+x jdk-8u66-linux-x64.rpm
rpm–ivh jdk-8u66-linux-x64.rpm
修改vim~/.bash_profile 环境变量
将JAVA_HOME添加到PATH目录中,如下:
JAVA_HOME=/usr/java/jdk1.8.0_66
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH
4.6) 配置ssh无密码连接
SSH无密码登录节点
这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。
首先生成 Master 节点的公匙,在 Master 节点的终端中执行:
cd~/.ssh
rm./id_rsa*
ssh-keygen–t rsa
(2) 让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:
cat ./id_rsa.pub>> ./authorized_keys
完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave 节点:
scp~/.ssh/id_rsa.pub root@Slave:/root/
接着在 Slave节点上,将ssh 公匙加入授权:
cat ~/id_rsa.pub >>~/.ssh/authorized_keys
rm~/id_rsa.pub
如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。
这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了。
最后测试 ssh slave01
5. Hadoop安装
在主节点dmdb1配置
5.1)配置文件 有的要创建目录,根据配置文件而定。
拷贝/hadoop+hbase集群/home/hadoop-2.7.2/etc/hadoop中hadoop-env.sh,core-site.xml,hdfs- site.xml,mapred-site.xml, yarn-site.xml, yarn-env.sh,slaves到dmdb1相同目录,覆盖原文件。
5.2) 拷贝配置好的hadoop到slave节点
scp –r /opt/hadoop-2.7.2slave01:/opt
scp –r /opt/hadoop-2.7.2slave02:/opt
scp –r /opt/hadoop-2.7.2slave03:/opt
6.配置时间同步
Includefile上面还掉了两句:server127.127.1.0
6.2) Ntp服务器master上以守护进程启动ntpd
service ntpd start
注:ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronizationfound”错误。
6.3)配置时间同步客户机slave01,slave02,slave03
添加一行,客户机每小时跟ntp服务器进行时间同步:
* */1 * * * /usr/sbin/ntpdate master
备注:如果客户机没有ntpdate,可以下载ntpdate.tar.gz到/usr/sbin/目录,然后解压
最后检查4台机器时间是否一直。
7.安装zookeeper
拷贝/hadoop+hbase集群/opt/zookeeper-3.4.8/conf目录下面的zoo.cfg到master相同位置
远程分发
scp –r /opt/zookeeper-3.4.8slave01:/opt
scp –r /opt/zookeeper-3.4.8slave02:/opt
scp –r /opt/zookeeper-3.4.8slave03:/opt
在Zookeeper集群的每台节点上创建Zookeeper的数据文件:
mkdir /opt/hadoop-2.7.2/zookeeper/
设置myid:
master
echo “1”> /opt/hadoop-2.7.2/zookeeper/myid
slave01
echo “2”>/opt/hadoop-2.7.2/zookeeper/myid
slave02
echo “3”> /opt/hadoop-2.7.2/zookeeper/myid
slave03
echo “4”> /opt/hadoop-2.7.2/zookeeper/myid
8.hbase安装
在主节点上解压HBase的tar包:
tar –zvxfhbase-1.1.4-bin.tar.gz
拷贝/hadoop+hbase集群/opt/hbase-1.1.4/conf目录下面的hbase-env.sh, hbase-site.xml, regionservers,backup-masters,core-site.xml,hdfs-site.xml到master的相同目录
其中hbase-env.sh exportHBASE_HEAPSIZE=32 这个值要根据内存而定。
将配置好的HBase安装目录拷贝到其他slave节点,例如:
scp–r /opt/hbase-1.1.4 slave01:/opt
scp–r /opt/hbase-1.1.4 slave02:/opt
9.启动zookeeper集群
在每台Zookeeper集群节点上,进入到Zookeeper的安装目录,运行以下命令:
bin/zkServer.sh start
查看单机Zookeeper是leader还是follower:
停止Zookeeper:
bin/zkServer.sh stop
10.启动hadoop集群(只用到了dfs)
Hadoop集群的启动(在Master节点上操作)
/opt/hadoop-2.7.2/bin/hdfs namenode -format
启动dfs集群
cd $HADOOP_HOME/sbin
./start-dfs.sh
输入jps查看java相关进程
浏览器访问相关页面
若输入网址为如下,需进行解析
http://master:50070/ dfs页面
Hadoop集群的停止
停止dfs集群
cd $HADOOP_HOME/sbin
./stop-dfs.sh
11.启动hbase集群
在启动HBase集群之前,需保证Hadoop集群和Zookeeper集群是正常运行,然后进入到HBase的安装目录:
启动HBase
bin/start-hbase.sh
输入jps查看HBase进程情况
Master
Slave01
Slave02(main进程忽略不看)
Slave03(main进程忽略不看)
停止HBase
bin/stop-hbase.sh
进入HBase shell
bin/hbase shell
若报找不到hadoop资源库的错,可以在hbase shell脚本里加入exportLD_LIBRARY_PATH=/ho me/hadoop-2.7.2/lib/native/,不加也不影响使用。
查看HBase HMaster Web页面
12.开机启动配置
拷贝/hadoop+hbase集群/home下master-zk-hadoop-hbase-start.sh到master指定目录
master中加/home/master-zk-hadoop-hbase-start.sh到系统服务,防止机器重启服务挂掉
chmod +xmaster-zk-hadoop-hbase-start.sh
ln -smaster-zk-hadoop-hbase-start.sh /etc/init.d/
拷贝/hadoop+hbase集群/home下slave-zk-start.sh到dmdb2, dmdb3,dmdb4指定目录
dmdb2, dmdb3, dmdb4中加/home/slave-zk-start.sh到系统服务,防止机器重启服务挂掉
chmod +xslave-zk-start.sh
ln -s slave-zk-start.sh/etc/init.d/
13.创建表
bin/hbase shell
create‘GA_GXRY_ACT’,{NAME=>’act’,VERSIONS=>1},SPLITS_FILE=>’splits.txt’
注意:创建完表,其中存有数据后,不要修改系统时间,否则会导致hbase数据不可用,故请提前配置好集群时间同步。万不得已要改时间重新同步,得删除表重新创,数据将全部丢失。
HIVE部署
将hive部署到跟NameNode同一个节点就行。
进入hive的conf文件夹:
cp hive-default.xml.template hive-site.xml cp hive-log4j.properties.template hive-log4j.properties |
(1) 修改hive-site.xml
将Hive的元数据存储到DM数据库中
需要修改的配置有:
javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPassword
hive.metastore.warehouse.dir
修改如下:
将javax.jdo.option.ConnectionURL配置修改成如下:
其中192.168.195.1这个ip是指DM数据库所在的IP。
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:dm://10.74.203.57:5236?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> |
将javax.jdo.option.ConnectionDriverName配置修改成如下:
配置DM数据库的驱动
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>dm.jdbc.driver.DmDriver</value> <description>Driver class name for a JDBC metastore</description> </property> |
将javax.jdo.option.ConnectionUserName配置修改成如下:
配置用户名
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>HIVE</value> <description>username to use against metastore database</description> </property> |
将javax.jdo.option.ConnectionPassword配置修改成如下:
配置DM数据库的密码
<property> <name>javax.jdo.option.ConnectionPassword</name> <value>888888888</value> <description>password to use against metastore database</description> </property> |
将hive.metastore.warehouse.dirs配置修改成如下:
<property> <name>hive.metastore.warehouse.dir</name> <value>hdfs://master:9000/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> |
由于将Hive的元数据放在DM数据库中,则需要做适配才行,所以要加一项配置:
<property> <name>datanucleus.mapping.Schema</name> <value>HIVE</value> <description>默认模式</description> </property> |
(2) 添加Jar包
将DM数据库驱动的jar包:Dm7JdbcDriver16-20131009.jar
DM数据库适配置jar包:datanucleus-rdbms-dm-0.0.1-SNAPSHOT.jar
将这两个jar加到hive的lib中。
(3) 修改hive-log4j.properties
将log4j.appender.EventCounter修改成:
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter |
(4) 添加Hive的环境变量
export HIVE_HOME=/opt/hive export PATH=$ HADOOP_HOME/bin:$ HIVE_HOME /bin:$PATH |
(5) hdfs上面,创建目录
$HADOOP_HOME/bin/hdfsdfs -mkidr /tmp $HADOOP_HOME/bin/hdfsdfs -mkidr /user/hive/warehouse $HADOOP_HOME/bin/hdfsdfs -chmod g+w /tmp $HADOOP_HOME/bin/hdfsdfs -chmod g+w /user/hive/warehouse |
(6) 启动Hive
启动metastore服务
bin/hive --service metastore & |
启动hiveserver服务
bin/hive --service hiveserver2 & |