From dc3b8d855fc4efbe6e495e7504159a8413d7dbbe Mon Sep 17 00:00:00 2001 From: philo Date: Tue, 11 Dec 2018 11:02:24 +0800 Subject: [PATCH 1/3] add deployment guide in Chinese --- docs/ssm-deployment-guide-Chinese.md | 338 +++++++++++++++++++++++++++ 1 file changed, 338 insertions(+) create mode 100644 docs/ssm-deployment-guide-Chinese.md diff --git a/docs/ssm-deployment-guide-Chinese.md b/docs/ssm-deployment-guide-Chinese.md new file mode 100644 index 00000000000..ddfdb90e311 --- /dev/null +++ b/docs/ssm-deployment-guide-Chinese.md @@ -0,0 +1,338 @@ +[TOC] + +# 1. 编译安装包 + +将编译好的安装包`smart-data-1.5.0-SNAPSHOT.tar.gz`上传到server节点,例如上传到`lhccmh2`的`/opt`目录,并解压: + +``` +$ cd /opt +$ tar -zxvf smart-data-1.5.0-SNAPSHOT.tar.gz +$ cd smart-data-1.5.0-SNAPSHOT +``` + +# 2. 配置SSM + +## 2.1 配置访问Namenode + +生产集群默认开启Namenode-HA模式,下面以启用Namenode高可用场景为例: + +编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: + +``` +$ vim conf/smart-site.xml + + + smart.hadoop.conf.path + /usr/bch/3.0.0/hadoop/etc/hadoop + Hadoop main cluster configuration file path + +``` + +> 其中目录`/usr/bch/3.0.0/hadoop/etc/hadoop`包含hdfs的所有配置文件,例如`hdfs-site.xml`、`core-site.xml`。 + +## 2.2 配置忽略Dirs + +默认情况下,SSM启动时将获取整个HDFS命名空间。若不关心某些目录下的文件,那么可添加如下配置来忽略这些文件,并且`rules`也不会触发这些文件相关的`actions`: + + +编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: + +``` +$ vim conf/smart-site.xml + + + smart.ignore.dirs + /foodirA,/foodirB + +``` + +## 2.3 配置Smart Server + +SSM支持运行多个Smart Server以获得高可用,其中只有一个Smart Server处于active状态并提供服务,当active的Smart Server失败时,standby的Smart Server将取代它。 + +编辑`${SMART_HOME}/conf/servers`文件,添加主机名或IP: + +``` +$ vim conf/servers +lhccmh2 +``` +其中active的Smart Server是第一个节点,若启用了HA,故障恢复后,可通过`hdfs dfs -cat /system/ssm.id`命令查看当前active的Smart Server。 + +为获得更好的性能,可能需要适当调整相应的JVM参数,例如: + +编辑`${SMART_HOME}/conf/smart-env.sh`文件,为所有SSM服务(包括Smart Server和Smart Agent)设置最大堆大小: + +``` +$ vim conf/smart-env.sh +export SSM_JAVA_OPT="-XX:MaxHeapSize=10g" +``` +若仅为Smart Server设置最大堆大小,方法如下: + +``` +$ vim conf/smart-env.sh +export SSM_SERVER_JAVA_OPT="-XX:MaxHeapSize=6g" +``` + +## 2.4 配置Smart Agent + +编辑`${SMART_HOME}/conf/agents`文件,添加主机名或IP: + +``` +$ vim conf/agents +lhccmh3 +lhccmh4 +``` + +若仅为Smart Agent设置最大堆大小,方法如下: + +``` +$ vim conf/smart-env.sh +export SSM_AGENT_JAVA_OPT="-XX:MaxHeapSize=6g" +``` + +> 注:Smart Sever需要能免密SSH到上述文件中的所有Smart Agent节点,Smart Agents将会安装到跟Smart Sever一样的目录下。 + +## 2.5 配置Database + +首先需要安装一个MySQL实例,也可采用集群使用的Database,然后编辑`${SMART_HOME}/conf/druid.xml`文件,添加如下配置: + +``` + + jdbc:mysql://lhccmh2:3306/ssm?useSSL=false + root + root + +``` +其中`ssm`是数据库名。连接到相应的MySQL后,创建`ssm`数据库并赋相应的权限,步骤大致如下: + +``` +$ mysql -uroot -proot + +mysql> create database ssm; +Query OK, 1 row affected (0.00 sec) + +mysql> GRANT ALL PRIVILEGES ON ssm.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; +Query OK, 0 rows affected, 1 warning (0.00 sec) + +mysql> FLUSH PRIVILEGES; +Query OK, 0 rows affected (0.00 sec) + +mysql> use ssm; +Database changed + +mysql> show tables; +Empty set (0.00 sec) +``` + +> 注:推荐使用`MySQL 5.7.18+`版本,否则可能会出现建表索引过长异常:`Specified key was too long; max key length is 767 bytes`。 + +## 2.6 配置账号访问Web UI + +SSM Web UI默认账号密码是`admin/ssm@123`,可编辑`${SMART_HOME}/conf/shiro.ini`文件进行修改: + +``` +$ vim conf/shiro.ini +[users] +admin = ssm@123, admin +``` + +## 2.7 配置Kerberos + +若Hadoop集群开启Kerberos,则SSM也需要开启Kerberos以访问安全的集群,编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: + +``` + + smart.security.enable + true + + + smart.server.keytab.file + /etc/security/keytabs/hdfs.headless.keytab + + + smart.server.kerberos.principal + hdfs-ikobe@KOBE.COM + + + smart.agent.keytab.file + /etc/security/keytabs/hdfs.headless.keytab + + + smart.agent.kerberos.principal + hdfs-ikobe@KOBE.COM + +``` + +> 注:SSM需要启动用户具有HDFS超级用户权限来访问一些Namenode Api,由于集群开启了Kerberos,为了简便,Smart Server和Smart Agent的keytab文件均采用`hdfs.headless.keytab`,对应的principal为`hdfs`(具有超级用户权限),因此可使用root用户运行SSM。 + + +# 3. 部署SSM + +如果需要更好的性能,建议在每个Datanode上部署一个Agent。运行`${SMART_HOME}/bin/install.sh`脚本: + +``` +$ bin/install.sh +``` + +> `--config`选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。 + +> 注:Smart Sever需要能免密SSH到所有Smart Agent节点,Smart Agents将会安装到跟Smart Sever一样的目录下。 + +# 4. 运行SSM + +运行SSM服务的先决条件: + +1. SSM需要HDFS超级用户权限来访问一些Namenode Api,因此需确保启动SSM的用户账号有此特权。 +2. SSM启动过程需要用户能够免密SSH到本地主机和所有Agent节点。 + +- 查看`hdfs-site.xml`中`dfs.permissions.superusergroup`属性来获取HDFS超级用户组,方法如下: + +``` +$ cat /usr/bch/3.0.0/hadoop/etc/hadoop/hdfs-site.xml | grep -C 5 'dfs.permissions.superusergroup' + ... + + dfs.permissions.superusergroup + hdfs + +``` + +- 将其他用户添加到HDFS超级用户组方法如下,以smartserver为例: + +``` +$ vim hdfs-site.xml + + hadoop.user.group.static.mapping.overrides + smartserver=hdfs; + +``` + +## 4.1 启动SSM + +运行`${SMART_HOME}/bin/start-ssm.sh`脚本: + +``` +$ bin/start-ssm.sh -format --config conf/ +``` + +> `-format`选项用于第一次启动SSM时格式化数据库,启动时会删掉`druid.xml`中配置数据库中的所有表,并创建SSM需要的所有表;`--config `选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。如果配置了`agents`,该脚本将远程逐个启动Smart Agent。 + +查看启动进程,如下: + +``` +$ jps +22691 SmartDaemon +17756 SmartAgent +``` + +SSM启动成功后,可通过以下WEB UI访问: + +``` +http://Active_SSM_Server_IP:7045 +``` + +## 4.2 停止SSM + +运行`${SMART_HOME}/bin/stop-ssm.sh`脚本: + +``` +$ bin/stop-ssm.sh +``` + +# 5. 测试SSM EC + +- 查看当前Hadoop集群的EC策略,默认开启`RS-6-3-1024k`: + +``` +$ hdfs ec -listPolicies +Erasure Coding Policies: +ErasureCodingPolicy=[Name=RS-10-4-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=10, numParityUnits=4]], CellSize=1048576, Id=5], State=DISABLED +ErasureCodingPolicy=[Name=RS-3-2-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=3, numParityUnits=2]], CellSize=1048576, Id=2], State=DISABLED +ErasureCodingPolicy=[Name=RS-6-3-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=1], State=ENABLED +ErasureCodingPolicy=[Name=RS-LEGACY-6-3-1024k, Schema=[ECSchema=[Codec=rs-legacy, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=3], State=DISABLED +ErasureCodingPolicy=[Name=XOR-2-1-1024k, Schema=[ECSchema=[Codec=xor, numDataUnits=2, numParityUnits=1]], CellSize=1048576, Id=4], State=DISABLED +``` + +- 启用`RS-3-2-1024k`策略: + +``` +$ hdfs ec -enablePolicy -policy RS-3-2-1024k +Erasure coding policy RS-3-2-1024k is enabled +``` + +- 创建测试文件: + +``` +$ hdfs dfs -mkdir -p /user/ssm +$ hdfs dfs -copyFromLocal autodeploy-hc.sh /user/ssm +$ hdfs ec -getPolicy -path /user/ssm/autodeploy-hc.sh +The erasure coding policy of /user/ssm/autodeploy-hc.sh is unspecified +``` + + +## 5.1 添加Rules + +### 5.1.1 提交Rule + +![image](https://note.youdao.com/yws/api/personal/file/E68FD7EA4092418BA0EDBB0C43F3F190?method=download&shareKey=1c746748a02647577eee2813c7218d4f) + +Rule为: + +``` +file: path matches "/user/ssm/*.sh" and age > 10min | ec -policy RS-3-2-1024k +``` + +### 5.1.2 开启Rule + +![image](https://note.youdao.com/yws/api/personal/file/5F9AB289A70B4F14B91A79CD1C5FBB37?method=download&shareKey=b7a540a2a009adeaec755507e091c76e) + +Rule Enable后状态由`DISABLED`变为`ACTIVE`,如下: + +![image](https://note.youdao.com/yws/api/personal/file/137500F0E9B54EE9AC5367F72BBE7B17?method=download&shareKey=f10a66fba97818885f41c100fe344a9c) + +### 5.1.3 Rule触发Action + +![image](https://note.youdao.com/yws/api/personal/file/AAB2F8A254DE41659EE558F7815BEF9E?method=download&shareKey=0d68c60708cbf98ae7456b5b3aa81560) + +运行结果为: + +![image](https://note.youdao.com/yws/api/personal/file/6870BFED1E8346E9BCA31E40A87BEABD?method=download&shareKey=a7dceb885dced7f16809b735b29d67e5) + +后台核实该文件策略: + +``` +$ hdfs ec -getPolicy -path /user/ssm/autodeploy-hc.sh +RS-3-2-1024k +$ hdfs fsck /user/ssm/autodeploy-hc.sh -files -blocks -locations +Connecting to namenode via http://lhccmh3:50070/fsck?ugi=hdfs&files=1&blocks=1&locations=1&path=%2Fuser%2Fssm%2Fautodeploy-hc.sh +FSCK started by hdfs (auth:KERBEROS_SSL) from /10.139.17.59 for path /user/ssm/autodeploy-hc.sh at Thu Dec 06 14:58:11 CST 2018 +/user/ssm/autodeploy-hc.sh 2057 bytes, erasure-coded: policy=RS-3-2-1024k, 1 block(s): OK +0. BP-2104048606-10.139.17.60-1542612977908:blk_-9223372036854775536_4409 len=2057 Live_repl=3 [blk_-9223372036854775536:DatanodeInfoWithStorage[10.139.17.61:1019,DS-494836d4-12ef-4ea8-808e-b2384ae231bb,DISK], blk_-9223372036854775533:DatanodeInfoWithStorage[10.139.17.127:1019,DS-18738899-bdb5-4fb3-a9db-5f9ff729ba86,DISK], blk_-9223372036854775532:DatanodeInfoWithStorage[10.139.17.119:1019,DS-1a9abde8-2d99-4824-b5a0-542a9367c597,DISK]] +... +``` + +取消EC策略的Rule可设置如下: + +``` +file: path matches "/user/ssm/*.sh" and age > 10min | unec +``` + + +## 5.2 添加Action + +### 5.2.1 运行Action + +![image](https://note.youdao.com/yws/api/personal/file/19042C0298BE43BA9744E1113325C254?method=download&shareKey=8b1839954f378b304d7ccf42d07f77db) + +### 5.2.2 查看Action运行状态 + +![image](https://note.youdao.com/yws/api/personal/file/4AC86119B24540B78851F90B67D5A7FA?method=download&shareKey=b1522ffa478fd2b5310e279ce7f12687) + +### 5.2.3 查看Action运行结果 + +![image](https://note.youdao.com/yws/api/personal/file/E111DF607C2A410BA21D3096276C4F7E?method=download&shareKey=bece41c2083c0a9f6bf6391a5f212066) + + +参考网址: +* https://github.com/Intel-bigdata/SSM/blob/trunk/docs/ssm-deployment-guide.md +* https://github.com/Intel-bigdata/SSM/blob/trunk/docs/enable-kerberos.md +* https://github.com/Intel-bigdata/SSM/blob/trunk/docs/admin-user-guide.md From 1f49882edcbb93162db25b3e3f36e8d38a325e23 Mon Sep 17 00:00:00 2001 From: philo Date: Wed, 12 Dec 2018 10:32:24 +0800 Subject: [PATCH 2/3] modify deployment guide --- docs/ssm-deployment-guide.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ssm-deployment-guide.md b/docs/ssm-deployment-guide.md index a657287c481..7c881ab0250 100755 --- a/docs/ssm-deployment-guide.md +++ b/docs/ssm-deployment-guide.md @@ -26,15 +26,15 @@ Download SSM branch from Github https://github.com/Intel-bigdata/SSM/ ### For CDH 5.10.1 - `mvn clean package -Pdist,web,hadoop-cdh-2.6 -DskipTests` + mvn clean package -Pdist,web,hadoop-cdh-2.6 -DskipTests ### For Hadoop 2.7.3 - `mvn clean package -Pdist,web,hadoop-2.7 -DskipTests` + mvn clean package -Pdist,web,hadoop-2.7 -DskipTests ### For Hadoop 3.1.0 - `mvn clean package -Pdist,web,hadoop-3.1 -DskipTests` + mvn clean package -Pdist,web,hadoop-3.1 -DskipTests A tar distribution package will be generated under 'smart-dist/target'. unzip the tar distribution package to ${SMART_HOME} directory, the configuration files of SSM is under '${SMART_HOME}/conf'. More detailed information, please refer to BUILDING.txt file. @@ -183,7 +183,7 @@ Enter into ${SMART_HOME} directory for running SSM. You can type `./bin/ssm vers `--help` `-h` Show the usage information. - `-format` This option `should` be used in the first time starting SSM server for formatting the database. The option will drop all tables in the database configured in druid.xml and create all tables required by SSM. + `-format` This option is used to format the database configured for SSM use during the starting of Smart Server. All tables in this database will be dropped and then new tables will be created. `--config ` can be used to specify where the config directory is. `${SMART_HOME}/conf` is the default config directory if the config option is not used. From 100d34e833c983b2de364f3fc29fb4e27934dd57 Mon Sep 17 00:00:00 2001 From: philo Date: Wed, 12 Dec 2018 13:36:11 +0800 Subject: [PATCH 3/3] refine chinese doc --- docs/ssm-deployment-guide-Chinese.md | 341 ++++++++++----------------- 1 file changed, 122 insertions(+), 219 deletions(-) diff --git a/docs/ssm-deployment-guide-Chinese.md b/docs/ssm-deployment-guide-Chinese.md index ddfdb90e311..ddc23931544 100644 --- a/docs/ssm-deployment-guide-Chinese.md +++ b/docs/ssm-deployment-guide-Chinese.md @@ -1,228 +1,222 @@ -[TOC] +# SSM配置与部署 + +# 简介 + +Intel® Smart Storage Management (SSM) 项目致力于提供针对HDFS数据的智能管理方案。SSM有如下几个重要的功能。 + +- SSM mover,用于冷热数据分层管理。根据用户定制的SSM规则,SSM区分出冷热数据,将冷热数据分别迁移到合适的存储介质上,合理利用不同的存储设备。 +- SSM小文件优化,能将HDFS小文件合并成一个大文件,在合并后,仍然支持对小文件透明的读操作。 +- SSM data sync,能够将一个HDFS集群中的数据自动同步到另一个集群上。 +- SSM EC (Erasure Coding),可将HDFS数据转化成某个EC策略下的数据,能够显著减少占用的存储空间。 +- SSM compression,可按照指定的压缩算法,将HDFS文件压缩。 + +项目代码链接:https://github.com/Intel-bigdata/SSM/ + +本文概括了SSM的基本配置与部署步骤。 # 1. 编译安装包 -将编译好的安装包`smart-data-1.5.0-SNAPSHOT.tar.gz`上传到server节点,例如上传到`lhccmh2`的`/opt`目录,并解压: +从SSM代码仓库下载SSM源码,针对不同的Hadoop版本,采用如下不同的编译命令。 -``` -$ cd /opt -$ tar -zxvf smart-data-1.5.0-SNAPSHOT.tar.gz -$ cd smart-data-1.5.0-SNAPSHOT -``` +#### CDH 5.10.1 -# 2. 配置SSM + mvn clean package -Pdist,web,hadoop-cdh-2.6 -DskipTests -## 2.1 配置访问Namenode +#### Hadoop 2.7.3 -生产集群默认开启Namenode-HA模式,下面以启用Namenode高可用场景为例: + mvn clean package -Pdist,web,hadoop-2.7 -DskipTests -编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: +#### Hadoop 3.1.0 -``` -$ vim conf/smart-site.xml + mvn clean package -Pdist,web,hadoop-3.1 -DskipTests - - smart.hadoop.conf.path - /usr/bch/3.0.0/hadoop/etc/hadoop - Hadoop main cluster configuration file path - -``` +编译好的安装包smart-data-*.tar.gz位于SSM/smart-dist/target下,可将其传到server节点,并解压,得到smart-data-*为${SMART_HOME} + +# 2. 配置SSM -> 其中目录`/usr/bch/3.0.0/hadoop/etc/hadoop`包含hdfs的所有配置文件,例如`hdfs-site.xml`、`core-site.xml`。 +## 2.1 配置访问Namenode -## 2.2 配置忽略Dirs +1) 生产集群HDFS通常开启namenode-HA模式,该场景下配置SSM如下: + 编辑${SMART_HOME}/conf/smart-site.xml文件,配置Hadoop的conf目录,如下: -默认情况下,SSM启动时将获取整个HDFS命名空间。若不关心某些目录下的文件,那么可添加如下配置来忽略这些文件,并且`rules`也不会触发这些文件相关的`actions`: + ```xml + + smart.hadoop.conf.path + /root/hadoop-3.1.0/etc/hadoop + Hadoop main cluster configuration file path + + ``` +> 其中目录`/root/hadoop-3.1.0/etc/hadoop`包含hdfs的所有配置文件,例如`hdfs-site.xml`、`core-site.xml`等。 -编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: +2) 如果HDFS集群开启了Kerberos认证,也要采用上面的配置。 +3) 如果HDFS集群没有开启namenode-HA及Kerberos认证,可只配置namenode rpc地址,如下所示: + ```xml + + smart.dfs.namenode.rpcserver + hdfs://node1:9000 + + ``` -``` -$ vim conf/smart-site.xml +## 2.2 配置忽略HDFS数据目录 \[可选] +默认情况下,SSM启动时将获取整个HDFS命名空间。若不关心某些目录下的文件,那么可修改如下配置来忽略这些文件,并且提交的rule也不会触发与这些文件相关的actions: + +编辑${SMART_HOME}/conf/smart-default.xml文件,以忽略/foo-dirA,/foo-dirB为例,修改如下: + +```xml smart.ignore.dirs - /foodirA,/foodirB + /foo-dirA,/foo-dirB ``` -## 2.3 配置Smart Server +## 2.3 配置Smart Server \[可选] -SSM支持运行多个Smart Server以获得高可用,其中只有一个Smart Server处于active状态并提供服务,当active的Smart Server失败时,standby的Smart Server将取代它。 +SSM支持运行一个或多个Smart Server。多个Smart Server用来保证HA,其中只有一个Smart Server处于active状态并提供相应服务,当active Smart Server失败时,standby Smart Server将变成active状态。 +* SSM默认只配置了一个Smart Server,即localhost,如需SSM HA模式,可操作如下。 -编辑`${SMART_HOME}/conf/servers`文件,添加主机名或IP: + 编辑`${SMART_HOME}/conf/servers`文件,添加主机名或IP: -``` -$ vim conf/servers -lhccmh2 -``` -其中active的Smart Server是第一个节点,若启用了HA,故障恢复后,可通过`hdfs dfs -cat /system/ssm.id`命令查看当前active的Smart Server。 + ``` + node1 + node2 + ``` + 其中active的Smart Server是第一个节点,若启用了HA,故障恢复后,可通过`hdfs dfs -cat /system/ssm.id`命令查看当前active的Smart Server。 -为获得更好的性能,可能需要适当调整相应的JVM参数,例如: +* 为获得更好的性能,可能需要适当调整相应的JVM参数,例如: -编辑`${SMART_HOME}/conf/smart-env.sh`文件,为所有SSM服务(包括Smart Server和Smart Agent)设置最大堆大小: + 编辑`${SMART_HOME}/conf/smart-env.sh`文件,为所有SSM服务(包括Smart Server和Smart Agent)设置最大堆大小: -``` -$ vim conf/smart-env.sh -export SSM_JAVA_OPT="-XX:MaxHeapSize=10g" -``` -若仅为Smart Server设置最大堆大小,方法如下: + ``` + export SSM_JAVA_OPT="-XX:MaxHeapSize=10g" + ``` + 若仅为Smart Server设置最大堆大小,方法如下: -``` -$ vim conf/smart-env.sh -export SSM_SERVER_JAVA_OPT="-XX:MaxHeapSize=6g" -``` + ``` + export SSM_SERVER_JAVA_OPT="-XX:MaxHeapSize=6g" + ``` -## 2.4 配置Smart Agent +## 2.4 配置Smart Agent \[可选] -编辑`${SMART_HOME}/conf/agents`文件,添加主机名或IP: +* 编辑`${SMART_HOME}/conf/agents`文件,添加主机名或IP: ``` -$ vim conf/agents -lhccmh3 -lhccmh4 + node3 + node4 ``` -若仅为Smart Agent设置最大堆大小,方法如下: +* 若仅为Smart Agent设置最大堆大小,方法如下: ``` -$ vim conf/smart-env.sh -export SSM_AGENT_JAVA_OPT="-XX:MaxHeapSize=6g" + export SSM_AGENT_JAVA_OPT="-XX:MaxHeapSize=6g" ``` -> 注:Smart Sever需要能免密SSH到上述文件中的所有Smart Agent节点,Smart Agents将会安装到跟Smart Sever一样的目录下。 +> 注:Smart Agent可以同Smart Server部署到一个节点上。 ## 2.5 配置Database -首先需要安装一个MySQL实例,也可采用集群使用的Database,然后编辑`${SMART_HOME}/conf/druid.xml`文件,添加如下配置: +SSM需要MySQL来存储元数据,用户需要部署一个MySQL实例,然后编辑${SMART_HOME}/conf/druid.xml文件,配置示例如下: -``` +```xml - jdbc:mysql://lhccmh2:3306/ssm?useSSL=false + jdbc:mysql://node1:3306/ssm?useSSL=false root - root + 123456 ``` -其中`ssm`是数据库名。连接到相应的MySQL后,创建`ssm`数据库并赋相应的权限,步骤大致如下: - -``` -$ mysql -uroot -proot - -mysql> create database ssm; -Query OK, 1 row affected (0.00 sec) - -mysql> GRANT ALL PRIVILEGES ON ssm.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; -Query OK, 0 rows affected, 1 warning (0.00 sec) - -mysql> FLUSH PRIVILEGES; -Query OK, 0 rows affected (0.00 sec) - -mysql> use ssm; -Database changed - -mysql> show tables; -Empty set (0.00 sec) -``` +其中`ssm`是数据库名,需要用户创建。 -> 注:推荐使用`MySQL 5.7.18+`版本,否则可能会出现建表索引过长异常:`Specified key was too long; max key length is 767 bytes`。 +> 注:推荐使用`MySQL 5.7.18+`版本,否则可能会报建表索引过长的异常. -## 2.6 配置账号访问Web UI +## 2.6 配置账号访问Web UI \[可选] -SSM Web UI默认账号密码是`admin/ssm@123`,可编辑`${SMART_HOME}/conf/shiro.ini`文件进行修改: +SSM Web UI默认账号密码是`admin/ssm@123`。 如有需要,可编辑`${SMART_HOME}/conf/shiro.ini`文件进行修改: ``` -$ vim conf/shiro.ini [users] admin = ssm@123, admin ``` -## 2.7 配置Kerberos +## 2.7 配置Kerberos \[可选] 若Hadoop集群开启Kerberos,则SSM也需要开启Kerberos以访问安全的集群,编辑`${SMART_HOME}/conf/smart-site.xml`文件,添加以下配置: -``` +```xml smart.security.enable true smart.server.keytab.file - /etc/security/keytabs/hdfs.headless.keytab + /etc/security/keytabs/hdfs.keytab smart.server.kerberos.principal - hdfs-ikobe@KOBE.COM + hdfs@HADOOP.COM smart.agent.keytab.file - /etc/security/keytabs/hdfs.headless.keytab + /etc/security/keytabs/hdfs.keytab smart.agent.kerberos.principal - hdfs-ikobe@KOBE.COM + hdfs@HADOOP.COM ``` -> 注:SSM需要启动用户具有HDFS超级用户权限来访问一些Namenode Api,由于集群开启了Kerberos,为了简便,Smart Server和Smart Agent的keytab文件均采用`hdfs.headless.keytab`,对应的principal为`hdfs`(具有超级用户权限),因此可使用root用户运行SSM。 +> 注:SSM需要启动用户具有HDFS超级用户权限来访问一些HDFS namenode api,由于集群开启了Kerberos,为了简便,Smart Server和Smart Agent的keytab文件均采用`hdfs.keytab`,对应的principal为`hdfs`(具有超级用户权限),因此可使用root用户运行SSM。 +## 2.8 权限配置 \[可选] -# 3. 部署SSM +* SSM需要HDFS超级用户权限来访问一些Namenode Api,因此需确保启动SSM的用户账号有此特权。 -如果需要更好的性能,建议在每个Datanode上部署一个Agent。运行`${SMART_HOME}/bin/install.sh`脚本: + 查看`hdfs-site.xml`中`dfs.permissions.superusergroup`属性来获取HDFS超级用户组,看到的配置如下: -``` -$ bin/install.sh -``` + ```xml + + dfs.permissions.superusergroup + hdfs + + ``` -> `--config`选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。 + 将其他用户添加到HDFS超级用户组方法如下,以smartserver用户为例: -> 注:Smart Sever需要能免密SSH到所有Smart Agent节点,Smart Agents将会安装到跟Smart Sever一样的目录下。 + ```xml + + hadoop.user.group.static.mapping.overrides + smartserver=hdfs; + + ``` -# 4. 运行SSM +* SSM启动过程需要用户能够免密SSH到本地主机和所有Agent节点。 -运行SSM服务的先决条件: +# 3. 部署SSM -1. SSM需要HDFS超级用户权限来访问一些Namenode Api,因此需确保启动SSM的用户账号有此特权。 -2. SSM启动过程需要用户能够免密SSH到本地主机和所有Agent节点。 +只要配置一个Smart Server,SSM就可以工作。但如果追求更好的性能,建议在每个datanode上部署一个Smart Agent。 -- 查看`hdfs-site.xml`中`dfs.permissions.superusergroup`属性来获取HDFS超级用户组,方法如下: +运行`${SMART_HOME}/bin/install.sh`脚本: ``` -$ cat /usr/bch/3.0.0/hadoop/etc/hadoop/hdfs-site.xml | grep -C 5 'dfs.permissions.superusergroup' - ... - - dfs.permissions.superusergroup - hdfs - +$ bin/install.sh ``` -- 将其他用户添加到HDFS超级用户组方法如下,以smartserver为例: +> `--config`选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。 -``` -$ vim hdfs-site.xml - - hadoop.user.group.static.mapping.overrides - smartserver=hdfs; - -``` +> 注:Smart Sever需要能免密SSH到所有Smart Agent节点,Smart Agents将会安装到同Smart Sever一样的路径下。 + +# 4. 运行SSM ## 4.1 启动SSM 运行`${SMART_HOME}/bin/start-ssm.sh`脚本: ``` -$ bin/start-ssm.sh -format --config conf/ +$ bin/start-ssm.sh ``` -> `-format`选项用于第一次启动SSM时格式化数据库,启动时会删掉`druid.xml`中配置数据库中的所有表,并创建SSM需要的所有表;`--config `选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。如果配置了`agents`,该脚本将远程逐个启动Smart Agent。 - -查看启动进程,如下: - -``` -$ jps -22691 SmartDaemon -17756 SmartAgent -``` +> `-format`选项用于启动SSM时格式化数据库,会删掉`druid.xml`中配置数据库中的所有表,并创建SSM需要的所有表; +`--config `选项可指定SSM配置目录,若不指定则默认`${SMART_HOME}/conf`。 SSM启动成功后,可通过以下WEB UI访问: @@ -230,6 +224,8 @@ SSM启动成功后,可通过以下WEB UI访问: http://Active_SSM_Server_IP:7045 ``` +如启动失败,可通过查看${SMART_HOME}/log下面的日志文件,获取错误信息来排查问题。 + ## 4.2 停止SSM 运行`${SMART_HOME}/bin/stop-ssm.sh`脚本: @@ -238,101 +234,8 @@ http://Active_SSM_Server_IP:7045 $ bin/stop-ssm.sh ``` -# 5. 测试SSM EC - -- 查看当前Hadoop集群的EC策略,默认开启`RS-6-3-1024k`: - -``` -$ hdfs ec -listPolicies -Erasure Coding Policies: -ErasureCodingPolicy=[Name=RS-10-4-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=10, numParityUnits=4]], CellSize=1048576, Id=5], State=DISABLED -ErasureCodingPolicy=[Name=RS-3-2-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=3, numParityUnits=2]], CellSize=1048576, Id=2], State=DISABLED -ErasureCodingPolicy=[Name=RS-6-3-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=1], State=ENABLED -ErasureCodingPolicy=[Name=RS-LEGACY-6-3-1024k, Schema=[ECSchema=[Codec=rs-legacy, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=3], State=DISABLED -ErasureCodingPolicy=[Name=XOR-2-1-1024k, Schema=[ECSchema=[Codec=xor, numDataUnits=2, numParityUnits=1]], CellSize=1048576, Id=4], State=DISABLED -``` - -- 启用`RS-3-2-1024k`策略: - -``` -$ hdfs ec -enablePolicy -policy RS-3-2-1024k -Erasure coding policy RS-3-2-1024k is enabled -``` - -- 创建测试文件: - -``` -$ hdfs dfs -mkdir -p /user/ssm -$ hdfs dfs -copyFromLocal autodeploy-hc.sh /user/ssm -$ hdfs ec -getPolicy -path /user/ssm/autodeploy-hc.sh -The erasure coding policy of /user/ssm/autodeploy-hc.sh is unspecified -``` - - -## 5.1 添加Rules - -### 5.1.1 提交Rule - -![image](https://note.youdao.com/yws/api/personal/file/E68FD7EA4092418BA0EDBB0C43F3F190?method=download&shareKey=1c746748a02647577eee2813c7218d4f) - -Rule为: - -``` -file: path matches "/user/ssm/*.sh" and age > 10min | ec -policy RS-3-2-1024k -``` - -### 5.1.2 开启Rule - -![image](https://note.youdao.com/yws/api/personal/file/5F9AB289A70B4F14B91A79CD1C5FBB37?method=download&shareKey=b7a540a2a009adeaec755507e091c76e) - -Rule Enable后状态由`DISABLED`变为`ACTIVE`,如下: - -![image](https://note.youdao.com/yws/api/personal/file/137500F0E9B54EE9AC5367F72BBE7B17?method=download&shareKey=f10a66fba97818885f41c100fe344a9c) - -### 5.1.3 Rule触发Action - -![image](https://note.youdao.com/yws/api/personal/file/AAB2F8A254DE41659EE558F7815BEF9E?method=download&shareKey=0d68c60708cbf98ae7456b5b3aa81560) - -运行结果为: - -![image](https://note.youdao.com/yws/api/personal/file/6870BFED1E8346E9BCA31E40A87BEABD?method=download&shareKey=a7dceb885dced7f16809b735b29d67e5) - -后台核实该文件策略: - -``` -$ hdfs ec -getPolicy -path /user/ssm/autodeploy-hc.sh -RS-3-2-1024k -$ hdfs fsck /user/ssm/autodeploy-hc.sh -files -blocks -locations -Connecting to namenode via http://lhccmh3:50070/fsck?ugi=hdfs&files=1&blocks=1&locations=1&path=%2Fuser%2Fssm%2Fautodeploy-hc.sh -FSCK started by hdfs (auth:KERBEROS_SSL) from /10.139.17.59 for path /user/ssm/autodeploy-hc.sh at Thu Dec 06 14:58:11 CST 2018 -/user/ssm/autodeploy-hc.sh 2057 bytes, erasure-coded: policy=RS-3-2-1024k, 1 block(s): OK -0. BP-2104048606-10.139.17.60-1542612977908:blk_-9223372036854775536_4409 len=2057 Live_repl=3 [blk_-9223372036854775536:DatanodeInfoWithStorage[10.139.17.61:1019,DS-494836d4-12ef-4ea8-808e-b2384ae231bb,DISK], blk_-9223372036854775533:DatanodeInfoWithStorage[10.139.17.127:1019,DS-18738899-bdb5-4fb3-a9db-5f9ff729ba86,DISK], blk_-9223372036854775532:DatanodeInfoWithStorage[10.139.17.119:1019,DS-1a9abde8-2d99-4824-b5a0-542a9367c597,DISK]] -... -``` - -取消EC策略的Rule可设置如下: - -``` -file: path matches "/user/ssm/*.sh" and age > 10min | unec -``` - - -## 5.2 添加Action - -### 5.2.1 运行Action - -![image](https://note.youdao.com/yws/api/personal/file/19042C0298BE43BA9744E1113325C254?method=download&shareKey=8b1839954f378b304d7ccf42d07f77db) - -### 5.2.2 查看Action运行状态 - -![image](https://note.youdao.com/yws/api/personal/file/4AC86119B24540B78851F90B67D5A7FA?method=download&shareKey=b1522ffa478fd2b5310e279ce7f12687) - -### 5.2.3 查看Action运行结果 - -![image](https://note.youdao.com/yws/api/personal/file/E111DF607C2A410BA21D3096276C4F7E?method=download&shareKey=bece41c2083c0a9f6bf6391a5f212066) - -参考网址: +参考文档: * https://github.com/Intel-bigdata/SSM/blob/trunk/docs/ssm-deployment-guide.md * https://github.com/Intel-bigdata/SSM/blob/trunk/docs/enable-kerberos.md * https://github.com/Intel-bigdata/SSM/blob/trunk/docs/admin-user-guide.md