分布式笔记
1.配置网络,设置静态IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.87.130
NETMASK=255.255.255.0
GATEWAY=192.168.87.2
DNS1=192.168.87.2
提示:init 3 命令行模式 init 5 桌面模式
2.配置主机名(所有虚拟机都需要设置)
vi /etc/hostname
或
hostnamectl set-hostname master
3.配置主机名映射表(所有虚拟机都需要设置)
vi /etc/hosts
添加如下内容:#以table分隔
192.168.87.130 master
192.168.87.131 slave01
192.168.87.132 slave02
4.免密登录(都是在master上进行)
生成秘钥 ssh-keygen -t rsa
添加秘钥 ssh-copy-id -i root@master
ssh-copy-id -i root@slave01
ssh-copy-id -i root@slave02
5.安装jdk(所有虚拟机都需要安装)
解压:tar -zxvf software/jdk-8u112-linux-x64.tar.gz
改名:mv jdk1.8.0_112/ jdk
6.安装hadoop(在master操作)
解压:tar -zxvf software/hadoop-3.2.1.tar.gz
改名:mv hadoop-3.2.1.tar.gz / hadoop
7.配置环境变量与权限
vi /etc/profile.d/hadoop-eco.sh
#添加如下内容
#权限问题
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
#环境变量
JAVA_HOME=/opt/jdk
PATH=$JAVA_HOME/bin:$PATH
HADOOP_HOME=/opt/hadoop
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
8.配置Hadoop是配置文件
(1)hadoop-env.sh
export JAVA_HOME=/opt/jdk
(2) core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///opt/hadoop/hadoop-record/tmp</value>
</property>
</configuration>
(3) hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop/hadoop-record/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoop/hadoop-record/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
</configuration>
(4)mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
(5)yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
(7)workers (slaves)
slave01
slave02
9.远程拷贝(jdk、hadoop、环境变量、主机名映射表)
#拷贝jdk
scp -r /opt/jdk/ root@slave01:/opt/
scp -r /opt/jdk/ root@slave02:/opt/
#拷贝hadoop
scp -r /opt/hadoop/ root@slave01:/opt/
scp -r /opt/hadoop/ root@slave02:/opt/
#环境变量
scp -r /etc/profile.d/hadoop-eco.sh root@slave01:/etc/profile.d/
scp -r /etc/profile.d/hadoop-eco.sh root@slave02:/etc/profile.d/
#主机名映射表
scp -r /etc/hosts root@slave01:/etc/
scp -r /etc/hosts root@slave02:/etc/
10.重启所有机器
11.格式化namenode
hdfs namenode -format
12.启动集群
start-dfs.sh
start-yarn.sh
或
start-all.sh
12.验证
IP:9870
IP:8088
IP:19888 服务需要启动:mapred --daemon start historyserver
ZooKeeper安装
1.配置Zookeeper环境
解压:
opt]# tar -zxvf soft/zookeeper-3.4.5.tar.gz
修改下文件夹名
mv zookeeper-3.4.5/ zookeeper/
配置环境变量
vi /etc/profile.d/hadoop-eco.sh 添加一下内容
ZOOKEEPER_HOME=/opt/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
2.对zk进行配置:
cp zoo_sample.cfg zoo.cfg
对zoo.cfg配置文件进行修改
dataDir=/opt/zookeeper/data
server.100=master:2888:3888
server.101=worker01:2888:3888
server.102=worker02:2888:3888
创建文件夹:
cd /opt/zookeeper/
mkdir -m 777 data
在data文件夹下新建myid文件,myid的文件内容为:编号
touch data/myid
echo 100 > data/myid
cat data/myid
3. 远程拷贝到其他机器
scp -r zookeeper/ root@worker01:/opt/
scp -r zookeeper/ root@worker02:/opt/
在其基础之上修改myid
4.启动Zookeeper
zkServer.sh start|status|stop
Kafka安装
1.下载安装包
http://archive.apache.org/dist/kafka/
2.解压
tar -zxvf software/kafka_2.12-2.4.1.tgz
3.重命名
mv kafka_2.12-2.4.1/ kafka
4.配置环境变量
vi /etc/profile.d/hadoop-eco.sh
KAFKA_HOME=/opt/kafka
PATH=$KAFKA_HOME/bin:$PATH
5.修改配置文件:server.properties
#配置broker.id,在集群环境中broker.id是唯一的,不可重复
broker.id=0 (注意编号)
#kafka log数据的存放目录
log.dirs=/opt/kafka/data
#zookeeper服务地址
zookeeper.connect=master:2181,worker01:2181,worker02:2181
6. 远程拷贝到其他机器
scp -r kafka/ root@worker01:/opt/
scp -r kafka/ root@worker02:/opt/
7.启动集群
(1)先启动ZooKeeper集群(所有节点都需要启动)
zkServer.sh start
zkServer.sh status
(2)再启动Kafka集群(所有节点都需要启动)
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
(3)测试kafka
创建topic
kafka-topics.sh --zookeeper master:2181 --create --topic message --partitions 1 --replication-factor 2
一)HBase安装
1.配置HBase
(1)上传HBase压缩文件到soft目录。
(2)解压HBase压缩文件到opt目录,并将hbase-2.2.3-bin.tar.gz目录变为hbase。
cd /opt
tar -zxvf soft/hbase-2.2.3-bin.tar.gz
mv hbase-2.2.3 hbase
(3)配置环境变量。
a.vi /etc/profile.d/hadoop-eco.sh
在hadoop-eco.sh中追加相关内容后,保存并退出。追加的内容如下:
HBASE_HOME=/opt/hbase
PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH
b.source /etc/profile.d/hadoop-eco.sh
使环境变量生效。
(4)修改配置文件。
启动HBase需先在hbase/conf/目录下修改配置文件:
a.修改hbase-env.sh配置文件
vi hbase-env.sh
在hbase-env.sh中修改相关内容,修改内容如下:
export JAVA_HOME=/opt/jdk
export HBASE_MANAGES_ZK=true
【说明】
当前环境中我们安装了zookeeper集群,所以将HBASE_MANAGES_ZK=true。
b.修改hbase-site.xml配置文件
vi hbase-site.xml
在hbase-site.xml中添加相关配置,添加配置如下:
<configuration>
<!--这个目录是region server的共享目录,用来持久化HBase。-->
<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</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zookeeper(添加了一个路径)/data</value>
</property>
<!-- V2.1版本,在分布式情况下, 设置为false -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>(容易忘)
<value>false</value>
</property>
</configuration>
c.修改regionservers配置文件
vi regionservers
在regionservers中配置相关从机地址,配置如下:
slave01
slave02
(5)将hbase文件夹和hadoop-eco.sh文件远程拷贝文件到从机相应的目录,并使环境变量生效,命令如下。
scp -r /opt/hbase/ root@slave01:/opt/hbase/
scp -r /opt/hbase/ root@slave02:/opt/hbase/
scp /etc/profile.d/hadoop-eco.sh root@slave01:/etc/profile.d/hadoop-eco.sh
scp /etc/profile.d/hadoop-eco.sh root@slave02:/etc/profile.d/hadoop-eco.sh
【注意】
source /etc/profile.d/hadoop-eco.sh
2.启动HBase
start-hbase.sh
3.查看集群信息
在浏览器中http://master:16010/master-status地址,查看集群信息。
一)HIVE安装
1.本次课程将进行Hive的安装。与安装Hadoop相比,Hive的安装非常简单,并且有些工作已经在安装Hadoop的时候完成,
例如:JDK的安装。并且Hive作为Hadoop的一个客户端,运行方式并不分为单机模式,伪分布模式,完全分布模式,所以不管Hadoop选择为伪分布模式或者完全分布模式,安装Hive的方式只有一种。安装Hive的步骤分为以下两步:
(1)安装元数据库。
(2)修改Hive配置文件。
2.Hive的安装
1)安装元数据库,Hive自带的Derby数据库,但由于Derby只支持同时一个用户访问Hive,所以不推荐使用。因此我们将使用MySql作为Hive的元数据库,安装MySql服务端与客户端步骤如下:
见MySQL安装文档
2)修改Hive配置文件。
(1)解压
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive
(2)解决guava版本问题,找hadoop
rm -rf /opt/hive/lib/guava-19.0.jar
cp /opt/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/hive/lib/
(3)拷贝mysql连接数据库的jar
上传mysql-connector-java-5.1.32到/opt/hive/lib
(4)在“/opt/hive/conf”目录下拷贝“hive-default.xml.template”与“hive-env.sh.template”
两个文件,并将拷贝后文件的名称分别变为“hive-site.xml”与“hive-env.sh”。
输入:cd /opt/hive/conf
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh
(5)配置“ hive-env.sh”文件
输入:vi hive-env.sh
在hive-env.sh中配置相关内容后,保存并退出。配置的内容如下:
HADOOP_HOME=/opt/hadoop
export HIVE_CONF_DIR=/opt/hive/conf
export HIVE_AUX_JARS_PATH=/opt/hive/lib
(6)配置“ hive-site.xml”文件(本地模式)
输入:vi hive-site.xml
在hive-site.xml文件中修改相关配置内容,修改如下:
修改属性“javax.jdo.option.ConnectionURL”的值为“jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8”,
修改属性“javax.jdo.option.ConnectionDriverName”的值为“com.mysql.jdbc.Driver”,
修改属性“javax.jdo.option.ConnectionUserName”的值为“root”,
修改属性“javax.jdo.option.ConnectionPassword”的值为“123456”,
修改属性“hive.metastore.event.db.notification.api.auth”的值为“false”,
修改属性“hive.metastore.schema.verification”的值为“false”
修改属性“hive.querylog.location”的值为“/opt/hive/tmp”,
修改属性“hive.exec.local.scratchdir”的值为“/opt/hive/tmp”,
修改属性“hive.downloaded.resources.dir”的值为“/opt/hive/tmp”。
【远程模式】
修改属性“hive.server2.thrift.bind.host”的值为“master”。
修改属性“hive.metastore.uris”的值为“thrift://master:9083”。
注意:在3215 行有特殊字符 注意处理
(4) 配置环境变量
HIVE_HOME=/opt/hive
PATH=$HIVE_HOME/bin:$PATH
3.初始化Hive元数据仓库
(1)对Hive元数据仓库进行初始化,
在“/opt/hive/bin”目录下输入如下命令初始元数据仓库,命令如下:
输入: ./schematool -initSchema -dbType mysql -userName root -passWord 123456
4.启动Hive
(1)启动Hadoop
Hive的启动依赖于Hadoop的启动,因此必须先启动Hadoop。
(2)启动Hive,命令如下,启动后如图1.11所示。
输入:hive
5.验证安装环境
输入:show databases;
6.远程模式Metastore服务手动启动【远程添加】
#前台启动 关闭ctrl+c
hive --service metastore
#后台启动 进程挂起 关闭使用jps + kill
#输入命令回车执行 再次回车 进程将挂起后台
nohup hive --service metastore &
#前台启动开启debug日志
hive --service metastore --hiveconf hive.root.logger=DEBUG,console
FLUME安装
1.解压
tar -zxvf software/apache-flume-1.9.0-bin.tar.gz
2.改名
mv apache-flume-1.9.0-bin/ flume
3.修改配置文件
cp flume-env.sh.template flume-env.sh
vi flume-env.sh
export JAVA_HOME=/opt/jdk
4.启动
bin/flume-ng agent -c conf -f /opt/flume/conf/example.conf --name a1 -Dflume.root.logger=INFO,console
FLINK安装
1、将Flink包解压到路径/opt/module路径中
tar -zxvf /opt/software/flink-1.14.0-bin-scala_2.12.tgz -C /opt/
mv flink-1.14.0 flink
2、修改容器中/etc/profile文件,设置Spark环境变量
vi /etc/profile,在文件末尾新增以下内容
# FLINK
export FLINK_HOME=/opt/module/flink
export PATH=$FLINK_HOME/bin:$PATH
export HADOOP_CLASSPATH=`hadoop classpath`
环境变量设置后退出vi编辑器并使其生效
source /etc/profile
在容器中/opt目录下运行命令flink --version查看版本内容
[root@master ~]# flink --version
Version: 1.14.0, Commit ID: 460b386
3、配置文件flink-conf.yaml
vi /opt/module/flink-1.14.0/flink-conf.yaml,添加如下内容
classloader.check-leaked-classloader: false
在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar
[root@master ~]# flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar
spark
1、将Spark包解压到路径/opt/module路径中
tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/
修改spark文件夹名称
cd /opt/module
mv spark-3.1.1-bin-hadoop3.2/ spark/
2、修改容器中/etc/profile文件,设置Spark环境变量
vi /etc/profile,在文件末尾新增以下内容
# SPARK
export SPARK_HOME=/opt/module/spark
export PATH=$SPARK_HOME/bin:$PATH
环境变量设置后退出vi编辑器并使其生效
source /etc/profile
spark-submit --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.1.1
/_/
Using Scala version 2.12.10, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_212
Branch HEAD
3、修改hadoop配置文件yarn-site.xml,添加如下内容:
输入:vi yarn-site.xml
添加如下内容:
<!--是否启动一个线程检查每个任务使用的物理内存量,如果任务超出分配值, 则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务使用的虚拟内存量,如果任务超出分配值, 则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
4、修改spark-env.sh,添加如下配置:
输入:vi spark-env.sh
添加如下内容:
export YARN_CONF_DIR=/opt/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
5、拷贝上述配置文件到其他机器
scp -r /opt/spark root@slave01:/opt/
scp -r /opt/spark root@slave02:/opt/
6、启动
/export/server/hadoop/sbin/start-yarn.sh
CLICKHOUSE
tar -xzvf "clickhouse-common-static-22.3.2.2.tgz"
tar -xzvf "clickhouse-common-static-dbg-22.3.2.2.tgz"
tar -xzvf "clickhouse-server-22.3.2.2.tgz"
tar -xzvf "clickhouse-client-22.3.2.2.tgz"
for i in $(ls /opt/software/clickhouse/*.tgz);do tar -zxvf $i -C /opt/clickhouse;done
/opt/clickhouse/clickhouse-client-21.9.4.35/install/doinst.sh
/opt/clickhouse/clickhouse-common-static-21.9.4.35/install/doinst.sh
/opt/clickhouse/clickhouse-common-static-dbg-21.9.4.35/install/doinst.sh
/opt/clickhouse/clickhouse-server-21.9.4.35/install/doinst.sh
clickhouse --help
clickhouse start
clickhouse-client --user default --password 123456
配置文件
cd /etc/clickhouse-service
日志
cd /var/log/clickhouse-service
数据
cd /var/lib/clickhouse