centos软件安装
前期准备工作
1、通过VMWare安装纯净版centos
2、使用CRT连接虚拟机
一、基础环境配置
1.主机名称修改: /etc/hostname
echo node1 > /etc/hostname
2.修改域名解析文件: /etc/hosts
后续搭建集群时使用域名访问电脑
在平时使用www.baidu.com域名访问时,最终会同dns服务器将域名解析为ip地址访问
echo '192.168.88.100 node1.itcast.cn node1' >> /etc/hosts
echo '192.168.88.101 node2.itcast.cn node2' >> /etc/hosts
echo '192.168.88.102 node3.itcast.cn node3' >> /etc/hosts
3.关闭防火墙
systemctl stop firewalld.service
4.禁用防火墙
systemctl disable firewalld.service
5.关闭SELinux: /etc/selinux/config
sed -i "s/enforcing/disabled/" /etc/selinux/config
6.时钟同步
ntpdate ntp4.aliyun.com
# 内部服务器不允许上网,内部搭建一个时钟服务器 同步内部
ntpdate 192.168.88.3
7.设置静态ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "s/dhcp/static/" /etc/sysconfig/network-scripts/ifcfg-ens33
echo 'IPADDR="192.168.88.100"' >> /etc/sysconfig/network-scripts/ifcfg-ens33
echo 'PREFIX="24"' >> /etc/sysconfig/network-scripts/ifcfg-ens33
echo 'GATEWAY="192.168.88.2"' >> /etc/sysconfig/network-scripts/ifcfg-ens33
echo 'DNS1="8.8.8.8"' >> /etc/sysconfig/network-scripts/ifcfg-ens33
8.创建软件安装目录
mkdir /export
cd /export
mkdir data logs server software
9.重启系统
init 6
二、Java环境安装
1.java文件上传解压: jdk-8u65-linux-x64.tar.gz
,注意:上传文件位置为 /export/server目录
cd /export/server
tar zxvf /export/server/jdk-8u65-linux-x64.tar.gz
2.修改环境变量
echo 'export JAVA_HOME=/export/server/jdk1.8.0_65' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
source /etc/profile
3.验证
java -version
三、Mysql安装
1.上传mysql压缩包(mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
)解压,注意:上传文件位置为 /export/server目录下
cd /export/server
mkdir mysql5.7
tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C mysql5.7
cd mysql5.7
2.卸载mariadb-libs
rpm -e --nodeps mariadb-libs
3.rpm安装mysql
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm
4.初始化服务和修改文件权限
mysqld --initialize
chown mysql:mysql /var/lib/mysql -R
5.启动服务并设置开机自启
systemctl start mysqld.service
systemctl enable mysqld.service
6.登录Mysql
Pass=$(grep 'A temporary password' /var/log/mysqld.log |awk '{print $NF}')
mysql -uroot -p"$Pass"
7.修改mysql密码及配置远程登录,注意:该操作是在mysql中进行
alter user user() identified by "hadoop";
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
FLUSH PRIVILEGES;
8.退出mysql
exit;
四、zookepper安装
1.上传zookepper压缩包(zookeeper-3.4.6.tar.gz
)解压,注意:上传文件位置为 /export/server目录
cd /export/server
tar xvf /export/server/zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
2.添加环境变量
echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile
3.创建数据目录
mkdir /export/data/zkdata
echo 1 > /export/data/zkdata/myid
# 注意:!!!!!!!!!
# 注意:!!!!!!!!!
# 注意:!!!!!!!!!
# 搭建集群时,还需要在创建完node2虚拟机上执行
echo 2 > /export/data/zkdata/myid
# 搭建集群时,还需要在创建完node3虚拟机上执行
echo 3 > /export/data/zkdata/myid
4.修改配置文件
mv /export/server/zookeeper/conf/zoo_sample.cfg /export/server/zookeeper/conf/zoo.cfg
sed -i "s#^dataDir.*#dataDir=/export/data/zkdata#" /export/server/zookeeper/conf/zoo.cfg
echo 'server.1=node1:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg
echo 'server.2=node2:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg
echo 'server.3=node3:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg
5.zookeeper服务操作
# 启动
zkServer.sh start
# 停止
zkServer.sh stop
# 查看状态
zkServer.sh status
## 注意启动时需要三台机器都执行启动服务
6.查看运行的java服务
jps
7.集群搭建说明
在node1的机器上配置完成后,需要将node1中的zookeeper目录复制到node2和node3的对应目录下,同时需要将基础环境配置步骤在node2和node3上重新执行一遍
集群之间还需要配置免密登录
注意:克隆完成后需要修改机器名和ip地址
8.集群免密登录
# 创建密钥
ssh-keygen
# 拷贝密钥到其他机器
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
五、hadoop安装
1.上传hadoop压缩包(hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
)解压,注意:上传文件位置为 /export/server目录
cd /export/server
tar zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
2.配置环境变量
echo 'export HADOOP_HOME=/export/server/hadoop-3.3.0' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile
3.手动修改配置文件(3和4二选一)
进入
/export/server/hadoop-3.3.0/etc/hadoop
目录下进行修改
① hadoop-env.sh文件
export JAVA_HOME=/export/server/jdk1.8.0_65
#文件最后添加
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
② core-site.xml文件
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
③ hdfs-site.xml文件
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
④ mapred-site.xml文件
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
⑤ yarn-site.xml文件
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 保存的时间7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
⑥ workers文件
node1
node2
node3
4.使用配置文件替换(3和4二选一)
上传配置文件压缩包(
hadoop-config.tar
)解压,注意:上传文件位置为 /export/server目录
tar xvf /export/server/hadoop-config.tar
mv -f /export/server/hadoop-config/* /export/server/hadoop-3.3.0/etc/hadoop/
rm /export/server/hadoop-config* -rf
5.集群搭建说明
需要将node1中的Hadoop文件复制到node2和node3的对应位置
scp可以进行主机的文件复制拷贝
scp -r /export/server/hadoop-3.3.0 root@node2:/export/server/
6.hadoop集群启动
① 数据初始化
注意: 初始化操作必须在node1中执行
hdfs namenode -format
② 脚本启动和关闭
start-all.sh
stop-all.sh
http://192.168.88.100:9870
六、Hive的安装 hive安装一台即可 也可以安装多台
1.上传安装包 解压
cd /export/server/
tar zxvf /export/server/apache-hive-3.1.2-bin.tar.gz
2.解决Hive与Hadoop之间guava版本差异
rm -rf /export/server/apache-hive-3.1.2-bin/lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/server/apache-hive-3.1.2-bin/lib/
3. 配置环境变量
echo 'export HIVE_HOME=/export/server/apache-hive-3.1.2-bin' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin' >> /etc/profile
source /etc/profile
4. 修改配置文件
① hive-env.sh
- 修改文件名称
cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
- 写入数据
echo 'export HADOOP_HOME=/export/server/hadoop-3.3.0' >> /export/server/apache-hive-3.1.2-bin/conf/hive-env.sh
echo 'export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf' >> /export/server/apache-hive-3.1.2-bin/conf/hive-env.sh
echo 'export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib' >> /export/server/apache-hive-3.1.2-bin/conf/hive-env.sh
② hive-site.xml
- 打开文件
vim hive-site.xml
- 复制粘贴如下内容
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&useSSL=false</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>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!-- 远程模式部署metastore metastore地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
5.上传mysql jdbc驱动到 /export/server/apache-hive-3.1.2-bin/lib/
下
mysql-connector-java-5.1.32.jar
6.初始化元数据
schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表
7.在hdfs创建hive存储目录
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
8.启动hive
① 启动metastore服务
#前台启动 关闭ctrl+c
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore
#前台启动开启debug日志
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
#后台启动 进程挂起 关闭使用jps+ kill -9
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
② 启动hiveserver2服务
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &
#注意 启动hiveserver2需要一定的时间 不要启动之后立即beeline连接 可能连接不上