<< ..

WhereHows跑起来指南

发布时间:

WhereHows跑起来指南

决定试试WhereHows了,但是却发现这玩意搭起来真费劲。本文通过官方提供的docker成功将wherehows跑起来了,但是依然存在很多问题。

最终结果是:

  1. 成功启动编排容器但是需要一些准备工作
  2. 成功登陆管理页面但是页面很多功能不知道怎么用
  3. 最终尝试成功的版本是git checkout v1.0.0,我在v1.1.0即使按照issue配置LDAP后依然无法验证通过

准备工作

总之先clone源码吧:

git clone https://github.com/linkedin/WhereHows.git
cd WhereHows

有几个第三方的jar包需要注册到官网后才能下载,其实用到的是:

我准备好了一份存到了云盘。下载完成后需要到放到wherehows-etl/extralibs/目录下:

tree ./wherehows-etl/extralibs
├── gsp.jar
├── ojdbc7.jar
├── orai18n.jar
├── tdgssconfig.jar
└── terajdbc4.jar

如果jar包没有准备会在后续build阶段报错。

切换版本到v1.0.0,这里是为了绕开LDAP验证问题,默认最新版本走的是LDAP验证,需要大量配置且没有跑成功:

git checkout v1.0.0

针对WhereHows的准备工作算是完成,然后就是需要对其前端做些前置工作,否则会在后续docker build阶段报错说无法找到部分前端包,这里需要准备好npmbower,然后提前把node_modules下载好:

cd wherehows-web
cnpm install
bower install

然后就是安装docker/docker-compose,然后这里的npm/cnpm切到了国内源。

避坑完成。

编译

这里可以完全按照官方

回到WhereHows主目录,开始编译吧,这里需要下载一些依赖,我的某次尝试build时间是55min

cd wherehows-docker
./build.sh 1

且让他慢慢build,我们可以看看在build.sh中主要是干了些啥。

第一个步骤是用gradlew到各个目录做编译,然后生成了各个组件打好的zip包:

Build the application's distribution zip
(cd .. && ./gradlew dist)

第二个步骤就是将上面的zip包拷贝进docker容器中,并完成初始配置:

# Build docker images
(cd wherehows-frontend && ./build.sh $VERSION)
(cd wherehows-backend && ./build.sh $VERSION)
(cd wherehows-mysql && ./build.sh $VERSION)

所以可以将build.sh中的各个步骤单独拆出来执行,以便于定位错误:

(cd .. && ./gradlew dist)
(cd wherehows-frontend && ./build.sh 1)
(cd wherehows-backend && ./build.sh 1)
(cd wherehows-mysql && ./build.sh 1)

启动

编译完成后就可以用docker-compose启动编排了:

docker-compose up

启动后就可以访问到前端了,官方文档写得端口号是以最新版为准,而我们需要依照docker容器的实际映射端口为准,前端地址是: http://localhost:9000

访问到了,但是没有用户名密码进不去。

权限设置

容器启动后会自动初始化WhereHows所有库表,需要找个MySQL连接器手工在users表中创建你的账户。

MySQL server连接信息:

  • host:localhost
  • port:3306
  • database: wherehows
  • user: wherehows
  • password: wherehows

然后执行下面的SQL语句创建一个账户密码均为wherehows的用户:

INSERT INTO wherehows.users (
    name,
    email,
    username,
    password_digest,
    password_digest_type,
    authentication_type
) VALUES (
    'wherehows',
    'wherehows@wherehows.com',
    'wherehows',
    SHA1('wherehows'),
    'SHA1',
    'default'
);

创建成功后,wherehows账户就可以在前端登录了。

结束

T_T 然鹅事实上,千里之行不过是第一步。还请多多指教。

目前可以提供的情报是:

  • 关于wherehows数据血缘分析问题,这个东西目前只支持师出同门的linkedin azkaban
  • 有个交流非常活跃的微信群在这里