Atlas——数据治理工具的安装

Posted 想学习安全的小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Atlas——数据治理工具的安装相关的知识,希望对你有一定的参考价值。

一、虚拟机准备

1、创建虚拟机

  1. hostname:hadoop01,内存8g
  2. hostname:hadoop02,内存4g
  3. hostname:hadoop03,内存4g

2.、修改hostname

  1. 命令:hostnamectl set-hostname hadoopx,修改为对应的hadoopx
  2. 或者vim /etc/hostname
  3. reboot一下

3、修改hosts文件

  1. 命令:vim /etc/hosts,追加:ip hostname
192.168.10.141	hadoop01
192.168.10.142	hadoop02
192.168.10.143	hadoop03

4、创建工作目录

  1. 命令:mkdir /home/atlas

二、为三台虚拟机安装jdk

1、卸载openjdk

  1. 查找openjdk,命令:rpm -qa | grep java
  2. 卸载除noarch后缀名以外的所有jdk,命令:rpm -e --nodeps xx

2、安装jdk1.8

  1. 上传安装包并解压

3、配置java环境变量

  1. vim /etc/profile.d/my_env.sh
export JAVA_HOME=/home/atlas/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
  1. source /etc/profile

三、在hadoop01上编写集群文件同步脚本

目的:将hadoop01上的文件同步到hadoop02以及hadoop03上

1、编写脚本

  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、赋予执行权限

  1. 命令:chmod +x xsync

四、为三台虚拟机互相配置ssh免密登录

1、生成ssh登录密钥

  1. 命令:ssh localhost,若出现Host key verification failed.失败提示,则使用:ssh -o StrictHostKeyChecking=no localhost后,输入密码,再exit退出,之后再使用ssh local
  2. 命令:ssh-keygen -t rsa,之后三次回车即可

2、将密钥分发到包括自己的三个机器上

  1. 命令:
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

五、为三台虚拟机安装hadoop

1、在hadoop01上安装hadoop

  1. 上传hadoop压缩包并解压
  2. 配置环境变量,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
  1. 进入/home/atlas/hadoop-3.1.3/etc/hadoop目录对hadoop进行配置
  2. 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>
  1. 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>
  1. 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>
  1. 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>
  1. vim workers,删除local,新增
hadoop01
hadoop02
hadoop03
  1. 进入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
  1. 修改start-yarn.sh和stop-yarn.sh文件
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

2、使用xsync同步脚本将hadoop02与hadoop03同步配置

  1. 进入到工作目录,命令:cd /home/atlas/
  2. 同步hadoop文件夹,命令:./xsync hadoop-3.1.3
  3. 为hadoop02与hadoop03配置hadoop环境变量

3、在hadoop01上编写启动脚本并启动hadoop

  1. 进入工作目录,命令:cd /home/atlas/
  2. 编写启动脚本,命令: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
  1. 第一次启动时需要在hadoop01上执行:hdfs namenode -format
  2. 使用脚本启动hadoop,命令:./myhadoop.sh start。需要关闭时,执行./myhadoop.sh stop

4、验证启动是否成功

  1. 在hadoop01上执行jps
  2. 在hadoop02上执行jps
  3. 在hadoop03上执行jps
  4. 访问hadoop01上的网址,命令:http://192.168.10.141:9870/
  5. 访问hadoop02上的yarn网址,http://192.168.10.142:8088/

六、为hadoop01安装mysql

1、卸载系统自带的mariadb

  1. 检查是否存在,命令:rpm -qa|grep mariadb
  2. 删除命令:rpm -e --nodeps mariadb-libs

2、安装mysql

  1. 上传压缩包并解压,并上传mysql的java连接驱动。解压至mysql文件夹中,解压命令:tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
  2. 进入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
  1. 清理旧环境,命令:cd /var/lib/mysql与rm -rf ./*
  2. 初始化数据库,命令:mysqld --initialize --user=mysql
  3. 查看临时生成的root 用户的密码,命令:cat /var/log/mysqld.log
  4. 启动mysql服务,命令:systemctl start mysqld
  5. 登录MySQL数据库,命令:mysql -uroot -p,之后输入之前的临时密码进入到数据库
  6. 修改密码,命令:set password = password("新密码");
  7. 修改mysql库下的user表中的root用户允许任意ip连接,命令1:update mysql.user set host='%' where user='root';,命令2:flush privileges;

七、为hadoop01安装Hive

1、上传Hive压缩包并解压

  1. 上传并解压
  2. 重命名为hive,命令:mv apache-hive-3.1.2-bin/ hive/

2、为Hive配置环境变量

  1. vim /etc/profile.d/my_env.sh
export HIVE_HOME=/home/atlas/hive
export PATH=$PATH:$HIVE_HOME/bin

3、将Hive元数据配置到MySQL

  1. 配置驱动,命令:cp /home/atlas/mysql/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
  2. 在$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>
  1. mv /home/atlas/hive/conf/hive-env.sh.template /home/atlas/hive/conf/hive-env.sh
  2. 修改hive-env.sh内容,
#将export HADOOP_HEAPSIZE=1024开放
  1. mv /home/atlas/hive/conf/hive-log4j2.properties.template /home/atlas/hive/conf/hive-log4j2.properties
  2. 修改hive-log4j2.properties
property.hive.log.dir = /home/atlas/hive/logs
  1. 登录mysql,命令:mysql -uroot -p
  2. 新建Hive元数据库后退出,命令:create database metastore;
  3. 初始化Hive元数据库,命令:schematool -initSchema -dbType mysql -verbose

4、新建一张表测试Hive

  1. 启动Hive,命令:hive
  2. 新建一张表,命令
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';
  1. 插入一条数据
insert into table test_user values('1','zhangshan','001','北京');
  1. 查看数据,命令:select * from test_user;
  2. 通过网页进入yarn,查看数据,网址:hadoop02的ip:8088

5、Hive中表乱码解决方案

  1. Hive使用的库需要使用latin1字符集,不能直接对mysql整体修改为utf-8
  2. 在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;
  1. 修改hive-site.xml
<!-- jdbc 连接的URL --> 
<property> 
    <name>javax.jdo.option.ConnectionURL</name> 
    <value>jdbc:mysql://hadoop01:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value> 
</property>

八、在三台机器上配置zookeeper

1、在hadoop01上安装zookeeper

  1. 上传压缩包并解压,解压为zookeeper文件夹
  2. 进入zookeeper文件夹,创建文件夹zkData,命令:mkdir zkData
  3. 进入zkData目录,创建文件,命令:vim myid,写入内容
#服务器编号,在hadoop01上为1,hadoop02上为2,hadoop03上为3
1
  1. 进入conf目录,命令:cd /home/atlas/zookeeper/conf
  2. 重命名zoo_sample.cfg文件为zoo.cfg,命令:mv zoo_sample.cfg zoo.cfg
  3. 修改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文件夹

  1. 进入工作目录,命令:cd /home/atlas/
  2. 使用同步脚本,命令:./xsync zookeeper
  3. 修改hadoop02与hadoop03的myid文件

3、在hadoop01上编写启动脚本并启动zookeeper

  1. 编写文件,命令: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
  1. 赋予执行权限,命令:chmod +x zk.sh
  2. 使用脚本,启动zookeeper,命令:./zk.sh start

七、为三台机器上配置Kafka

1、在hadoop01上安装Kafka

  1. 解压Kafka,重命名文件为kafka
  2. 在kafka目录下创建logs文件夹 ,命令:mkdir logs
  3. 修改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
  1. 配置kafka环境变量,vim /etc/profile.d/my_env.sh
export KAFKA_HOME=/home/atlas/kafka
export PATH=$PATH:$KAFKA_HOME/bin

2、使用同步脚本同步kafka文件夹

  1. 命令:./xsync kafka
  2. 修改handoop02与handoop03上的server.properties文件<

    以上是关于Atlas——数据治理工具的安装的主要内容,如果未能解决你的问题,请参考以下文章

    Atlas——数据治理工具的使用

    数据治理:编译Atlas安装包

    数据治理:Atlas搭建启动

    apache-atlas完整安装教程-离线安装

    大数据之数据治理架构 —— Atlas

    数据治理:元数据管理