Apache Slider + HBase搭建部署

来源:互联网 发布:sql 表中复制数据 编辑:程序博客网 时间:2024/05/18 01:21

转载来自:https://my.oschina.net/yulongblog/blog/744405

http://www.voidcn.com/article/p-fhcquzfq-boy.html

#Apache Slider + Hbase

##系统环境

安装如下组件,部署可用环境

  • JDK 1.7.0_79

  • Apache Zookeeper 3.4.* Apache Zookeeper

  • Apache Hadoop 2.6.* Apache Hadoop

  • Apache Hbase 0.98.21-hadoop Apache Hbase Download > Apache Hbase配置相关目录及环境变量,不启动服务,主要作用为client连接slider hbase需要使用

  • Apache Slider 0.91.0 Apache Slider >Apache Slider部署参照Apache Slider编译安装

注:mvn编译过程不可以中间停止再开始,会出错。


##Apache Slider编译安装编译

Apache Slider目前是Apache二级孵化项目,主要用途是在YARN上部署用户已有的服务或者组件,如:hbase,storm,kafka.

下载地址:Apache Slider Download,目前最新0.92.0版本,而且对于0.8版本的,官网有编译好的Slider,大概3~40MB.

需要安装软件

  • Apache Hadoop Hadoop 2.6+
  • Apache Zookeeper 3.4+
  • Oracle JDK 1.7 (64-bit)
  • Python 2.6+
  • openssl

需要启动服务(注:编译slider的时候,无需启动任何服务都是mvn自己下载的)

Zookeeper(不需要修改啥)

提供slider应用所需的zookeeper数据存放目录,如hbase的zookeeper.znode.parent

/services/slider/users/{username}/{application_name}#for example:/services/slider/users/hadoop/cl1

将在slider中启动的应用所用container信息注册在此位置

/registry/users/{username}/services/org-apache-slider/{application_name}#for example:/registry/users/hadoop/services/org-apache-slider/cl1/components/container-1473130308719-0016-01-000002

HDFS(不需要修改啥)

提供slider应用包所需的hdfs数据存放目录

 /user/{username}/.slider/package/{package_name}/slider-{package_name}-app-package-{version}.zip #for example: /user/hadoop/.slider/package/HBASE/slider-hbase-app-package-0.98.21-hadoop2.zip

提供slider应用所需的hdfs数据存放目录,包括一些配置以及hdfs数据

 /user/{username}/.slider/cluster/{application_name}/* #for example: /user/hadoop/.slider/cluster/cl1/app_config.json /user/hadoop/.slider/cluster/cl1/confdir /user/hadoop/.slider/cluster/cl1/database /user/hadoop/.slider/cluster/cl1/generated /user/hadoop/.slider/cluster/cl1/history /user/hadoop/.slider/cluster/cl1/internal.json /user/hadoop/.slider/cluster/cl1/resources.json /user/hadoop/.slider/cluster/cl1/snapshot /user/hadoop/.slider/cluster/cl1/tmp

slider应用的全局配置文件app_config.json,可以通过修改进行相关服务配置的修改

 /user/{username}/.slider/cluster/{application_name}/app_config.json #for example: /user/hadoop/.slider/cluster/cl1/app_config.json

Yarn(修改如下)

提供Slider启动时所需要的container.yarn-site.xml需要修改以下配置

<property>  <name>yarn.scheduler.minimum-allocation-mb</name>  <value>256</value>  <description>more than 256 (ensure that YARN can allocate sufficient number of containers),general set to more than 1000 for production environment</description></property><property>  <name>yarn.nodemanager.delete.debug-delay-sec</name>  <value>3600</value>  <description>Number of seconds after an application finishes before the nodemanager's DeletionService will delete the application's localized file directory and log directory. To diagnose Yarn application problems, set this property's value large enough (for example, to 600 = 10 minutes) to permit examination of these directories. After changing the property's value, you must restart the nodemanager in order for it to have an effect. The roots of Yarn applications' work directories is configurable with the yarn.nodemanager.local-dirs property (see below), and the roots of the Yarn applications' log directories is configurable with the yarn.nodemanager.log-dirs property (see also below).</description></property>

注:这块看官网加的还有:http://slider.incubator.apache.org/docs/troubleshooting.html

<!-- we really don't want checking here-->
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>
<property>
  <name>yarn.nodemanager.sleep-delay-before-sigkill.ms</name>
  <value>30000</value>
</property>


##修改hadoop和hbase版本,注释相关内容

(1)在/home/wkz/apache-slider-0.92.0-incubating目录下,也就是解压后的顶级目录下,修改pom.xml

<hadoop.version>2.6.0-cdh5.9.0</hadoop.version><hbase.version>1.2.0-cdh5.9.0</hbase.version><accumulo.version>1.7.0</accumulo.version>

(2)注释掉slider-core和slider-funtest目录下中对hadoop-minicluster包的依赖

<!--<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-minicluster</artifactId><scope>test</scope></dependency>-->

##编译

下载源码包解压至某目录${BUILD_DIR},maven项目,编译命令

mvn clean site:site site:stage package -DskipTests

注:还有一个非官网的mvn编译命令如下

mvn clean package -Dmaven.test.skip=true -DskipTests


执行包生成在

${BUILD_DIR}/apache-slider-0.91.0-incubating/slider-assembly/target/

压缩包为tar.gz和zip格式,任选其一

slider-0.91.0-incubating-all.tar.gzslider-0.91.0-incubating-all.zip

##安装

选择安装目录${SLIDER_INSTALL_DIR}

cp slider-0.91.0-incubating-all.zip ${SLIDER_INSTALL_DIR}cd ${SLIDER_INSTALL_DIR}unzip slider-0.91.0-incubating-all.zipln -s slider-0.91.0-incubating slider

设置环境变量,根据你自己的需要修改/etc/profile或者~/.bash_profile

export SLIDER_HOME=${SLIDER_INSTALL_DIR}/sliderexport PATH=$SLIDER_HOME/bin:$PATH

修改配置文件

$SLIDER_HOME/conf/slider-env.sh:

export JAVA_HOME=/home/wkz/jdk1.7.0_80 

export HADOOP_HOME=/home/wkz/hadoop 

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

##测试 通过slider命令验证一些基本功能。 ###slider help 测试slider help命令查看是否正常,正常说明PATH等环境变量是没有问题的。

[hadoop[@breath](http://my.oschina.net/liu1994) ~]$ slider help2016-09-08 14:29:58,200 [main] INFO  client.SliderClient - Usage: slider COMMAND [options]where COMMAND is one ofam-suicideTell the Slider Application Master to simulate a process failure by terminating itselfbuild Build a Slider cluster specification, but do not start itclientInstall the application client in the specified directory or obtain a client keystore or truststorecreateCreate a live Slider applicationdependencySlider AM and agent dependency (libraries) managementdestroy   Destroy a stopped Slider applicationdiagnostics   Diagnose the configuration of the running slider application and slider clientexistsProbe for an application runningflex  Flex a Slider applicationstop  Stop a running applicationhelp  Print help informationinstall-keytabInstall the Kerberos keytab. Deprecated, use 'keytab --install'.install-package   Install application package. Deprecated, use 'package --install'.kdiag Diagnose Kerberos problemskeytabManage a Kerberos keytab file (install, delete, list) in the sub-folder 'keytabs' of the user's Slider base directorykill-containerKill a container in the applicationlist  List running Slider applicationslookuplook up a YARN applicationnodes List the node information for the YARN cluster or a running applicationpackage   Install/list/delete application packages and list app instances that use the packagesregistry  Query the registry of a YARN applicationresolve   Query the registry of a YARN applicationstatusGet the status of an applicationstart Start a stopped applicationtokenssave tokens to a file or list tokens in a fileupdateUpdate template for a Slider applicationupgrade   Rolling upgrade/downgrade the application to a newer/previous versionversion   Print the Slider version informationMost commands print help when invoked without parameters or with --help2016-09-08 14:29:58,244 [main] INFO  util.ExitUtil - Exiting with status 0

###slider package --list 测试(这块可以放到最后测试)slider package --list命令查看是否正常,正常说明HDFS、YARN等服务配置是正常的。我这里上传了一个HBASE的app包,所以显示HBASE。

[hadoop[@breath](http://my.oschina.net/liu1994) conf]$ slider package --list2016-09-08 14:28:49,187 [main] INFO  client.RMProxy - Connecting to ResourceManager at breath/192.168.246.136:231402016-09-08 14:28:50,102 [main] INFO  client.SliderClient - Package install path : hdfs://breath:9000/user/hadoop/.slider/packageList of installed packages:HBASE2016-09-08 14:28:51,068 [main] INFO  util.ExitUtil - Exiting with status 0

###slider list 测试(这块可以放到最后测试)slider package --list命令查看是否正常,正常说明HDFS、YARN等服务配置是正常的。我这里已经通过HBASE已经启动了一个cluster名为cl1,所以显示cl1状态为RUNNING.

[hadoop[@breath](http://my.oschina.net/liu1994) conf]$ slider list2016-09-08 14:28:24,088 [main] INFO  client.RMProxy - Connecting to ResourceManager at breath/192.168.246.136:23140cl1RUNNING  application_1473130308719_0016  http://breath:23188/proxy/application_1473130308719_0016/2016-09-08 14:28:26,187 [main] INFO  util.ExitUtil - Exiting with status 0


##Hbase App Package编译

###下载Hbase可执行包 Apache Hbase 0.98.21-hadoop Apache Hbase Download 下载软件包hbase-0.98.21-hadoop2-bin.tar.g至/home/hadoop/Downloads目录下,重命名为hbase-0.98.21-hadoop2.tar.gz。

cd /home/hadoop/Downloadsmv hbase-0.98.21-hadoop2-bin.tar.gz hbase-0.98.21-hadoop2.tar.gz

我做的是:

cd /home/wkz

mv  hbase-1.1.12-bin.tar.gz  hbase-1.1.12.tar.gz

###编译环境 > Slider编译环境参照Apache Slider编译安装

Hbase编译命令(以我的为例编译命令执行在:/home/wkz/apache-slider-0.92.0-incubating/app-packages/hbase或者hbase-win,推荐使用hbase,因为hbase-win少了hbase.py文件,这块有点问题,官方说的是那个目录都行,区别不知道)

mvn clean package -DskipTests -Phbase-app-package -Dhbase.version=0.98.21-hadoop2 -Dpkg.version=0.98.21-hadoop2 -Dpkg.name=hbase-0.98.21-hadoop2.tar.gz -Dpkg.src=/home/wkz/Downloads

生成Slider-hbase-app-package-${version}.zip。

${BUILD_DIR}/apache-slider-0.91.0-incubating/app-packages/hbase/target/slider-hbase-app-package-0.98.21-hadoop2.zip

注:mvn编译的时候,内存要给大一点,并且要修改mvn源(我是修改了阿里的,网上有很多,但是修改后编译还是有点卡),我的slider0.91编译了9小时17分钟才成功,之前用的0.8的官网编译好的slider,然后hbase zip 用的还是0.92的apache-slider-0.92.0-incubating进行编译的,没想到竟然还成功部署hbase到yarn了。

我做的是:
mvn clean package -Phbase-app-package-win -Dpkg.version=1.1.12  -Dpkg.name=hbase-1.1.12.tar.gz  -Dpkg.src=/home/wkz

##创建package(注意slider hbase zip的相对或绝对路径要对)

slider package --install --name HBASE --package slider-hbase-app-package-0.98.21-hadoop2.zip

我做的是:

slider package --install --name HBASE --package  slider-hbase-app-package-1.1.12.zip

查看package是否已经上传

hadoop fs -ls /user/wkz/.slider/package/HBASE

替换新的package(该命令我没有实现,0.8的slider版本太低,后来0.91的发现这条命令选项是对的)

slider package --install  --name HBASE --package slider-hbase-app-package-0.98.21-hadoop2.zip --relpacepkg


删除package

slider package --delete --name HBASE 

注:就算使用 sliderpackage--delete --name HBASE --package slider-hbase-app-package-0.98.21-hadoop2.zip,最后删除的也是

/user/wkz/.slider/package/HBASE整个目录

##创建slider app ###slider app配置文件 需要配置如下两个配置文件

${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbase/appConfig-default.json${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbase/resources-default.json

拷贝以供修改使用

cd ${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbasecp appConfig-default.json appConfig.jsoncp resources-default.json resources.json

####appConfig.json appConfig.json配置为Hbase相关服务的参数配置,可以理解为通过此文件生成服务启动时的hbase-site.xml和hbase-env.sh

#####默认配置如下

{    "schema": "http://example.org/specification/v2.0.0",    "metadata": {    },    "global": {        "application.def": ".slider/package/HBASE/slider-hbase-app-package-${pkg.version}.zip",        "create.default.zookeeper.node": "true",        "java_home": "/usr/jdk64/jdk1.7.0_67",        "system_configs": "core-site",        "site.global.app_user": "yarn",        "site.global.app_version": "${hbase.version}",        "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/hbase-${hbase.version}",        "site.global.metric_collector_host": "${NN_HOST}",        "site.global.metric_collector_port": "6188",        "site.global.metric_collector_lib": "",        "site.global.hbase_instance_name": "instancename",        "site.global.hbase_root_password": "secret",        "site.global.user_group": "hadoop",        "site.global.monitor_protocol": "http",        "site.global.hbase_thrift_port": "${HBASE_THRIFT.ALLOCATED_PORT}",        "site.global.hbase_thrift2_port": "${HBASE_THRIFT2.ALLOCATED_PORT}",        "site.global.hbase_rest_port": "${HBASE_REST.ALLOCATED_PORT}",        "site.hbase-env.hbase_master_heapsize": "1024m",        "site.hbase-env.hbase_regionserver_heapsize": "1024m",        "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}/data",        "site.hbase-site.hbase.superuser": "${USER_NAME}",        "site.hbase-site.hbase.tmp.dir": "${AGENT_WORK_ROOT}/work/app/tmp",        "site.hbase-site.hbase.local.dir": "${hbase.tmp.dir}/local",        "site.hbase-site.hbase.zookeeper.quorum": "${ZK_HOST}",        "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}",        "site.hbase-site.hbase.regionserver.info.port": "0",        "site.hbase-site.hbase.bulkload.staging.dir": "/user/${USER_NAME}/hbase-staging",        "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint",        "site.hbase-site.hbase.master.info.port": "${HBASE_MASTER.ALLOCATED_PORT}",        "site.hbase-site.hbase.regionserver.port": "0",        "site.hbase-site.hbase.master.port": "0"    },    "components": {        "slider-appmaster": {            "jvm.heapsize": "1024M"        }    }}

#####根据测试集群调整配置如下

{    "schema": "http://example.org/specification/v2.0.0",    "metadata": {    },    "global": {
#下面所有出现的${pkg.version}换成你的生成的hbase zip的版本,我的是1.1.12        "application.def": ".slider/package/HBASE/slider-hbase-app-package-${pkg.version}.zip",        "create.default.zookeeper.node": "true",        "java_home": "/home/wkz/jdk1.7.0_80",        "system_configs": "core-site",        "site.global.app_user": "wkz",        "site.global.app_version": "${pkg.version}",        "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/hbase-${pkg.version}",        "site.global.metric_collector_host": "${NN_HOST}",#我改为了slave3,namenode的ip        "site.global.metric_collector_port": "6188",        "site.global.metric_collector_lib": "",        "site.global.hbase_instance_name": "instancename",        "site.global.hbase_root_password": "secret",        "site.global.user_group": "wkz",        "site.global.monitor_protocol": "http",        "site.global.hbase_thrift_port": "${HBASE_THRIFT.ALLOCATED_PORT}",        "site.global.hbase_thrift2_port": "${HBASE_THRIFT2.ALLOCATED_PORT}",        "site.global.hbase_rest_port": "${HBASE_REST.ALLOCATED_PORT}",        "site.hbase-env.hbase_master_heapsize": "1024m",        "site.hbase-env.hbase_regionserver_heapsize": "1024m",        "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}/data",        "site.hbase-site.hbase.superuser": "wkz",        "site.hbase-site.hbase.tmp.dir": "${AGENT_WORK_ROOT}/work/app/tmp",        "site.hbase-site.hbase.local.dir": "/home/wkz/hbase-1-1.12/local",        "site.hbase-site.hbase.zookeeper.quorum": "slave3,slave4,slave5",        "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}",        "site.hbase-site.hbase.regionserver.info.port": "0",        "site.hbase-site.hbase.bulkload.staging.dir": "/user/wkz/hbase-staging",        "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint",        "site.hbase-site.hbase.master.info.port": "${HBASE_MASTER.ALLOCATED_PORT}",        "site.hbase-site.hbase.regionserver.port": "0",        "site.hbase-site.hbase.master.port": "0",        "site.hbase-site.hbase.cluster.distributed": "true"    },    "components": {        "slider-appmaster": {            "jvm.heapsize": "1024M"        }    }}

其中测试时如下几项修改比较重要:

  • JAVA_HOME
    "java_home": "/home/wkz/jdk1.7.0_80",

  • Zookeeper集群主机列表,主机名逗号隔开
    "site.hbase-site.hbase.zookeeper.quorum": "slave3,slave4,slave5",

  • hbase.local.dir参数设置,默认参数若不能使用导致服务不能启动 "site.hbase-site.hbase.local.dir": 
    "/home/wkz/hbase-1-1.12/local"

  • hbase.cluster.distributed必须设置为true,表示为分布式,否则local模式导致hbase启动minizookeepercluster,与目前的zookeeper集群端口产生冲突。
    "site.hbase-site.hbase.cluster.distributed": "true"

####resource.json resource.json的配置主要是设置Hbase中不同服务启动时的container相关参数

#####默认配置如下

{  "schema": "http://breath/specification/v2.0.0",  "metadata": {  },  "global": {    "yarn.log.include.patterns": "",    "yarn.log.exclude.patterns": "",    "yarn.component.instances": "1",    "yarn.vcores": "1"  },  "components": {    "slider-appmaster": {      "yarn.memory": "1024"    },    "HBASE_MASTER": {      "yarn.role.priority": "1",      "yarn.component.instances": "1",      "yarn.placement.escalate.seconds": "10",      "yarn.memory": "1500"    },    "HBASE_REGIONSERVER": {      "yarn.role.priority": "2",      "yarn.component.instances": "2",      "yarn.memory": "1500",      "yarn.container.failure.threshold": "15",      "yarn.placement.escalate.seconds": "60"    },    "HBASE_REST": {      "yarn.role.priority": "3",      "yarn.component.instances": "1",      "yarn.component.placement.policy": "1",      "yarn.memory": "556"    },    "HBASE_THRIFT": {      "yarn.role.priority": "4",      "yarn.component.instances": "1",      "yarn.component.placement.policy": "1",      "yarn.memory": "556"    },    "HBASE_THRIFT2": {      "yarn.role.priority": "5",      "yarn.component.instances": "1",      "yarn.component.placement.policy": "1",      "yarn.memory": "556"    }  }}

###通过slider启动hbase 此处cl1为为启动的slider-hbase的一个实例名称。后文用${slider_application_name}表示

  • 创建(这块如果是在appConfig.json和 resources.json所在目录下可以这样使用相对路径执行;如果不在,那么必须指定appConfig.json和resources.json的能访问到的相对路径或者绝对路径)

    slider create cl1 --template appConfig.json --resources resources.json

  • 启动

    slider start cl1

  • 关闭

    slider stop cl1

  • 摧毁(必须先关闭才能删除)

    slider destroy --force cl1

    注:0.8的需要使用
    slider destroy cl1

###通过YARN WEB端页面查看应用是否正常启动




###登录Slider Hbase ####客户端程序 解压slider-hbase-app-package-0.98.21-hadoop2.zip包含两个python脚本,可以将这两个脚本放置在$HBASE_HOME/bin或者$SLIDER_HOME/bin,不要忘记给hbase-slider赋权为:chmod a+x hbase-slider

hbase-slider.pyhbase-slider

#####client端配置 配置默认加载为${USER_HOME}/{slider_application_name}/conf 将$HBASE_HOME/conf拷贝至此.

注1:我测试的时候,没有在家目录下自动出现cl1目录,我是mkdir -p cl1/conf,然后cp -r hbase/conf/* cl1/conf/。

注2:我测试的时候,发现hbase-slider.py,里面的hbase路径没有自动更改,需要修改hbase_conf_dir="/etc/hbase/conf"为hbase_conf_dir="/home/wkz/hbase-1.1.12/conf"

[hadoop[@ breath] ~]$ tree $HOME/cl1/home/hadoop/cl1└── conf    ├── hadoop-metrics2-hbase.properties    ├── hbase-env.cmd    ├── hbase-env.sh    ├── hbase-policy.xml    ├── hbase-site.xml    ├── log4j.properties    └── regionservers1 directory, 7 files

#####hbase-slider测试 

注(暂定):这块经测试没成功,必须要启动 habse服务,才能进行各种操作,否则出现如下错误:

hbase(main):001:0> list
TABLE                                                                                                                                 
ERROR: Can't get master address from ZooKeeper; znode data == null
Here is some help for this command:
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:
  hbase> list
  hbase> list 'abc.*'
  hbase> list 'ns:abc.*'
  hbase> list 'ns:.*'

[hadoop[@ breath] ~]$ hbase-slider cl1/home/hadoop/cl1/conf/hbase-site.xml is -0.0106352635887 hours oldRunning: hbase --config /home/hadoop/cl1/conf shell16/09/08 16:23:41 INFO Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.availableHBase Shell; enter 'help<RETURN>' for list of supported commands.Type "exit<RETURN>" to leave the HBase ShellVersion 0.98.14-hadoop2, r4e4aabb93b52f1b0fef6b66edd06ec8923014dec, Tue Aug 25 22:35:44 PDT 2015hbase(main):001:0> listTABLE                                                                                                                                                                            SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/beh/core/hbase/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/opt/beh/core/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.0 row(s) in 5.8140 seconds=> []hbase(main):002:0> create 'testtable','info'0 row(s) in 1.0310 secondshbase(main):004:0> put 'testtable','1','info:name','zyl'0 row(s) in 0.6850 secondshbase(main):006:0> scan 'testtable'ROW                                           COLUMN+CELL                                                                                                                         1                                            column=info:name, timestamp=1473323556298, value=zyl                                                                               1 row(s) in 0.0760 seconds


#####官网example测试 (http://slider.incubator.apache.org/docs/examples.html)

按照管网要求,启动hadoop:start-all.sh(说不推荐使用这个,我没遇到坑,就没管)

启动zk:三台机器(slave3 主,slave4  从,slave5 从)

然后提交habse包到hdfs上:hdfs dfs -copyFromLocal hbase-1.1.12-bin.tar hdfs://slave3:9000/hbase.tar

注:这块官网是:master:9090,其实这块是根据 hadoop/etc/hadoop/core-siter.xml来的,如下:

<property>
<name>fs.defaultFS</name>
<value>hdfs://slave3:9000</value>
</property>
<property>

然后创建slider cluster:

官网的如下:

slider  create cl1 \--component worker 1  --component master 1 \ --manager master:8032 --filesystem hdfs://master:9090 \ --zkhosts localhost:2181 --image hdfs://master:9090/hbase.tar

我的测试如下:

slider create w2 --component worker 1 --component slave3 1 --manager slave3:18040 --filesystem hdfs://slave3:9000 --zkhosts slave3:2181,slave4:2181,slave5:2181 --image hdfs://slave3:9000/hbase.tar  

其中: --manager slave3:18040 是根据hadoop/etc/hadoop/yarn-siter.xml来定的,如下:

<property>
<name>yarn.resourcemanager.address</name>
<value>slave3:18040</value>
</property>
<property>

运行后出现如下错误:

2017-12-01 09:47:35,839 ERROR [main] main.ServiceLauncher: Application definition must be provided. Missing option application.def from set global
2017-12-01 09:47:35,841 INFO  [main] util.ExitUtil: Exiting with status 77

注:个人感觉是因为官方编译的0.8的slider版本太低

后改为:

slider create w2 --component worker 1 --component slave3 1 --manager slave3:18040 --filesystem hdfs://slave3:9000 --zkhosts slave3:2181,slave4:2181,slave5:2181 --image hdfs://slave3:9000/hbase.tar  --template appConfig.json --resources resources.json

运行后出现如下错误:

2017-12-01 09:58:53,750 ERROR [main] main.ServiceLauncher: Component slave3 is not a member of application.
2017-12-01 09:58:53,774 INFO  [main] util.ExitUtil: Exiting with status 77

后来又加上:--component slave4 1 --component slave5 1 --component slave3 1 ,报错类型一样。

最终改为如下,终于成功:(注:这块/home/wkz/w2/conf/*,还是要手动创建,里面需要有所有配置文件)

slider create w2   --manager slave3:18040 --filesystem hdfs://slave3:9000 --zkhosts slave3:2181,slave4:2181,slave5:2181 --image hdfs://slave3:9000/hbase.tar  --template appConfig.json --resources resources.json

注:以上指定的 appConfig.json和 resources.json要注意相对路径或绝对路径正确。

开始slider cluster:(也是需要启动hbase,不然报错一样)

slider start w2 --manager  slave3:18040 --filesystem hdfs://slave3:9000

测试hbase slider:hbase-slider w2

hbase(main):002:0> listTABLE                                                                                                                                 blog2                                                                                                                                 testtable                                                                                                                             wlan                                                                                                                                  3 row(s) in 3.4720 seconds=> ["blog2", "testtable", "wlan"]

附录:官网样例的其他命令

# stop a clusterslider stop cl1 \--manager master:8032 --filesystem hdfs://master:9090# start a clusterslider start cl1 \--manager master:8032 --filesystem hdfs://master:9090# destroy the clusterslider destroy cl1 \--manager master:8032 --filesystem hdfs://master:9090# list clustersslider list cl1 \--manager master:8032 --filesystem hdfs://master:9090slider flex cl1 --component worker 2--manager master:8032 --filesystem hdfs://master:9090 \--component worker 5



原创粉丝点击