一、基本配置
集群包括
角色 | 名称 | 简称 |
---|---|---|
master | inspur5212m4.it.163.org | 以下简称m4 |
slave | inspur5212m5.it.163.org | 以下简称m4 |
slave | lenovosr630.it.163.org | 以下简称sr |
二、JDK和SSH的配置
修改三台机器的/etc/hosts
sudo vim /etc/hosts
添加内容:
10.220.16.161 inspur5212m5.it.163.org
10.220.16.162 inspur5212m4.it.163.org
10.220.16.163 lenovosr630.it.163.org
安装JDK1.8
在这里我选择安装Oracle JDK8_251
tar -zxvf jdk-8u251-linux-x64.tar.gz
配置JDK环境变量
sudo vim /etc/profile
添加:
# jdk1.8 config begin
export JAVA_HOME=/admin/jdk1.8.0_251
export JRE_HOME=/admin/jdk1.8.0_251/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#jdk1.8 config end
更新环境变量
source /etc/profile
在centos7下我们会遇到配置完环境变量,输入java --version仍显示java1.7的情况,这种情况的原因是centos7预先安装了openjdk1.7,我们要将预先安装的openjdk1.7进行卸载:
首先进入root
sudo su root
rpm -qa|grep java
我们得到预安装的java编号,根据这些编号我们执行
rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.261-2.6.22.2.el7_8.x86_64
在三台服务器上创建组和用户
sudo groupadd hadoop
useradd -d /home/hadoop -g hadoop hadoop
passwd hadoop #修改密码
因为我们使用的测试服务器,我们将三台服务器上的hadoop用户加入sudoer。
设置ssh无密码登录
在m4上
ssh-keygen -t rsa
然后一直回车即可,我们会获得一个目录.ssh,目录下的rsa_id.pub为m4的公钥,该公钥中的内容添加在某台服务器的某个用户的.ssh/authorized_keys中,m4就可以ssh免密登录这台服务器的这个用户。
cd .ssh
cp id_rsa.pub authorized_keys
在此我们应注意.ssh目录,及其中各个文件的权限
名称 | 权限 |
---|---|
.ssh | 755或700 |
rsa_id.pub | 644 |
authorized_keys | 644 |
rsa_id | 600 |
在此,如果我们在ssh时报出Permission denied (publickey)的错误要检查是否将公钥添加到目的服务器目的用户的authorized_keys上,报出其他问题请及时查看.ssh目录及其目录下文件权限。
在此提醒,在不确定文件权限的情况下要将目录或者文件chmod 777,最好通过
getfacl -R /目标目录 >systemp.bak
setfacl --restore=systemp.bak
备份和恢复权限信息。
三、hadoop的配置
在m4下hadoop的配置
将hadoop-2.7.7.tar.gz解压
tar -zxvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 hadoop2.7
添加hadoop环境变量
HADOOP_HOME=/home/hadoop/hadoop2.7
#修改PATH为:
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
使环境变量生效
source /etc/profile
进入目录/home/hadoop/hadoop.2.7/etc/hadoop
cd /home/hadoop/hadoop.2.7/etc/hadoop
修改hadoop-env.sh,修改JAVA_HOME(25 line)
export JAVA_HOME=/admin/jdk1.8.0_251
修改core-site.xml
fs.defaultFS
hdfs://inspur5212m4.it.163.org:9000
dfs.namenode.checkpoint.period
1800
fs.checkpoint.size
67108864
fs.trash.interval
1440
hadoop.tmp.dir
/data/hadoop/tmp
io.file.buffer.size
131702
修改hdfs-site.xml
dfs.namenode.name.dir
/data/hadoop/hdfs/name
dfs.datanode.data.dir
/data/hadoop/hdfs/data
dfs.namenode.http-address
inspur5212m4.it.163.org:50070
dfs.webhdfs.enabled
true
dfs.replication
2
dfs.datanode.du.reserved
1073741824
dfs.block.size
134217728
dfs.permissions.enabled
false
配置mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobtracker.http.address
inspur5212m4.it.163.org:50030
mapred.job.tracker
http://inspur5212m4.it.163.org:9001
mapreduce.jobhistory.address
inspur5212m4.it.163.org:10020
mapreduce.jobhistory.webapp.address
inspur5212m4.it.163.org:19888
配置yarn-site.xml
mapreduce.framework.name
yarn
yarn.resourcemanager.address
inspur5212m4.it.163.org:8032
yarn.resourcemanager.scheduler.address
inspur5212m4.it.163.org:8030
yarn.resourcemanager.resource-tracker.address
inspur5212m4.it.163.org:8031
yarn.resourcemanager.admin.address
inspur5212m4.it.163.org:8033
yarn.resourcemanager.webapp.address
inspur5212m4.it.163.org:8088
修改slaves
inspur5212m5.it.163.org
lenovosr630.it.163.org
修改masters
inspur5212m4.it.163.org
在m5、sr下hadoop的配置
将m4下的/home/hadoop/hadoop2.7目录scp至m5和sr的/home/hadoop/hadoop2.7下
添加hadoop环境变量
HADOOP_HOME=/home/hadoop/hadoop2.7
#修改PATH为:
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
使环境变量生效
source /etc/profile
进入目录/home/hadoop/hadoop.2.7/etc/hadoop
cd /home/hadoop/hadoop.2.7/etc/hadoop
修改hdfs-site.xml创建目录,在本文中创建的目录为/mnt/dfs/name
修改hdfs-site.xml,将数据的存放位置修改为三块HDD盘的挂载位置。
dfs.namenode.name.dir
/mnt/dfs/name
dfs.datanode.data.dir
/mnt/dfs/1,/mnt/dfs/2,/mnt/dfs/3
启动hadoop集群
在m4的/home/hadoop/hadoop2.7目录下
./bin/hadoop namenode -format
./sbin/start-all.sh
在m4、m5、sr上可通过jps命令查看namenode、datanode进程。
四、mysql的配置
安装mysql5.7.30
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum install mysql-community-server
mysql的初始化
记录临时root密码
service mysqld start
sudo grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
此时只能设置一个复杂的新密码,我们利用复杂的新密码密码,进入mysql,再设置一个简洁的密码。
mysql -u root -p
输入
set global validate_password_policy=LOW;
set global validate_password_length=6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '创建的新密码';
这样我们就能使用新密码在root用户下登录mysql了
五、Hive的安装
在m4上安装hive
从清华源wget下载好apache-hive-2.3.7-bin.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
tar -zxvf apache-hive-2.3.7-bin.tar.gz
mv apache-hive-2.3.7-bin hive2.3
配置环境变量,修改/etc/profile
# 添加
export HIVE_HOME=/home/hadoop/hive2.3
# 修改
export PATH=$HIVE_HOME/bin:$PATH
使环境变量生效
source /etc/profile
mysql上配置hive
进入mysql
mysql -u root -p
创立用户、赋予权限,建立数据库
create database metastore;
grant all on metastore.* to hive@'%' identified by '创建的密码';
grant all on metastore.* to hive@'localhost' identified by '创建的密码';
flush privileges;
使用hive用户登录
mysql -u hive -p
创建数据库hive
create database hive;
配置jdbc
mv mysql-connector-java-5.1.40.jar /home/hadoop/hive2.3/lib
配置hive文件
cd /home/hadoop/hive2.3/conf
cp hive-env.sh.template hive-env.sh
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
修改hive-env.sh
export JAVA_HOME=/admin/jdk1.8.0_251
export HADOOP_HOME=/home/hadoop/hadoop2.7
修改hive-site.xml
首先将hive-site.xml备份
mv hive-site.xml hive-site.xml.back
vim hive-site.xml
添加内容
hive.exec.scratchdir
/tmp
hive.metastore.warehouse.dir
/user/hive/warehouse
hive.querylog.location
/user/hive/log
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
创建的密码
hdfs新建目录
hadoop fs -mkdir -p /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /user/hive/log
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
hadoop fs -chmod g+w /user/hive/log
初始化hive
schematool -dbType mysql -initSchema hive 你的密码
如果报错
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get hema version.权限问题
进入mysql,进行权限增加
grant all on *.* to 'hive'@'localhost' identified by '你的密码';
初始化成功后,输入hive,进行测试
show databases;
create database hive_test_db;
show databases;
use hive_test_db;
show tables;
create table test(ip int, name string) row format delimited fields terminated by '\t';
show tables;
exit;