快速搭建hadoop,zk,hbase的基礎集群
1. ZK集群,Hadoop集群,Hbase集群安裝
| Linux121 | Linux122 | Linux123 | ||
|---|---|---|---|---|
| Hadoop | ? | ? | ? | |
| MySQL | ? | |||
| ZK | ? | ? | ? | |
| HBASE | ? | ? | ? |
1.1 安裝Vmware,安裝虛擬機集群
1.1.1 安裝 (VMware-workstation-full-15.5.5-16285975)
許可證:
UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA
1.1.2 安裝 centos7






















123456


1.1.3 配置靜態IP



vi /etc/sysconfig/network-scripts/ifcfg-ens33

:wq
systemctl restart network
ip addr

ping www.baidu.com
快照
安裝jdk
mkdir -p /opt/lagou/software --軟件安裝包存放目錄
mkdir -p /opt/lagou/servers --軟件安裝目錄
rpm -qa | grep java
清理上面顯示的包名
sudo yum remove java-1.8.0-openjdk
上傳文件jdk-8u421-linux-x64.tar.gz
chmod 755 jdk-8u421-linux-x64.tar.gz
解壓文件到/opt/lagou/servers目錄下
tar -zxvf jdk-8u421-linux-x64.tar.gz -C /opt/lagou/servers
cd /opt/lagou/servers
ll
配置環境
vi /etc/profile
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_421
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
1.1.4 安裝Xmanager
連接192.168.49.121:22
密碼:123456
1.1.5 克隆2臺機器,并配置





vi /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network
ip addr
hostnamectl
hostnamectl set-hostname linux121
關閉防火墻
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
關閉selinux
vi /etc/selinux/config

三臺機器免密登錄
vi /etc/hosts

192.168.49.121 linux121
192.168.49.122 linux122
192.168.49.123 linux123

第一步: ssh-keygen -t rsa 在centos7-1和centos7-2和centos7-3上面都要執行,產生公鑰
和私鑰
ssh-keygen -t rsa
第二步:在centos7-1 ,centos7-2和centos7-3上執行:
ssh-copy-id linux121 將公鑰拷貝到centos7-1上面去
ssh-copy-id linux122 將公鑰拷貝到centos7-2上面去
ssh-copy-id linux123 將公鑰拷貝到centos7-3上面去
ssh-copy-id linux121
ssh-copy-id linux122
ssh-copy-id linux123
第三步:
centos7-1執行:
scp /root/.ssh/authorized_keys linux121:$PWD
scp /root/.ssh/authorized_keys linux122:$PWD
scp /root/.ssh/authorized_keys linux123:$PWD
三臺機器時鐘同步
sudo cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
sudo yum install ntpdate
ntpdate us.pool.ntp.org
crontab -e
*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org;
快照
1.2 安裝ZK,Hadoop,Hbase集群,安裝mysql
1.2.1 安裝hadoop集群
在/opt目錄下創建文件夾
mkdir -p /opt/lagou/software --軟件安裝包存放目錄
mkdir -p /opt/lagou/servers --軟件安裝目錄
上傳hadoop安裝文件到/opt/lagou/software
https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/
hadoop-2.9.2.tar.gz

linux121節點
tar -zxvf hadoop-2.9.2.tar.gz -C /opt/lagou/servers
ll /opt/lagou/servers/hadoop-2.9.2
yum install -y vim
添加環境變量
vim /etc/profile
##HADOOP_HOME
export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile
hadoop version
HDFS集群配置
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_421
vim core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux121:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
</property>
vim slaves
linux121
linux122
linux123
vim mapred-env.sh
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_421
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定MR運行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vi mapred-site.xml
在該文件里面增加如下配置。
<!-- 歷史服務器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux121:10020</value>
</property>
<!-- 歷史服務器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux121:19888</value>
</property>
vim yarn-env.sh
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_421
vim yarn-site.xml
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux123</value>
</property>
<!-- Reducer獲取數據的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
vi yarn-site.xml
在該文件里面增加如下配置。
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留時間設置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://linux121:19888/jobhistory/logs</value>
</property>
chown -R root:root /opt/lagou/servers/hadoop-2.9.2
分發配置
三臺都要
sudo yum install -y rsync
touch rsync-script
vim rsync-script
#!/bin/bash
#1 獲取命令輸入參數的個數,如果個數為0,直接退出命令
paramnum=$#
if((paramnum==0)); then
echo no params;
exit;
fi
#2 根據傳入參數獲取文件名稱
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 獲取輸入參數的絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 獲取用戶名稱
user=`whoami`
#5 循環執行rsync
for((host=121; host<124; host++)); do
echo ------------------- linux$host --------------
rsync -rvl $pdir/$file_name $user@linux$host:$pdir
done
chmod 777 rsync-script
./rsync-script /home/root/bin
./rsync-script /opt/lagou/servers/hadoop-2.9.2
./rsync-script /opt/lagou/servers/jdk1.8.0_421
./rsync-script /etc/profile
在namenode,linux121上格式化節點
hadoop namenode -format
ssh localhost
集群群起
stop-dfs.sh
stop-yarn.sh
sbin/start-dfs.sh

datanode可能起不來
sudo rm -rf /opt/lagou/servers/hadoop-2.9.2/data/tmp/*
hadoop namenode -format
sbin/start-dfs.sh
注意:NameNode和ResourceManger不是在同一臺機器,不能在NameNode上啟動 YARN,應該
在ResouceManager所在的機器上啟動YARN
sbin/start-yarn.sh
linux121:
sbin/mr-jobhistory-daemon.sh start historyserver
地址:
hdfs:
http://linux121:50070/dfshealth.html#tab-overview
日志:
http://linux121:19888/jobhistory
cd /opt/lagou/servers/hadoop-2.9.2
sbin/mr-jobhistory-daemon.sh stop historyserver
stop-yarn.sh
stop-dfs.sh
測試
hdfs dfs -mkdir /wcinput
cd /root/
touch wc.txt
vi wc.txt
hadoop mapreduce yarn
hdfs hadoop mapreduce
mapreduce yarn lagou
lagou
lagou
保存退出
: wq!
hdfs dfs -put wc.txt /wcinput
hadoop jar share/hadoop/mapreduce/hadoop mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput
1.2.2 安裝zk集群
上傳并解壓zookeeper-3.4.14.tar.gz
tar -zxvf zookeeper-3.4.14.tar.gz -C ../servers/
修改配置?文件創建data與log?目錄
#創建zk存儲數據?目錄
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data
#創建zk?日志?文件?目錄
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data/logs
#修改zk配置?文件
cd /opt/lagou/servers/zookeeper-3.4.14/conf
#?文件改名
mv zoo_sample.cfg zoo.cfg
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data/logs
cd /opt/lagou/servers/zookeeper-3.4.14/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#更更新datadir
dataDir=/opt/lagou/servers/zookeeper-3.4.14/data
#增加logdir
dataLogDir=/opt/lagou/servers/zookeeper-3.4.14/data/logs
#增加集群配置
##server.服務器?ID=服務器?IP地址:服務器?之間通信端?口:服務器?之間投票選舉端?口
server.1=linux121:2888:3888
server.2=linux122:2888:3888
server.3=linux123:2888:3888
#打開注釋
#ZK提供了了?自動清理理事務?日志和快照?文件的功能,這個參數指定了了清理理頻率,單位是?小時
autopurge.purgeInterval=1
cd /opt/lagou/servers/zookeeper-3.4.14/data
echo 1 > myid
安裝包分發并修改myid的值
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
./rsync-script /opt/lagou/servers/zookeeper-3.4.14
修改myid值 linux122
echo 2 >/opt/lagou/servers/zookeeper-3.4.14/data/myid
修改myid值 linux123
echo 3 >/opt/lagou/servers/zookeeper-3.4.14/data/myid
依次啟動三個zk實例例
啟動命令(三個節點都要執?行行)
/opt/lagou/servers/zookeeper-3.4.14/bin/zkServer.sh start
查看zk啟動情況
/opt/lagou/servers/zookeeper-3.4.14/bin/zkServer.sh status
集群啟動停?止腳本
vim zk.sh
#!/bin/sh
echo "start zookeeper server..."
if(($#==0));then
echo "no params";
exit;
fi
hosts="linux121 linux122 linux123"
for host in $hosts
do
ssh $host "source /etc/profile; /opt/lagou/servers/zookeeper-3.4.14/bin/zkServer.sh $1"
done
chmod 777 zk.sh
./zk.sh start
./zk.sh stop
./zk.sh status
1.2.3 安裝Hbase集群(先啟動Hadoop和zk才能啟動Hbase)
解壓安裝包到指定的規劃目錄 hbase-1.3.1-bin.tar.gz
tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/lagou/servers
修改配置文件
把hadoop中的配置core-site.xml 、hdfs-site.xml拷貝到hbase安裝目錄下的conf文件夾中
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/lagou/servers/hbase-1.3.1/conf/core-site.xml
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/lagou/servers/hbase-1.3.1/conf/hdfs-site.xml
修改conf目錄下配置文件
cd /opt/lagou/servers/hbase-1.3.1/conf
vim hbase-env.sh
#添加java環境變量
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_421
#指定使用外部的zk集群
export HBASE_MANAGES_ZK=FALSE
vim hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存儲的路徑 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://linux121:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多個用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>linux121:2181,linux122:2181,linux123:2181</value>
</property>
</configuration>
vim regionservers
linux121
linux122
linux123
vim backup-masters
linux122
vim /etc/profile
export HBASE_HOME=/opt/lagou/servers/hbase-1.3.1
export PATH=$PATH:$HBASE_HOME/bin
分發hbase目錄和環境變量到其他節點
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
./rsync-script /opt/lagou/servers/hbase-1.3.1
./rsync-script /etc/profile
讓所有節點的hbase環境變量生效
在所有節點執行 source /etc/profile
cd /opt/lagou/servers/hbase-1.3.1/bin
HBase集群的啟動和停止
前提條件:先啟動hadoop和zk集群
啟動HBase:start-hbase.sh
停止HBase:stop-hbase.sh
HBase集群的web管理界面
啟動好HBase集群之后,可以訪問地址:HMaster的主機名:16010
linux121:16010
1.2.4 安裝mysql
卸載系統自帶的mysql
rpm -qa | grep mysql
rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
安裝mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
安裝mysql 服務器
yum -y install mysql-community-server
啟動服務
service mysqld start
如果出現:serivce: command not found
安裝service
yum install initscripts
配置數據庫
設置密碼
/usr/bin/mysqladmin -u root password '123'
# 進入mysql
mysql -uroot -p123
# 清空 mysql 配置文件內容
>/etc/my.cnf
修改
vi /etc/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
重啟查看,授權遠程連接
service mysqld restart
mysql -uroot -p123
show variables like 'character_set_%';
# 給root授權:既可以本地訪問, 也可以遠程訪問
grant all privileges on *.* to 'root'@'%' identified by '123' with grant
option;
# 刷新權限(可選)
flush privileges;
快照
圖片不顯示無傷大雅,就是示例,步驟都在。
非常重要:
如果后續需要接入spark,flink,hive,需要提前找到匹配的版本,這是原生部署的通病。
如果服務器資源足夠,建議直接使用cdh部署。
浙公網安備 33010602011771號