sqoop 加 Azkaban 学习笔记
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决
解决办法
rm -f /var/run/yum.pid
export HADOOP_COMMON_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.15.1
export HADOOP_MAPRED_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.15.1
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.15.1
sqoop list-databases \
--connect jdbc:mysql://localhost:3306 \
--password root \
--username root
三节点的话,如果只配置了一台机器能使用,那么其他机器会报错
20/06/06 06:40:06 ERROR manager.CatalogQueryManager: Failed to list databases
java.sql.SQLException: null, message from server: "Host 'node01' is not allowed to connect to this MySQL server"
sqoop import \
--connect jdbc:mysql://localhost:3306/hadoop_hive \
--username root \
--password root \
--delete-target-dir \
--target-dir /sqoopresult \
--table SDS --m 1
完美报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)
去下载一个 java-json.jar
放到sqoop的lib里
安装git 因为Azkaban以及以后要用
yum -y install git
Azkaban
官网上教程
git clone https://github.com/azkaban/azkaban.git
网不行,这个如果是在国内基本上没戏,反正我是不行
下载一个3以上版本
解压到app
cd 到 Azkaban
执行./gradlew build installDist -x test
我用的最新稳定版本的,3.81.0
然后慢到飞起
解决办法,自行下载gradle-4.7-all.zip 或者对应版本
cd azkaban-3.81.0/gradle/wrapper
cp 一个gradle-4.7-all.zip来
vi gradle-wrapper.properties
修改一下
Could not find Linker 'g++' in system path.
安装gcc
sudo yum install -y gcc-c++*
看到说还要下载maven, ant , nodejs
我全都下载了
默认端口8081 ,访问 xxx:8081
如果使用阿里云等服务器,注意安全组问题,不然是打不开的
默认账号密码是azkaban
启动下 AzkabanSingleServer:
到/home/hadoop/app/azkaban-3.81.0/azkaban-solo-server/build/distributions目录
tar -zxvf -C azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz ~/app/azkaban
然后cd /azkaban-solo-server-0.1.0-SNAPSHOT/ 这个目录
bin/start-solo.sh
就启动了
关闭是
bin/shutdown-solo.sh
有问题看日志
在网页上简单操作下,测试一下hdfs, hive mr试试,测一个能用说明就成功了
----------------------------------------------------------------------------------------------------
two-server 模式部署
跟solo一样,找到azkaban-db-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz -C ~/app/azkaban
启动mysql创建一个azkaban表
create database azkaban;
use azkaban;
source /home/hadoop/app/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
flush privileges;
回到服务器
到 app/azkaban目录这 keytool -keystore keystore -alias jetty -genkey -keyalg RSA
生成一个 keystore
然后就是配置web跟exer的文件
具体网上一大推,看着配一下
配置文件记得检查清楚,巨坑
因为我就一个阿里云服务器,就配一个了,网上有多台服务器如何配,可以去搜一下
solo跟two-server 都用一个hdfs的zip跑了一下,可以运行,说明没有问题,到项目的时候再跑hive跟mr
关于oozie跟hue,因为oozie配置麻烦学习时间较长,我看了几个项目简介都没使用oozie,都是使用azkaban的,所以暂时先放一放oozie跟hue,等用到再配置