*Mac传送文件到虚拟机方法:
-
连接主机如下:
-
传输文件:
scp 文件位置及文件名 root@IP地址:需要存储文件的位置
1.配置NAT网络
注意:将vm的网络适配器改成NAT模式
-
编辑
/etc/sysconfig/network-scripts/ifcfg-ens33 文件
-
修改为: BOOTPROTO=static
ONBOOT=yes
( 以下配置为自己电脑的IP或网关之类)
-
在末尾加入:
IPADDR=192.168.46.101 (最后101为自己随意取) NETWORK=255.255.255.0 GATEWAY=192.168.46.2 DNS1=202.101.224.69 DNS2=202.101.224.68
-
重启网络:
service network restart
-
验证:ping www.baidu.com
ping 192.168.46.2
最终配置结果如下:
进入Mac终端查看:进入cd /Library/Preferences/VMware\ Fusion/vmnet8,打开nat.conf,查看 ip和network,(ip= 上面的 GATEWAY);在网络偏好设置中查看DNS即可。
2. 修改主机名(三台主机分别操作)
hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
bash //立刻生效
3.配置host文件(三台主机都操作)注意保存退出
vi /etc/hosts
192.168.46.101 master
192.168.46.102 slave1
192.168.46.103 slave2
4. 关闭防火墙(三台主机都操作)
查看防火墙状态:systemctl status firewalld
看到active (running) 意味着开启
看到inactive (dead) 意味着关闭
临时:
- 开启:systemctl start firewalld
- 关闭:systemctl stop firewalld
永久:
- 关闭:systemctl disable firewalld
- 开启:systemctl enable firewalld
重启:firewall-cmd --reload
5.时间同步
可以使用date查看自己机器的时间
选择时区:tzselect
1. 下载ntp(三台主机都操作)
∙ yum install –y ntp
2.设置时间钟(master操作)
vi /etc/ntp.conf
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #stratum 设置为其它值也是可以的,其范围为 0~15
3.重启ntp服务(master操作)
/bin/systemctl restart ntpd.service
其他机器同步(slave1、slave2操作)
ntpdate master
*这里开始克隆虚拟机
并更改:1. 新的网络IP 2.主机名
6.配置ssh免密
(1).每个结点分别产生公私密钥:(三台机器都操作)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
秘钥产生目录在用户主目录下的.ssh目录中,进入相应目录查看:cd .ssh/
(2).Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件:(仅在master机器上操作)
cat id_dsa.pub >> authorized_keys
(注意在.ssh/路径下操作)
在主机上连接自己,也叫做ssh内回环。
ssh master
(3). 让主结点master能通过SSH免密码登录两个子结点slave。(分别在slave1和slave2中操作)
cd .ssh/
scp master:~/.ssh/id_dsa.pub ./master_dsa.pub
将master结点的公钥文件追加至authorized_keys文件。
cat master_dsa.pub >> authorized_keys
这时,master就可以连接slave1了。
Slave2也是这样的操作
7. 安装JDK
(1)首先创建jdk的工作路径/usr/java
cd /usr
mkdir java
tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz -C /usr/java
(2)修改环境变量
vi /etc/profile
添加内容如下:
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
生效环境变量:
source /etc/profile
查看java版本:
java -version
(3)远程分发
在master节点操作成功后可以使用远程复制命令将JDK远程复制到slave1和slave2节点在中:(此命令在master中操作)
scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/
(4)配置slave1、slave2环境变量(slave1、slave2都操作)
修改环境变量:
vi /etc/profile
添加内容如下:
#jdk环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
生效环境变量:
source /etc/profile
查看jdk版本:
java -version
8. 安装zookeeper
(1)修改主机名称到IP地址映射配置(三台主机都操作) 注意IP地址
vi /etc/hosts
192.168.46.101 master master.root
192.168.46.102 slave1 slave1.root
192.168.46.103 slave2 slave2.root
(2)创建zookeeper工作环境(master中操作)
∙ cd /usr
∙ mkdir -p /usr/zookeeper
(3)解压zookeeper到刚刚创建的文件夹中(master中操作)
tar -zxvf /opt/soft/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/
(4)修改配置文件(master中操作)
配置文件conf/zoo.cfg,用cd命令进入zookeeper-3.4.10/conf目录下,将zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg”
cd /usr/zookeeper/zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg
zoo.cfg文件配置(添加如下内容)
vi zoo.cfg
(编辑zoo.cfg文件)
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
(5)创建zkdata和zkdatalog两个文件夹
在zookeeper-3.4.10下,创建zkdata和zkdatalog两个文件夹。zkdatalog文件夹,是为了指定zookeeper产生日志指定相应的路径。
∙ mkdir zkdata zkdatalog
进入zkdata文件夹,创建文件myid(并编辑为1)
cd zkdata
vi myid
(6)远程复制分发安装文件
上面已经在一台机器master上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:
∙ scp -r /usr/zookeeper root@slave1:/usr/
∙ scp -r /usr/zookeeper root@slave2:/usr/
(7)设置myid(分别在slave1、slave2上操作)
cd /usr/zookeeper/zookeeper-3.4.10/zkdata
slave1中为2;
slave2中为3;
(8)配置环境变量并启动ZooKeeper。(三台主机都操作)
vi /etc/profile
添加如下内容:
#set zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
PATH=$PATH:$ZOOKEEPER_HOME/bin
生效:
source /etc/profile
(9)启动zookeeper集群
在zookeeper-3.4.10文件下,(确保当前防火墙为关闭状态systemctl status firewalld查看)
若防火墙为开启状态,通过systemctl stop firewalld关闭后启动
cd /usr/zookeeper/zookeeper-3.4.10/
启动:
bin/zkServer.sh start
查看状态:
bin/zkServer.sh status
查看进程是否启动:jps
停止zookeeper :
停止zookeeper: bin/zkServer.sh stop
master中:
slave1中:
slave2中:
通过上面状态查询结果可见,一个节点是Leader,其余的结点是Follower。
9. 安装Hadoop
*注意:这里的master 和slave1,slave2的环境变量配置不一样
(1)创建Hadoop工作路径(在master节点上操作)
cd /usr
mkdir hadoop
(2)解压Hadoop到相应目录中
tar -zxvf /opt/soft/hadoop-2.7.3.tar.gz -C /usr/hadoop/
(3)解压后配置环境变量
vi /etc/profile
添加如下内容:
#Hadoop环境变量
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin
生效环境变量:
source /etc/profile
(4)修改相关配置文件
①添加jdk环境变量到hadoop-env.sh文件
cd /usr/hadoop/hadoop-2.7.3/etc/hadoop/
vi hadoop-env.sh
添加如下内容
export JAVA_HOME=/usr/java/jdk1.8.0_171
②编辑core-site.xml文件,并将内容添加到里面
vi core-site.xml
添加如下内容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
</configuration>
③编辑yarn-site.xml文件
vi yarn-site.xml
添加如下内容
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>
④编写slaves文件
vi slaves
添加如下内容
⑤编写master文件
vi master
添加如下内容
⑥编辑hdfs-site.xml文件
vi hdfs-site.xml
添加如下内容
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
⑦编辑mapred-site.xmll文件
但是文件夹内并没有mapred-site.xml这个文件所以我们需要使用cp命令将mapred-site.xml.template 复制为 mapred-site.xml:
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
然后添加如下内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
⑧分发Hadoop
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
⑨配置slave1、slave2的环境变量(slave1、slave2中操作)
vi /etc/profile
添加如下环境变量
#hadoop环境变量
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效:
source /etc/profile
⑩格式化Hadoop并开启集群(master中操作)
输入如下命令进行hadoop的格式化操作
hadoop namenode -format
格式化成功如下图:
格式化成功后,回到/usr/hadoop/hadoop-2.7.3目录下,然后使用sbin/start-all.sh 命令开启hadoop集群
(master操作)
cd /usr/hadoop/hadoop-2.7.3
启动:sbin/start-all.sh
停止:sbin/stop-all.sh
在master节点输入jps查看进程:
在slave1节点输入jps查看进程:
在slave2节点输入jps查看进程:
访问主节点master:50070
hadoop脚本命令练习
查看dfs根目录文件:
hadoop fs -ls /
在hdfs上创建文件data :
hadoop fs -mkdir /data
再次进行查看:
hadoop fs -ls /
也可以使用浏览器对集群进行查看。依次进入“Utilities”->“Browse the file system”
10. hbase安装
①先创建hbase工作路径(master中操作)
cd /usr
mkdir hbase
②解压hbase
tar -zxvf /opt/soft/hbase-1.2.4-bin.tar.gz -C /usr/hbase
③修改配置文件
cd /usr/hbase/hbase-1.2.4/conf
修改配置文件:conf/hbase-env.sh
vi hbase-env.sh
添加如下内容
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/java/jdk1.8.0_171
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/Hadoop
配置conf/hbase-site.xml
vi 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.master</name>
<value>hdfs://master:6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/zookeeper/zookeeper-3.4.10</value>
</property>
</configuration>
配置conf/regionservers
vi regionservers
添加如下内容
.hadoop配置文件拷入hbase的目录下
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml /usr/hbase/hbase-1.2.4/conf
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml /usr/hbase/hbase-1.2.4/conf
分发hbase
scp -r /usr/hbase root@slave1:/usr/
scp -r /usr/hbase root@slave2:/usr/
配置环境变量
vi /etc/profile
添加如下内容
# set hbase environment
export HBASE_HOME=/usr/hbase/hbase-1.2.4
export PATH=$PATH:$HBASE_HOME/bin
生效环境变量:
source /etc/profile
运行和测试(在master中操作)
cd /usr/hbase/hbase-1.2.4
启动:start-hbase.sh
停止: stop-hbase.sh
Jps查看主节点进程
访问master的hbase web界面
http: //master IP:16010/master-status
进hbase 交互界面,查看状态与版本(/usr/hbase/hbase-1.2.4目录下)(master中操作)
cd /usr/hbase/hbase-1.2.4
hbase shell
通过exit退出
11.数据仓库构建
1.Slave2上安装mysql server
yum -y install wget
下载MySQL源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装MySql源
yum -y install mysql57-community-release-el7-11.noarch.rpm
安装MySQL服务器
yum install mysql-community-server
2.启动服务
∙ 重载所有修改过的配置文件:
systemctl daemon-reload
∙ 开启服务:
systemctl start mysqld
∙ 开机自启:
systemctl enable mysqld
- 安装完毕后会生成一个随机密码,获得后登入
∙ 获取初密码:
grep "temporary password" /var/log/mysqld.log
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAnetRFG-1617926788286)(https://i.loli.net/2021/04/08/pfAvNkztQ2JTwcK.png)]
∙ 登陆(注意中英文)
mysql -uroot -p
.MySQL密码安全策略设置:
∙ 设置密码强度为低级:
set global validate_password_policy=0;
∙ 设置密码长度:
set global validate_password_length=4;
∙ 修改本地密码:
alter user 'root'@'localhost' identified by '123456';
∙ 退出:
\q
设置远程登录
∙ 以新密码登陆MySQL:
mysql -uroot -p123456
∙ 创建root用户:
create user 'root'@'%' identified by '123456';
∙ 添加远程登录用户:
grant all privileges on *.* to 'root'@'%' with grant option;
∙ 刷新权限:
flush privileges;
安装hive
master、slave1上创建工作路径,解压hive(master、slave1上操作)
cd \usr
mkdir hive
tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
通过master远程将hive发送到slave1中(master中操作)
scp -r /usr/hive/ root@slave1:/usr/hive/
修改/etc/profile文件设置hive环境变量。(master和slave1都执行)
vi /etc/profile
添加如下内容
#set hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
生效环境变量:
source /etc/profile
slave1作为hive server,进行配置
首先slave2中进行如下操作:(slave2中)
∙ 查看lib:
ls /lib
cd /lib
上传依赖包:
这里 rz :为上传依赖包,如果此方法上传不了,就直接使用 Finlashell 上传该文件
远程复制依赖包到slave1:
scp /lib/mysql-connector-java-5.1.47-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib
回到slave1,修改hive-env.sh文件中HADOOP_HOME环境变量。进入hive配置目录,因为hive中已经给出配置文件的范本hive-env.sh.template,直接将其复制一个进行修改即可:
cd $HIVE_HOME/conf
ls
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
hive-env.sh文件中修改HADOOP_HOME环境变量,内容如下:
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
3.修改hive-site.xml文件
vi hive-site.xml
添加内容如下:
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>
master作为客户端,进行配置
解决版本冲突和jar包依赖问题。
由于客户端需要和Hadoop通信,所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包,从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
\2. 修改hive-env.sh中HADOOP_HOME环境变量:
cd /usr/hive/apache-hive-2.1.1-bin/conf
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
3.修改hive-site.xml:
vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>
12.启动hive
\1. slave1作为服务器端,开启hive server。
cd /usr/hive/apache-hive-2.1.1-bin/
bin/hive --service metastore
\2. master作为客户端,启动hive。(master中操作)
cd /usr/hive/apache-hive-2.1.1-bin/
bin/hive
测试hive是否启动成功:
show databases;
3.最后复制一个master,查看其进程如下:
jps
停止运行:ctrol+z