Atlas——数据治理工具的安装
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Atlas——数据治理工具的安装相关的知识,希望对你有一定的参考价值。
一、虚拟机准备
1、创建虚拟机
- hostname:hadoop01,内存8g
- hostname:hadoop02,内存4g
- hostname:hadoop03,内存4g
2.、修改hostname
- 命令:
hostnamectl set-hostname hadoopx
,修改为对应的hadoopx - 或者
vim /etc/hostname
- reboot一下
3、修改hosts文件
- 命令:
vim /etc/hosts
,追加:ip hostname
192.168.10.141 hadoop01
192.168.10.142 hadoop02
192.168.10.143 hadoop03
4、创建工作目录
- 命令:
mkdir /home/atlas
二、为三台虚拟机安装jdk
1、卸载openjdk
- 查找openjdk,命令:
rpm -qa | grep java
- 卸载除noarch后缀名以外的所有jdk,命令:
rpm -e --nodeps xx
2、安装jdk1.8
- 上传安装包并解压
3、配置java环境变量
vim /etc/profile.d/my_env.sh
export JAVA_HOME=/home/atlas/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
三、在hadoop01上编写集群文件同步脚本
目的:将hadoop01上的文件同步到hadoop02以及hadoop03上
1、编写脚本
vim xsync
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop01 hadoop02 hadoop03
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
2、赋予执行权限
- 命令:
chmod +x xsync
四、为三台虚拟机互相配置ssh免密登录
1、生成ssh登录密钥
- 命令:
ssh localhost
,若出现Host key verification failed.
失败提示,则使用:ssh -o StrictHostKeyChecking=no localhost
后,输入密码,再exit退出,之后再使用ssh local - 命令:
ssh-keygen -t rsa
,之后三次回车即可
2、将密钥分发到包括自己的三个机器上
- 命令:
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
五、为三台虚拟机安装hadoop
1、在hadoop01上安装hadoop
- 上传hadoop压缩包并解压
- 配置环境变量,
vim /etc/profile.d/my_env.sh
export HADOOP_HOME=/home/atlas/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
- 进入
/home/atlas/hadoop-3.1.3/etc/hadoop
目录对hadoop进行配置 vim core-site.xml
,将下面内容放入configuration标签里面
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/atlas/hadoop-3.1.3/data</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>atguigu</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.groups</name>
<value>*</value>
</property>
vim hdfs-site.xml
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
</property>
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</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_MAPRED_HOME</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</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>
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
vim workers
,删除local,新增
hadoop01
hadoop02
hadoop03
- 进入sbin目录,命令:
cd /home/Atlas/hadoop-3.3.1/sbin
,修改start-dfs.sh和stop-dfs.sh文件
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
- 修改start-yarn.sh和stop-yarn.sh文件
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
2、使用xsync同步脚本将hadoop02与hadoop03同步配置
- 进入到工作目录,命令:
cd /home/atlas/
- 同步hadoop文件夹,命令:
./xsync hadoop-3.1.3
- 为hadoop02与hadoop03配置hadoop环境变量
3、在hadoop01上编写启动脚本并启动hadoop
- 进入工作目录,命令:
cd /home/atlas/
- 编写启动脚本,命令:
vim myhadoop.sh
,并赋予执行权限,命令:chmod +x myhadoop.sh
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop01 "/home/atlas/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop02 "/home/atlas/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop01 "/home/atlas/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop01 "/home/atlas/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop02 "/home/atlas/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop01 "/home/atlas/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
- 第一次启动时需要在hadoop01上执行:
hdfs namenode -format
- 使用脚本启动hadoop,命令:
./myhadoop.sh start
。需要关闭时,执行./myhadoop.sh stop
4、验证启动是否成功
- 在hadoop01上执行jps
- 在hadoop02上执行jps
- 在hadoop03上执行jps
- 访问hadoop01上的网址,命令:
http://192.168.10.141:9870/
- 访问hadoop02上的yarn网址,
http://192.168.10.142:8088/
六、为hadoop01安装mysql
1、卸载系统自带的mariadb
- 检查是否存在,命令:
rpm -qa|grep mariadb
- 删除命令:
rpm -e --nodeps mariadb-libs
2、安装mysql
- 上传压缩包并解压,并上传mysql的java连接驱动。解压至mysql文件夹中,解压命令:
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
- 进入mysql目录,执行命令
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
- 清理旧环境,命令:
cd /var/lib/mysql与rm -rf ./*
- 初始化数据库,命令:
mysqld --initialize --user=mysql
- 查看临时生成的root 用户的密码,命令:
cat /var/log/mysqld.log
- 启动mysql服务,命令:
systemctl start mysqld
- 登录MySQL数据库,命令:
mysql -uroot -p
,之后输入之前的临时密码进入到数据库 - 修改密码,命令:
set password = password("新密码");
- 修改mysql库下的user表中的root用户允许任意ip连接,命令1:
update mysql.user set host='%' where user='root';
,命令2:flush privileges;
七、为hadoop01安装Hive
1、上传Hive压缩包并解压
- 上传并解压
- 重命名为hive,命令:
mv apache-hive-3.1.2-bin/ hive/
2、为Hive配置环境变量
vim /etc/profile.d/my_env.sh
export HIVE_HOME=/home/atlas/hive
export PATH=$PATH:$HIVE_HOME/bin
3、将Hive元数据配置到MySQL
- 配置驱动,命令:
cp /home/atlas/mysql/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
- 在$HIVE_HOME/conf目录下新建hive-site.xml文件,命令:
vim $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc 连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>970725</value>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
mv /home/atlas/hive/conf/hive-env.sh.template /home/atlas/hive/conf/hive-env.sh
- 修改hive-env.sh内容,
#将export HADOOP_HEAPSIZE=1024开放
mv /home/atlas/hive/conf/hive-log4j2.properties.template /home/atlas/hive/conf/hive-log4j2.properties
- 修改hive-log4j2.properties
property.hive.log.dir = /home/atlas/hive/logs
- 登录mysql,命令:
mysql -uroot -p
- 新建Hive元数据库后退出,命令:
create database metastore;
- 初始化Hive元数据库,命令:
schematool -initSchema -dbType mysql -verbose
4、新建一张表测试Hive
- 启动Hive,命令:
hive
- 新建一张表,命令
create table test_user(
`id` string comment '编号',
`name` string comment '姓名',
`province_id` string comment '省份ID',
`province_name` string comment '省份名称'
) comment '用户表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\\t';
- 插入一条数据
insert into table test_user values('1','zhangshan','001','北京');
- 查看数据,命令:
select * from test_user;
- 通过网页进入yarn,查看数据,网址:
hadoop02的ip:8088
5、Hive中表乱码解决方案
- Hive使用的库需要使用latin1字符集,不能直接对mysql整体修改为utf-8
- 在mysql中修改数据库metastore的编码,进入mysql后,使用metastore库,命令:
use metastore
,执行下列sql语句
#修改表字段注解和表注解
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
#修改分区字段注解:
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
#修改索引注解:
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
#修改视图
alter table TBLS modify column view_expanded_text mediumtext character set utf8;
alter table TBLS modify column view_original_text mediumtext character set utf8;
- 修改hive-site.xml
<!-- jdbc 连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
八、在三台机器上配置zookeeper
1、在hadoop01上安装zookeeper
- 上传压缩包并解压,解压为zookeeper文件夹
- 进入zookeeper文件夹,创建文件夹zkData,命令:
mkdir zkData
- 进入zkData目录,创建文件,命令:
vim myid
,写入内容
#服务器编号,在hadoop01上为1,hadoop02上为2,hadoop03上为3
1
- 进入conf目录,命令:
cd /home/atlas/zookeeper/conf
- 重命名zoo_sample.cfg文件为zoo.cfg,命令:
mv zoo_sample.cfg zoo.cfg
- 修改zoo.cfg文件
#修改
dataDir=/home/atlas/zookeeper/zkData
#文本末尾追加
#######################cluster##########################
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
2、使用同步脚本同步zookeeper文件夹
- 进入工作目录,命令:
cd /home/atlas/
- 使用同步脚本,命令:
./xsync zookeeper
- 修改hadoop02与hadoop03的myid文件
3、在hadoop01上编写启动脚本并启动zookeeper
- 编写文件,命令:
vim zk.sh
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/home/atlas/zookeeper/bin/zkServer.sh start"
done
;;
"stop")
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/home/atlas/zookeeper/bin/zkServer.sh stop"
done
;;
"status")
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/home/atlas/zookeeper/bin/zkServer.sh status"
done
;;
esac
- 赋予执行权限,命令:
chmod +x zk.sh
- 使用脚本,启动zookeeper,命令:
./zk.sh start
七、为三台机器上配置Kafka
1、在hadoop01上安装Kafka
- 解压Kafka,重命名文件为kafka
- 在kafka目录下创建logs文件夹 ,命令:
mkdir logs
- 修改server.properties文件,命令:
vim /home/atlas/kafka/config/server.properties
#修改broker.id,hadoop01为0,hadoop02为1,handoop03为2
broker.id=0
#删除topic 功能使能,追加在broker.id=0后面
delete.topic.enable=true
#修改kafka运行日志存放的路径
log.dirs=/home/atlas/kafka/data
#修改配置连接Zookeeper 集群地址
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka
- 配置kafka环境变量,
vim /etc/profile.d/my_env.sh
export KAFKA_HOME=/home/atlas/kafka
export PATH=$PATH:$KAFKA_HOME/bin
2、使用同步脚本同步kafka文件夹
- 命令:
./xsync kafka
- 修改handoop02与handoop03上的server.properties文件<
以上是关于Atlas——数据治理工具的安装的主要内容,如果未能解决你的问题,请参考以下文章