第一章hadoop-3.3.1伪分布式集群安装 1、机器环境: 本地系统:windows 10 虚拟机:VMware Workstation Pro16 虚拟系统:Centos 7 已配通NAT SSH工具:MobaXterm Hadoop版本: 3.3.1 Java版本: JDK1.8 2、登录hadoop账号并检查SSH安装情况 输入su hadoop以登录hadoop账号。 输入ssh localhost,以下情况代表已安装SSH且可使用。 3、配置SSH免密登录,输入以下指令: [hadoop@local root]$cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost [hadoop@local root]$ssh-keygen -t rsa # 出现输入提示,都按回车就可以 之后输入: [hadoop@local root]$cat id_rsa.pub >> authorized_keys # 加入授权 [hadoop@local root]$chmod 600 ./authorized_keys # 修改文件权限 4、安装Java环境: 安装JDK命令: [hadoop@local ~]#cd /usr/local [hadoop@local local]#yum install jdk-8u301-linux-x64. 检查Java版本命令: [root@hadoop1 local]#java -version openjdk version "1.8.0_262" OpenJDK Runtime Environment (build 1.8.0_262-b10) OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode) 配置Java_HOME环境变量: [hadoop@local local]#vim ~/.bashrc #编辑环境变量文件 输入环境变量保存并退出: export JAVA_HOME=/usr/lib/jvm/jdk-8u301-linux-x64. 输入命令使变量设置生效: [hadoop@local local]#source ~/.bashrc [hadoop@local local]#echo $JAVA_HOME 5、Hadoop安装 (1)提前下载好Hadoop安装包,用MobaXterm上传到Hadoop1的/usr/local/目录下 (2)在上传的目录解压Hadoop-3.3.1 [hadoop@local ~]#Cd /usr/local/ #进入上传Hadoop-3.3.1的目录下 [hadoop@local local]#tar -zxf ~/hadoop-3.3.1.tar.gz (3)检查Hadoop是否可用。 [hadoop@local local]#cd /usr/local/hadoop-3.3.1 [hadoop@local local]#./bin/hadoop version 6、Hadoop伪分布式配置 (1)配置Hadoop环境变量 [hadoop@local local]#vi ~/.bashrc 在文件JAVA_HOME变量下面加入HADOOP_HOME内容,保存并退出: export HADOOP_HOME=/usr/local/hadoop-3.3.1 export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 重启配置生效: [hadoop@local local]#source ~/.bashrc (2)修改配置文件: Hadoop配置文件位于/usr/local/hadoop-3.3.1/etc/hadoop/ <configuration> <name>fs.defaultFS</name> <value>hdfs://siqi01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/Hadoop-3.3.1/tmp</value> </property> </configuration> ② 修改hdfs-site.xml文件内容为: <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.http-address</name> <value>siqi01:9870</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/Hadoop-3.3.1/hdfs/data</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/Hadoop-3.3.1/hdfs/name</value> </property> </configuration> ③ 修改yarn-site.xml文件内容为: <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>siqi01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ④ 修改mapred-site.xml文件内容为: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value> /usr/local/hadoop-3.3.1/etc/hadoop, /usr/local/hadoop-3.3.1/share/hadoop/common/*, /usr/local/hadoop-3.3.1/share/hadoop/common/lib/*, /usr/local/hadoop-3.3.1/share/hadoop/hdfs/*, /usr/local/hadoop-3.3.1/share/hadoop/hdfs/lib/*, /usr/local/hadoop-3.3.1/share/hadoop/mapreduce/*, /usr/local/hadoop-3.3.1/share/hadoop/mapreduce/lib/*, /usr/local/hadoop-3.3.1/share/hadoop/yarn/*, /usr/local/hadoop-3.3.1/share/hadoop/yarn/lib/* </value> </property> </configuration> ⑤ 配置环境变量 hadoop-env.sh: 在第54行左右,将 # export JAVA_HOME = 修改为: export JAVA_HOME=/usr/lib/jvm/java-1.8.0_262/ ⑥ 配置环境变量 yarn-env.sh: export JAVA_HOME=/usr/lib/jvm/java-1.8.0_262/ ⑦ 配置/etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0_262 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/usr/local/hadoop-3.2.1 export HADOOP_PREFIX=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin 最后:执行 source /etc/profile 让配置立即生效。 (3)、修改hosts文件ip地址要与主机对应好。 [root@hadoop1 ~]#vim /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.48.143 hadoop1 192.168.48.144 hadoop2 192.168.48.145 hadoop3 (4)、关闭防火墙: [root@hadoop1 ~]#systemctl stop firewalld.service [root@hadoop1 ~]#systemctl disable firewalld.service [root@hadoop1 ~]#systemctl status firewalld (5)、配置Hadoop1到Worker单向免密登录: ssh-copy-id hadoop2 ssh-copy-id hadoop3 测试SSH免密连接 ssh hadoop2 ssh hadoop3 (6)、 配置workers信息: [root@hadoop1 ~]#vim /usr/local/hadoop-3.2.1/etc/hadoop/workers 添加内容:hadoop1 hadoop2 hadoop3 (7) 、配置三台机器Hadoop 启动的系统环境变量: [root@hadoop1 ~]#vim ~/.bash_profile 添加: export HADOOP_HOME=/usr/local/hadoop-3.3.1 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 生效命令: [root@hadoop1 ~]#source ~/.bash_profile (8)、为三台机器创建数据目录: [root@hadoop1 ~]#mkdir -p /usr/local/hadoop-3.3.1/data/tmp (9)、修改启动脚本,分别修改 start-dfs.sh , stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容: [root@hadoop1 ~]#cd /usr/local/hadoop-3.3.1/sbin [root@hadoop1 sbin]#vi start-dfs.sh [root@hadoop1 sbin]#vi stop-dfs.sh 添加: HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root (10)、分别修改 start-yarn.sh , stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容 [root@hadoop1 sbin]#vi start-yarn.sh [root@hadoop1 sbin]#vi stop-yarn.sh 添加: YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root 7、克隆:hadoop2和hadoop3 (1)分别修改三台主机主机名: [root@hadoop1 ~]#hostnamectl set-hostname hadoop1 [root@hadoop2 ~]#hostnamectl set-hostname hadoop2 [root@hadoop3 ~]#hostnamectl set-hostname hadoop3 查看修改后hostname [root@hadoop1 ~]#hostname (2)格式化文件系统(在Hadoop1主机上) hdfs namenode -format (3)启动Hadoop1 [root@hadoop1]# cd /usr/local/hadoop-3.3.1/ [root@hadoop1 hadoop-3.3.1]# sbin/start-all.sh jps命令查看运行情况 [root@hadoop1 hadoop-3.3.1]# jps 第二章Zookeeper 本地安装 1、安装前准备 (1)安装JDK (2)拷贝 apache-zookeeper-3.7.0-bin.tar.gz 安装包到 Linux 系统下 (注意:在hadoop1、hadoop2、hadoop3三个节点上都部署zookeeper)
[root@hadoop1]cd /opt [root@hadoop1 opt]# tar -zxvf apache-zookeeper-3.7.0- bin.tar.gz (4)修改名称 [root@hadoop1 opt]# mv apache-zookeeper-3.7.0 -bin/ zookeeper-3.7.0 2、配置服务器编号 (1)在/opt/zookeeper-3.7.0/这个目录下创建 zkData [root@hadoop1 zookeeper-3.7.0]# mkdir zkData (2)在/opt/zookeeper-3.7.0/zkData 目录下创建一个 myid 的文件 [root@hadoop1 zkData]# vi myid (3)拷贝配置好的 zookeeper 到其他机器上 [root@hadoop1 opt ]# xsync zookeeper-3.7.0 3、配置zoo.cfg文件 (1)重命名/opt/zookeeper-3.7.0/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg [root@hadoop1 conf]# mv zoo_sample.cfg zoo.cfg (2)打开 zoo.cfg 文件 [root@hadoop1 conf]# vim zoo.cfg #修改数据存储路径配置 dataDir=/opt/zookeeper-3.7.0/zkData #增加如下配置 server.1=192.168.48.143:2888:3888 server.2=192.168.48.144:2888:3888 server.3=192.168.48.145:2888:3888 (3)配置参数解读 server.A=B:C:D。 A 是一个数字,表示这个是第几号服务器;集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据 就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个server。 B 是这个服务器的地址; C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口; D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。 (4)同步 zoo.cfg 配置文件 [root@hadoop1 conf]# xsync zoo.cfg 4、集群操作 (1)分别启动 Zookeeper [root@hadoop1 zookeeper-3.7.0]# bin/zkServer.sh start [root@hadoop2 zookeeper-3.7.0]# bin/zkServer.sh start [root@hadoop3 zookeeper-3.7.0]# bin/zkServer.sh start (2)查看状态 [root@hadoop1 zookeeper-3.7.0]# bin/zkServer.sh status JMX enabled by default Using config: /opt/zookeeper-3.7.0/bin/../conf/zoo.cfg Mode: follower [root@hadoop2 zookeeper-3.7.0]# bin/zkServer.sh status JMX enabled by default Using config: /opt/zookeeper-3.7.0/bin/../conf/zoo.cfg Mode: leader [root@hadoop3 zookeeper-3.7.0]# bin/zkServer.sh status JMX enabled by default Using config: /opt/zookeeper-3.7.0/bin/../conf/zoo.cfg Mode: follower 第 3 章 hbase安装部署 1、Zookeeper 正常部署 首先保证 Zookeeper 集群的正常部署,并启动: [root@hadoop1 zookeeper-3.7.0]# bin/zkServer.sh start [root@hadoop2 zookeeper-3.7.0]# bin/zkServer.sh start [root@hadoop3 zookeeper-3.7.0]# bin/zkServer.sh start 2、Hadoop正常部署 Hadoop 集群的正常部署并启动: [root@hadoop1 hadoop-3.3.1]# sbin/start-dfs.sh [root@hadoop2 hadoop-3.3.1]# sbin/start-yarn.sh 3、HBase 的解压 解压 Hbase 到指定目录: [root@hadoop1]#cd /opt [root@hadoop1]$#tar -zxvf hbase-2.4.6-bin.tar.gz 4、HBase 的配置文件 修改 HBase 对应的配置文件。 (1)hbase-env.sh 修改内容: export JAVA_HOME=/opt/jdk1.8.0_262 export HBASE_MANAGES_ZK=false (2)hbase-site.xml 修改内容: <configuration> <property> <name>hbase.rootdir</name> <value> hdfs://hadoop1:9000/Hbase<value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master.port</name> <value>16000</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value> hadoop1,hadoop2,hadoop3</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>>/opt/zookeeper-3.7.0/zkData</value> </property> </configuration> (3)regionservers: hadoop1 hadoop2 hadoop3 (4)软连接 hadoop 配置文件到 HBase: [root@hadoop1 opt]#ln -s /usr/local/hadoop-3.3.1/etc/hadoop/core-site.xml /opt/hbase/conf/core-site.xml [root@hadoop1 module]#ln -s /usr/local/hadoop-3.3.1/etc/hadoop/hdfs-site.xml /opt/hbase/conf/hdfs-site.xml 5、HBase 服务的启动 (1)启动方式 [root@hadoop1 hbase]# bin/start-hbase.sh (2)查看jps [root@hadoop1 hbase]# jps 8534 QuorumPeerMain 11512 Jps 10906 HMaster 5131 DataNode 5563 ResourceManager 11227 HRegionServer 4975 NameNode
7、查看 HBase 页面 启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如: http://hadoop1:16010 第四章Hive的部署 1、安装MySQL (1)过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包如果有mariadb 通过 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps 命令装卸 mariadb (2)进入要解压的目录下 [root@hadoop1]#cd /opt/mysql [root@hadoop1 mysql]# tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar (3)执行MySQL安装包 [root@hadoop1 mysql]# rpm-ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm --force rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm --nodeps –force rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm --nodeps –force (4) 通过 rpm -qa | grep mysql 命令查看 mysql 的安装包 (5)初始化mysql [root@hadoop1 mysql]# mysqld --initialize (6)更改所属组 [root@hadoop1 mysql]# chown mysql:mysql /var/lib/mysql -R (7)启动mysql [root@hadoop1 mysql]# systemctl start mysqld.service (8)查看生成的临时root密码 [root@hadoop1 mysql]# cat /var/log/mysqld.log (9)修改mysql root密码、授权远程访问 [root@hadoop1 mysql]# mysql -u root -p Enter password: #这里输入在日志中生成的临时密码 更新root密码 设置为hadoop mysql> alter user user() identified by "hadoop"; 授权 mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; 2、安装Hive (1)将hive解压至/usr/下面: [root@hadoop1 hadoop]#cd /usr [root@hadoop1 hadoop usr]# tar -zxvf apache-hive-3.1.2-bin.tar.gz (2)进入/usr/中查看,并移动: [root@hadoop1 hadoop]# mv apache-hive-3.1.2-bin /usr/hive (3)进入文件lib [root@hadoop1 bin]# rm -rf lib/guava-19.0.jar [root@hadoop1bin]# cp/usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/hive/lib/ 4、进入文件mysql [root@hadoop1 mysql]# cp mysql-connector-java-5.1.32.jar /usr/hive/lib/ [root@hadoop1 mysql]# mv hive-env.sh.template hive-env.sh 5、hive的配置文件: (1)vim hive-env.sh : export HADOOP_HOME=/usr/local/hadoop export HIVE_CONF_DIR=/usr/hive/conf export HIVE_AUX_JARS_PATH=/usr/hive/lib (2)hive-site.xml : <configuration> <!-- 存储元数据mysql相关配置 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value> jdbc:mysql://192.168.48.143:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8 </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>hadoop</value> </property> <!-- 关闭元数据存储授权 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 关闭元数据存储版本的验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration> 7、启动hive [root@hadoop1 ~]# cd hive [root@hadoop1 hive]# bin/hive |
|