1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Hu-Lyndon-streamsets-start-asset

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
8.WSL 部署StreamSets.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 09.06.2025 14:20 9a477ac

8. Установка StreamSets с помощью WSL

Если вы используете операционную систему Windows 10, вы можете воспользоваться Windows Subsystem for Linux для компиляции и установки.

Инициализация Hyper-V

Microsoft предлагает технологию виртуализации Hyper-V в операционной системе Windows 10. Сначала установите Docker Desktop на Windows.

image-20200403181516383

Подсказка: В более новой версии можно выбрать между контейнерами Windows и Linux. Основное различие между ними заключается в том, что они используют разные сетевые протоколы.

image-20200403181739301

По умолчанию в режиме Linux контейнеров Docker предоставляет три типа сетей: bridge, host и none. В режиме Windows контейнеров используется NAT-сетевая конфигурация. Это означает, что если вы разрабатываете и отлаживаете контейнеры локально, вы можете использовать NAT-сети и маршрут для доступа к конечным точкам контейнеров из приложений Windows. Таким образом, использование этого режима и контейнеров Linux является удобным решением для локальной разработки.

Вы можете настроить Docker Desktop по ссылке https://www.jianshu.com/p/97d16b68045f, чтобы использовать одну виртуальную машину Docker в WSL, при этом контейнеры остаются изолированными.

После установки Docker Desktop Hyper-V создаст виртуальную машину по умолчанию. В данном случае используется конфигурация сети Default Switch, которая является решением на основе NAT.image-20200403184231484

Установка WSL

Перейдите в Microsoft Store.

image-20200403184533560

Здесь выбран Ubuntu 18.04 LTS, так как он имеет хорошую оценку среди бесплатных версий. Для пользователей, предпочитающих CentOS, можно выбрать CentOS 7.

image-20200403184659963

После установки на вашем компьютере появится быстрый доступ к подсистеме.

image-20200403185029792

Установка среды разработки

WSL делится всеми переменными окружения Windows. Однако приложения, такие как Java, Go, Python, установленные на Windows, не могут быть запущены на Ubuntu. Поэтому нам нужно будет настроить среду.

Git

Эта версия по умолчанию включает Git. Если его нет, установите его.

apt-get update
apt-get install git

Java

Я установил openjdk8.

apt-cache search openjdk-8
apt-get install openjdk-8-jdk

Golang

Учитывая компиляцию для edge, я также установил Go, хотя компиляция не прошла из-за того, что скрипт компиляции streamsets-datacollector-edge проверяет состояние диска и другие параметры среды. Если вас это интересует, попробуйте сами:

image-20200403191135945

Компиляция для edge использует модуль gogradle, в котором используется версия go1.13.5. Для избегания автоматической настройки рекомендуется установить Go вручную:

image-20200403191225564

$ mkdir download && cd download
$ wget https://studygolang.com/dl/golang/go1.13.5.linux-amd64.tar.gz
$ sudo tar -zxvf go1.13.5.linux-amd64.tar.gz -C /usr/local/go
```### Maven

```shell
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
$ sudo tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven-3.6.3

Конфигурация переменных окружения

$ vim ~/.bashrc
export DOCKER_HOST=tcp://localhost:2375
export GOROOT=/usr/local/go
export GOPATH=/mnt/d/iProject/go-ws
export M2_HOME=/usr/local/maven-3.6.3
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$M2_HOME/bin:${JAVA_HOME}/bin

Проверьте состояние подключения диска в WSL, да, вы правильно поняли, GOPATH и локальный репозиторий Maven можно указать в одном и том же каталоге, который находится на Windows, так как зависимости могут занимать значительное место (неужели вы испытываете чувство радости и слез?). Приходите, обнимите меня и заплачьте!

image-20200403194344539

<localRepository>/mnt/d/iProject/maven_repositories</localRepository>
# Тестирование
go version
java -version
javac
mvn --version

Node

Так как фронтенд проекта StreamSets Data Collector UI использует React, необходимо установить среду Node. К счастью, Ubuntu уже содержит Node, хотя версия немного ниже, но после тестирования проблем не возникло.```shell $ node -v v8.10.0 $ npm -v 3.5.2

Необходимо установить некоторые компоненты

$ npm install -g bower $ npm install -g grunt $ npm install -g npx $ npm install -g npm-check $ npm install -g yarn $ npm install -g yarnpkg

$ ls -l /usr/local/bin/
drwxr-xr-x 1 root root 4096 апр  2 10:11 ./
drwxr-xr-x 1 root root 4096 апр  1 10:52 ../
lrwxrwxrwx 1 root root 35 апр  2 09:59 bower -> ../lib/node_modules/bower/bin/bower*
lrwxrwxrwx 1 root root 35 апр  2 10:00 grunt -> ../lib/node_modules/grunt/bin/grunt*
lrwxrwxrwx 1 root root 40 апр  2 10:01 npm-check -> ../lib/node_modules/npm-check/bin/cli.js*
lrwxrwxrwx 1 root root 32 апр  2 10:02 npx -> ../lib/node_modules/npx/index.js*
lrwxrwxrwx 1 root root 39 апр  2 10:11 yarn -> ../lib/node_modules/yarnpkg/bin/yarn.js*
lrwxrwxrwx 1 root root 36 апр  2 10:10 yarnpkg -> ../lib/node_modules/yarn/bin/yarn.js*
```# Настройка конфигурационного файла для bower для выполнения команд bower от имени root
$ vim ~/.bowerrc
{"allow_root": true}

Настройка прокси

Рекомендую разработчикам всё-таки использовать программы для обхода блокировок, я использую v2rayN, информацию о том, как его получить и использовать, можно найти на Baidu. В отношении услуг, я приобрёл их на сайте http://citysss.xyz/. Стоимость за полгодие составляет 60 юаней, 360 ГБ, что довольно выгодно. Поддерживает прокси SOCKS5. Если вы просто используете Google для поиска информации, можно использовать плагин Ghelper для Chrome.

Это чисто информационное сообщение, без рекламы.

image-20200403194100312

Получение адреса vmess

image-20200403195030572

Нажмите на сервер -> Импортировать URL-адреса из буфера обмена, в нижнем левом углу отобразится открытый локальный порт прокси

image-20200403195213073

Покупка была сделана, но использовалось не так много. Компиляция streamsets использовала около 4 ГБ трафика, поэтому за полгодие, вероятно, не удастся использовать весь трафик.

image-20200403193307791

Настройка прокси для git

# Установка прокси:
git config --global http.proxy 'socks5://127.0.0.1:10808'
git config --global https.proxy 'socks5://127.0.0.1:10808'
# Просмотр прокси:
git config --global --get http.proxy
git config --global --get https.proxy
# Отключение прокси:
git config --global --unset http.proxy
git config --global --unset https.proxy
```# На самом деле, это настройка в файле .gitconfig в корневом каталоге текущего пользователя

### Настройка прокси для Maven

```xml
  <proxies>
    <proxy>
      <id>ss</id>
      <active>true</active>
      <protocol>socks</protocol>
      <host>127.0.0.1</host>
      <port>10808</port>
    </proxy>
  </proxies>

Прокси-агент для StreamSets DataCollector Edge с использованием Gradle

cd /mnt/d/iProject/streamsets/datacollector-edge
vim gradle.properties
appName=streamsets-datacollector-edge
version=3.14.0
gitPath=github.com/streamsets/datacollector-edge
dockerImageName=streamsets/datacollector-edge
binaryName=edge
platforms=linux-arm,linux-arm64,linux-amd64,darwin-amd64,windows-amd64
includeStage=kafka javascript aws
# Добавьте следующую строку
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=10808

Компиляция

cd /mnt/d/iProject/streamset
git clone http://github.com/streamsets/datacollector-api
cd datacollector-api
git checkout -b 3.14.0 3.14.0
sudo mvn clean install -DskipTests

cd /mnt/d/iProject/streamset
git clone http://github.com/streamsets/datacollector-plugin-api
cd datacollector-plugin-api
git checkout -b 3.14.0 3.14.0
sudo mvn clean install -DskipTests

# На данный момент компиляция edge в WSL не проходит, основная причина - не проходит проверка подключенного диска. Я использовал покупку недельного периода ECS от Alibaba для успешной компиляции.
cd /mnt/d/iProject/streamset
git clone https://github.com/streamsets/datacollector-edge.git
cd datacollector-edge
git checkout -b 3.14.0 3.14.0
./gradlew goClean dist publishToMavenLocal

cd /mnt/d/iProject/streamset
git clone http://github.com/streamsets/datacollector
cd datacollector
git checkout -b 3.14.0 3.14.0
sudo mvn package -Pdist,ui -DskipTests -DskipRat

Отладка

cd /mnt/d/iProject/streamset/datacollector/dist/target/streamsets-datacollector-3.14.0/streamsets-datacollector-3.14.0/libexec/
```vim _sdc
# После 100 строки добавьте следующие две строки
# Эта строка включает System.out для com.streamsets.pipeline.BootstrapMain
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dstreamsets.bootstrap.debug=true"
# Эта строка включает System.err для com.streamsets.pipeline.SDCClassLoader

# Настройте ulimit в WSL
ulimit -SHn 65536
# Для просмотра выходных данных загрузки классов можно перенаправить все STDOUT и STDERR в каталог log
./bin/streamsets dc > ./log/start.log 2>&1
# Запуск логи сохранены в каталоге start-class-load-log

Ошибка 1: Отсутствующий файл

Когда возникает ошибка "класс не найден", я подумал, что опять совершил непростительную ошибку. Поэтому я попытался прямо из релизов на GitHub-репозитории StreamSets DataCollector скачать версию 3.14.0. В результате компиляции появилась такая же ошибка.

cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jersey-client-2.25.1.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jersey-common-2.25.1.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jersey-guava-2.25.1.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jackson-jaxrs-json-provider-2.8.9.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/swagger-annotations-1.5.13.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jackson-jaxrs-json-provider-2.8.9.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jackson-jaxrs-base-2.8.4.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jackson-module-jaxb-annotations-2.8.9.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-orchestrator-lib/lib/jackson-datatype-joda-2.8.9.jar ./container-lib/
cp ./streamsets-libs/streamsets-datacollector-jks-credentialstore-lib/lib/airline-0.7.jar ./container-lib/
```#### Ошибка 2: Нарушение прав доступа

DataCollector проверяет права доступа на файлы в директории etc. Увы, WSL пока плохо поддерживает команды chmod, поэтому нам пришлось скопировать директорию datacollector из /mnt/d/iProject/streamset/ в директорию, управляемую Ubuntu.

```shell
$ cd /mnt/d/iProject/streamset/
$ cp -r datacollector /home/etl/

# Попробуем исправить права доступа:
$ chmod 600 *
$ chmod 644 credential-stores.properties
$ chmod 644 dpm.properties
$ chmod 644 keystore.jks
$ chmod 644 ldap-login.conf
$ chmod 644 sdc-log4j.properties
$ chmod 644 sdc-security.policy
$ chmod 644 sdc.properties
$ chmod 644 support-bundle-redactor.json
-rw-r--r-- 1 etl etl     0 апр  3 10:45 application-token.txt
-rw------- 1 etl etl  1583 апр  3 10:45 basic-realm.properties
-rw-r--r-- 1 etl etl 14964 апр  3 10:45 credential-stores.properties
-rw------- 1 etl etl  1626 апр  3 10:45 digest-realm.properties
-rw-r--r-- 1 etl etl  2405 апр  3 10:45 dpm.properties
-rw------- 1 etl etl     8 апр  3 10:45 email-password.txt
-rw------- 1 etl etl  1583 апр  3 10:45 form-realm.properties
-rw------- 1 etl etl     9 апр  3 10:45 keystore-password.txt
-rw-r--r-- 1 etl etl  2275 апр  3 10:45 keystore.jks
-rw------- 1 etl etl     9 апр  3 10:45 ldap-bind-password.txt
-rw-r--r-- 1 etl etl   646 апр  3 10:45 ldap-login.conf
-rw-r--r-- 1 etl etl  1946 апр  3 10:45 sdc-log4j.properties
-rw-r--r-- 1 etl etl  2319 апр  3 10:45 sdc-security.policy
-rw-r--r-- 1 etl etl 32228 апр  3 10:45 sdc.properties
-rw-r--r-- 1 etl etl   881 апр  3 10:45 support-bundle-redactor.json
-rw------- 1 etl etl  1167 апр  3 10:45 vault.properties

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Hu-Lyndon-streamsets-start-asset.git
git@api.gitlife.ru:oschina-mirror/Hu-Lyndon-streamsets-start-asset.git
oschina-mirror
Hu-Lyndon-streamsets-start-asset
Hu-Lyndon-streamsets-start-asset
master