1. 准备环境
1.1. 安装包
1)安装虚拟机:VirtualBox-4.2.4-81684-Win.exe
2)安装配置Linux系统:CentOS-7.0-1406-x86_64-DVD.iso
3)安装配置Java环境:jdk-8u25-linux-x64.tar.gz
4)安装配置Hadoop:hadoop-2.6.0-x64.tar.gz
5)安装配置Hbase:hbase-0.99.2-bin.tar.gz
1.2. 网络配置
主机名 |
IP |
master |
10.1.2.18 |
slave1 |
10.1.2.53 |
slave2 |
10.1.2.101 |
1.3. 常用命令
# systemctl start foo.service #运行一个服务
# systemctl stop foo.service #停止一个服务
# systemctl restart foo.service #重启一个服务
# systemctl status foo.service #显示一个服务(无论运行与否)的状态
# systemctl enable foo.service #在开机时启用一个服务
# systemctl disable foo.service #在开机时禁用一个服务
# systemctl is-enabled iptables.service #查看服务是否开机启动
# reboot #重启主机
# shutdown -h now #立即关机
# source /etc/profile #配置文件修改立即生效
# yum install net-tools
2. 安装配置CentOS
2.1. 安装CentOS
1)选择启动盘CentOS-7.0-1406-x86_64-DVD.iso,启动安装
2)选择Install CentOS 7,回车,继续安装
3)选择语言,默认是English,学习可以选择中文,正时环境选择English
4)配置网络和主机名,主机名:master,网络选择开启,配置手动的IPV4
5)选择安装位置;在分区处选择手动配置;选择标准分区,点击这里自动创建他们,点击完成,收受更改
6)修改root密码,密码:a
7)重启,安装完毕。
2.2. 配置IP
2.2.1. 检查IP
# ip addr
或
# ip link
2.2.2. 配置IP
# cd /etc/sysconfig/network-scripts/ #进入网络配置文件目录
# find ifcfg-enp* #查到网卡配置文件,例如ifcfg-enp0s3
# vi ifcfg-enp0s3 #编辑网卡配置文件
或
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 #编辑网卡配置文件
配置内容:
BOOTPROTO=static #静态IP配置为static,动态配置为dhcp
ONBOOT=yes #开机启动
IPADDR=10.1.2.18 #IP地址
NETMASK=255.255.255.0 #子网掩码
2.2.3. 配置网关
# vi /etc/sysconfig/network
编辑内容:
NETWORKING=yes
HOSTNAME=master
GATEWAY=10.1.2.254
2.2.4. 配置dns
# vi /etc/resolv.conf #配置dns
编辑内容:
nameserver 202.106.196.115
nameserver 202.106.0.20
nameserver 8.8.8.8
# systemctl restart network.service #重启网络
2.2.5. 配置hosts
# vi /etc/hosts
编辑内容:
10.1.2.18 master
10.1.2.53 slave1
10.1.2.101 slave2
2.3. 关闭防火墙
# systemctl status firewalld.service #检查防火墙状态
# systemctl stop firewalld.service #关闭防火墙
# systemctl disable firewalld.service #禁止开机启动防火墙
2.4. 关闭SELINUX
# vi /etc/selinux/config
编辑内容:
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
# setenforce 0 #使配置立即生效
2.5. 时间同步
# yum install -y ntp #安装ntp服务
# ntpdate cn.pool.ntp.org #同步网络时间
2.6. 配置nscd
安装nscd用于DNS刷新
# yum install nscd
# systemctl start nscd.service
2.7. 安装配置jdk
2.7.1. 安装jdk
上传jdk-8u25-linux-x64.tar.gz安装包到root根目录
# mkdir /usr/java
# tar -zxvf jdk-8u25-linux-x64.tar.gz -C /usr/java/
# rm -rf jdk-8u25-linux-x64.tar.gz
2.7.2. 各个主机之间复制jdk
# scp -r /usr/java slave1:/usr
# scp -r /usr/java slave2:/usr
2.7.3. 各个主机配置jdk环境变量
# vi /etc/environment
编辑内容:
JAVA_HOME=/usr/java/jdk1.8.0_25
JRE_HOME=/usr/java/jdk1.8.0_25/jre
# vi /etc/profile
编辑内容:
export JAVA_HOME=/usr/java/jdk1.8.0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile #使配置文件生效
# java -version #查看java版本
2.8. 配置ssh无密钥访问
分别在各个主机上检查ssh服务状态:
# systemctl status sshd.service #检查ssh服务状态
# yum install openssh-server openssh-clients #安装ssh服务,如果已安装,则不用执行该步骤
# systemctl start sshd.service #启动ssh服务,如果已安装,则不用执行该步骤
分别在各个主机上生成密钥
# ssh-keygen -t rsa #生成密钥
在slave1上
# cp ~/.ssh/id_rsa.pub ~/.ssh/slave1.id_rsa.pub
# scp ~/.ssh/slave1.id_rsa.pub master:~/.ssh
在slave2上
# cp ~/.ssh/id_rsa.pub ~/.ssh/slave2.id_rsa.pub
# scp ~/.ssh/slave2.id_rsa.pub master:~/.ssh
在master上
# cd ~/.ssh
# cat id_rsa.pub >> authorized_keys
# cat slave1.id_rsa.pub >> authorized_keys
# cat slave2.id_rsa.pub >> authorized_keys
# scp authorized_keys slave1:~/.ssh
# scp authorized_keys slave2:~/.ssh
3. 安装配置hadoop
3.1. 安装hadoop
上传hadoop-2.6.0-x64.tar.gz安装包到root根目录
# tar -zxvf hadoop-2.6.0-x64.tar.gz -C /usr
# rm -rf hadoop-2.6.0-x64.tar.gz
# mkdir /usr/hadoop-2.6.0/tmp
# mkdir /usr/hadoop-2.6.0/logs
# mkdir /usr/hadoop-2.6.0/hdf
# mkdir /usr/hadoop-2.6.0/hdf/data
# mkdir /usr/hadoop-2.6.0/hdf/name
3.1.1. 修改slaves
# vi /usr/hadoop-2.6.0/etc/hadoop/slaves
配置内容:
删除:localhost
添加:
slave1
slave2
3.1.2. 修改core-site.xml
# vi /usr/hadoop-2.6.0/etc/hadoop/core-site.xml
配置内容:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop-2.6.0/tmp</value>
</property>
</configuration>
3.1.3. 修改hdfs-site.xml
# vi /usr/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
配置内容:
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop-2.6.0/hdf/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop-2.6.0/hdf/name</value>
<final>true</final>
</property>
</configuration>
3.1.4. 修改mapred-site.xml
# cp /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml.template /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml
# vi /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml
配置内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
3.1.5. 修改yarn-site.xml
# vi /usr/hadoop-2.6.0/etc/hadoop/yarn-site.xml
配置内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
3.2. 各个主机之间复制hadoop
# scp -r /usr/hadoop-2.6.0 slave1:/usr
# scp -r /usr/hadoop-2.6.0 slave2:/usr
3.3. 各个主机配置hadoop环境变量
# vi /etc/profile
编辑内容:
export HADOOP_HOME=/usr/hadoop-2.6.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_LOG_DIR=/usr/hadoop-2.6.0/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
# source /etc/profile #使配置文件生效
3.4. 格式化namenode
# cd /usr/hadoop-2.6.0/sbin
# hdfs namenode -format
3.5. 启动hadoop
启动hdfs:
# cd /usr/hadoop-2.6.0/sbin
# start-all.sh
检查hadoop启动情况:
http://10.1.2.18:50070
http://10.1.2.18:8088/cluster
检查进程:
# jps
master主机包含ResourceManager、SecondaryNameNode、NameNode等,则表示启动成功,例如
2212 ResourceManager
2484 Jps
1917 NameNode
2078 SecondaryNameNode
各个slave主机包含DataNode、NodeManager等,则表示启用成功,例如
17153 DataNode
17334 Jps
17241 NodeManager
4. 安装配置hbase
4.1. 安装hbase
上传hbase-0.99.2-bin.tar.gz安装包到root根目录
# tar -zxvf hbase-0.99.2-bin.tar.gz -C /usr
# mkdir /usr/hbase-0.99.2/logs
4.1.1. 修改hbase-env.sh
# vi /usr/hbase-0.99.2/conf/hbase-env.sh
配置内容:
export JAVA_HOME=/usr/java/jdk1.8.0_25
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=true
4.1.2. 修改regionservers
# vi /usr/hbase-0.99.2/conf/regionservers
配置内容:
删除:localhost
添加:
master
slave1
slave2
4.1.3. 修改hbase-site.xml
# vi /usr/hbase-0.99.2/conf/hbase-site.xml
配置内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/zk-data</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<!--
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
-->
</configuration>
4.2. 各个主机之间复制hbase
# scp -r /usr/hbase-0.99.2 slave1:/usr
# scp -r /usr/hbase-0.99.2 slave2:/usr
4.3. 启动hbase
启动hbase:
# cd /usr/hbase-0.99.2/bin
# ./start-hbase.sh
检查hbase启动情况(之前版本hbase站点的端口为60010):
http://10.1.2.18:16030/master-status
http://10.1.2.53:16030/rs-status
检查进程:
# jps
master主机包含ResourceManager、SecondaryNameNode、NameNode、HQuorumPeer、HMaster等,则表示启动成功,例如
2212 ResourceManager
2999 Jps
2697 HQuorumPeer
1917 NameNode
2078 SecondaryNameNode
2751 HMaster
各个slave主机包含DataNode、NodeManager、HRegionServer、HQuorumPeer等,则表示启用成功,例如
17540 Jps
17142 NodeManager
17338 HRegionServer
17278 HQuorumPeer
17055 DataNode