1、准备linux主机环境
一、安装虚拟机
下载地址:
VMware workstation 15 Pro (附:许可证秘钥)
链接:https://pan.baidu.com/s/1I8wub6e_VzhQHU7ewi7oBA
提取码:8kpr
系统iso:CentOS7 Minimal
基本上就是下一步下一步这种简单的默认安装就好了。除了在安装过程中配置分区的时候可能需要手动分区,然后选择标准分区即可。
装好后,修改内存,因为不需要图形界面,所以只给个512M内存也没问题。并更改网络适配器为VMnet8(NAT)。
(CentOS和Windows这两台机子通过虚拟网关互联,虚拟网关由VMware workstation生成,在Windows上会生成一个虚拟网卡VMnet8,这个网卡地址和本机的物理网卡没有关系)
如果出现:
1、VMware workstation中Ubuntu16.04不能最大化屏幕问题。
2、VMware workstation与主机相互复制粘贴、文件拖拽问题
$ yum install open-vm-tools
关闭虚拟机VMware workstation,重启即可。
二、网络配置
在VMware workstation的菜单 编辑 -> 虚拟网络编辑器 可以查看和修改虚拟网关地址。
然后打开控制面板的网络连接查看VMnet8的IP地址。
如图,在我这台机子上:
虚拟网关地址:192.168.224.1
VMnet8 IP地址:192.168.224.128
运行虚拟机,进行网络配置:
1.输入 ip addr 看到我的网卡叫做eno16777736
2.输入 ls /etc/sysconfig/network-scripts/ 看到网卡ip信息的配置文件名叫做ifcfg-eno16777736
3.输入 cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 查看,可以发现虽然BOOTPROTO=dhcp,但是ONBOOT=no
(下面4-6步纯属实验性质可忽视,直接开始第7步)
4.输入 vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 将ONBOOT=no修改为yes,在此之前要先进入root模式chmod 777 文件名把文件改为可写状态。修改完毕后,cat一下看看:
5.输入 shutdown -r now 重启系统
6.重启完成后,ip addr 看到分配到的地址是192.168.224.128
下面开始进行固定ip的设置。
7.输入vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,用#将BOOTPROTO=dhcp注释,并输入以下参数,把ip地址固定写为192.168.224.128
BOOTPROTO=none
IPADDR0=192.168.224.128
PREFIX0=24
GATEWAY0=192.168.224.1
DNS1=192.168.224.1
(后来看到有BOOTPROTO=dhcp这行不注释而是改为BOOTPROTO=static,以及多配置一行NETMASK=255.255.255.0而没有DNS那行的,似乎也可以)
改正,发现还是有点问题:调整之后才通,
然后编辑/etc/resolv.conf:
8.重启网络服务
service network restart
9.验证一下
虚拟机ping www.baidu.com
主机ping虚拟机
三、修改主机名
通过xshell连接:
修改主机名方便集群间的访问
vi /etc/sysconfig/network
假设我给它起名字叫master,则输入
NETWORKING=yes
HOSTNAME=master
修改域名解析映射文件使得后续可以直接通过主机名访问,vi /etc/hosts,添加一行:IP地址 主机名
PING一波试试是否已生效
四、文件上传下载
root 账号登陆后执行以下命令:
yum install -y lrzsz
2.用说明
sz命令发送文件到本地:
#sz filename
rz命令本地上传文件到服务器:
#rz
执行该命令后,在弹出框中选择要上传的文件即可。
到此为止linux主机环境已完成。
安装jdk
一、下载解压
在主目录~下新建一个文件夹来放之后要装的所有文件比如叫做app mkdir app
从官网下载jdk包,我下载的是 jdk-8u161-linux-x64.tar.gz
使用上一步配置rz命令
rz -b -y
把刚刚的压缩包解压到这个目录下 tar -zxvf jdk-8u161-linux-x64.tar.gz -C ~/app/ (后面那个参数是由于我拖拽的时候把原压缩包放到/usr/java文件夹了所以用 -C 把它解压到指定文件夹下)
进入 app/jdk1.8.0_181/bin 目录下,./java -version 看是否成功安装
二、配置环境变量PATH
vi /etc/profile
在最末尾处添加两行
export JAVA_HOME=/app/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
(JAVA_HOME变量的值可能因人而异,不过可以进入解压的jdk目录,然后输入pwd,然后选中这串东西贴过来)
配置好了之后我们想要使它立刻生效,输入 source /etc/profile,然后输入 java -version看到能够使用。这样就已经配置好了。
启动 ssh 无密登录
开启公钥、私钥验证
sudo vi /etc/ssh/sshd_config
RSAAuthentication yes #开启私钥验证
PubkeyAuthentication yes #开启公钥验证
将集群master修改后的 /etc/ssh/sshd_config 通过 scp 命令复制发送到集群的每一个节点
scp -r /etc/ssh/sshd_config root@slave01:/etc/ssh/sshd_config
scp -r /etc/ssh/sshd_config root@slave02:/etc/ssh/sshd_config
生成公钥、私钥
在集群的每一个节点输入命令 ssh-keygen -t rsa -P ‘’,生成 key,一律回车
ssh-keygen -t rsa -P ''
cd .ssh/
touch authorized_keys
chmod 600 authorized_keys
将集群每一个节点的公钥id_rsa.pub放入到自己的认证文件中authorized_keys
cat id_rsa.pub >> authorized_keys
将自己的认证文件 authorized_keys 通过 scp 命令复制发送到每一个节点上去
scp -r /root/.ssh/authorized_keys root@slave01:/root/.ssh/authorized_keys
scp -r /root/.ssh/authorized_keys root@slave02:/root/.ssh/authorized_keys
另一种操作:(远程复制发送内容到每一个节点)
cat ~/.ssh/id_rsa.pub | ssh ytdops@10.200.3.101 'cat - >> ~/.ssh/authorized_keys'
在集群的每一个节点重启sshd
sudo systemctl restart sshd.service
验证 ssh 无密登录
例如:在master
ssh root@centos-02
安装 Hadoop
版本选择
考虑到后续需要集成hbase、hive、sqoop等项目,我们选择hadoop2.7.7
在master节点操作:
cd /app/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
tar -zxvf hadoop-2.7.7.tar.gz
环境变量
如果是对所有的用户都生效就修改vi /etc/profile 文件 如果只针对当前用户生效就修改 vi ~/.bahsrc 文件
vi /etc/profile
export PATH=${HADOOP_HOME}/bin:$PATH
export HADOOP_HOME=/app/hadoop-2.7.7/
:wq 保存
source /etc/profile 生效
效果图:
配置Hadoop
hadoop-env
cd /home/hadoop-2.7.7/etc/hadoop/
vi hadoop-env.sh (找到 JAVA_HOME 改为 JDK 的安装目录)
export JAVA_HOME=/app/jdk1.8.0_181
效果图:
core-site.xml
vi core-site.xml
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
file:/app/hadoop-2.7.7/tmp
效果图:
hdfs-site.xml
vi hdfs-site.xml
dfs.namenode.secondary.http-address
master:50090
dfs.replication
2
dfs.namenode.name.dir
file:/app/hadoop-2.7.7/tmp/dfs/name
dfs.datanode.data.dir
file:/app/hadoop-2.7.7/tmp/dfs/data
效果图:
mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
效果图:
yarn-site.xml
vi yarn-site.xml
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
效果图:
将 hadoop-2.7.7 文件夹重打包后复制到其他slave01,slave02子节点。
scp -r /home/hadoop-2.7.7 root@slave01:/home/hadoop-2.7.7
scp -r /home/hadoop-2.7.7 root@slave02:/home/hadoop-2.7.7
salve配置文件
vi hadoop-2.7.7/etc/hadoop/slaves
启动 hadoop
格式化节点
格式化namenode和datanode并启动,(在主节点master上执行就可以了 不需要在其他子节点上执行)
cd /home/hadoop-2.7.7/bin
./hadoop namenode -format
./hadoop datanode -format(可不执行)
启动 hadoop
systemctl stop firewalld.service 关闭防火墙
cd /home/hadoop-2.7.7/sbin
./start-dfs.sh
./start-yarn.sh
./mr-jobhistory-daemon.sh start historyserver
或者
./start-all.sh
./mr-jobhistory-daemon.sh start historyserver
查看进程服务
master:
slave01:
slave02:
访问master
HBase安装部署
版本选择
根据hadoop版本选择, 我们选择的hbase版本是2.1.3,下载地址:
https://hbase.apache.org/downloads.html
环境变量
vim /etc/profile
export HBASE_HOME=/app/hbase-2.1.3
export PATH=$HBASE_HOME/bin:$PATH
效果图:
vim /opt/hbase-1.2.6/conf/hbase-env.sh
export JAVA_HOME=/app/jdk1.8.0_181(jdk安装路径)
去掉注释 # export HBASE_MANAGES_ZK=true,使用hbase自带zookeeper
配置文件
vi hbase-site.xml
hbase.rootdir
hdfs://master:9000/app/hbase2.1.3/hbase_db
hbase.cluster.distributed
true
hbase.zookeeper.quorum
master,slave01,slave02
hbase.zookeeper.property.dataDir
/app/hbase2.1.3/zookeeper
效果图:
vim /app/hbase2.1.3/conf/regionservers
去掉默认的localhost
加入slave1、slave2,保存退出
效果图:
然后把在master上配置好的hbase,通过远程复制命令
scp -r /opt/hbase-1.2.6 192.168.172.72/73:/opt/hbase-1.2.6
复制到slave1、slave2对应的位置
启动与停止
(1)在Hadoop已经启动成功的基础上,输入start-hbase.sh,过几秒钟便启动完成,
输入jps命令查看进程是否启动成功,若 master上出现HMaster、HQuormPeer,
slave上出现HRegionServer、HQuorumPeer,就是启动成功了。
(2)输入hbase shell 命令 进入hbase命令模式
输入status命令可以看到如下内容,1个master,2 servers,3机器全部成功启动。
1 active master, 0 backup masters, 2 servers, 0 dead, 2.0000 average load
(3)接下来配置本地hosts,(前边配置过的无需再配置了)
编辑 C:\Windows\System32\drivers\etc的hosts文件,加入
192.168.224.130 master
192.168.224.131 slave01
192.168.224.132 slave02
在浏览器中输入http://master:16010就可以在界面上看到hbase的配置了
效果图:
(4)当要停止hbase时输入stop-hbase.sh,过几秒后hbase就会被停止了。
Hive安装部署
版本选择
根据hadoop版本选择, 我们选择的hive版本是2.3.4,下载地址:
https://hive.apache.org/downloads.html
环境变量
vim /etc/profile
export HIVE_HOME=/app/apache-hive-2.3.4-bin
export PATH=$HIVE_HOME/bin:$PATH
效果图:
配置文件
1:打开conf,准备配置文件
cp hive-env.sh.template hive-env.sh
修改HADOOP_HOME:
HADOOP_HOME=/app/hadoop-2.7.7
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
2:修改/app/apache-hive-2.3.4-bin/conf/hive-site.xml,
(把其中的${system:java.io.tmpdir}都修改成/app/apache-hive-2.3.4-bin/tmp,你也可以自己设置成自己的tmp目录)
(把${system:user.name}都换成用户名,为这里替换成了root)
3:初始化元数据数据库
(默认保存在本地的derby数据库,也可以配置成mysql),注意,不要先执行hive命令,否则这一步会出错,(注意下面的命令是在/app/apache-hive-2.3.4-bin目录下执行)
4:成功之后我们可以以客户端形式直接启动hive,如:
5:试着创建个数据库是否可以
6:这时候,还是单机版。需要启动server。
启动之前,先把端口改一下。
修改/app/apache-hive-2.3.4-bin/conf/hive-site.xml文件
hive.server2.thrift.port
10000
改成
hive.server2.thrift.port
8338
7:然后启动命令:
这时可以通过jdbc客户端连接这个服务访问hive,端口是8338.