转自:https://my.oschina.net/balajinima/blog/862969

一、关于CDH和Cloudera Manager


CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

二、系统环境


操作系统:CentOS 6.6 x64
Cloudera Manager:5.10.0
CDH: 5.10.0
KUDU: 1.2.0

三、安装包准备


1.Cloudera Manager仓库镜像包下载地址:

https://archive.cloudera.com/cm5/repo-as-tarball/5.10.0/cm5.10.0-centos6.tar.gz

2.CDH parcel安装包地址:

https://archive.cloudera.com/cdh5/parcels/5/CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel

https://archive.cloudera.com/cdh5/parcels/5/CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha1

https://archive.cloudera.com/cdh5/parcels/5/manifest.json

3.kudu 的 parcel 安装包地址:

http://archive.cloudera.com/kudu/parcels/latest/KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel

http://archive.cloudera.com/kudu/parcels/latest/KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel.sha1

4.kudu 的 csd 安装包地址:

http://archive.cloudera.com/kudu/csd/KUDU-5.10.0.jar

注意: 通过 Cloudera Manager 安装parcel时sha1格式的文件需要提前修改为sha。

四、准备工作


1.更新系统(所有节点)
yum -y update
2.网络配置(所有节点)

修改hostname:

vi /etc/sysconfig/network

编辑

NETWORKING=yes
HOSTNAME= hadoop35.test.com

通过service network restart重启网络服务生效。

修改ip与主机名的对应关系

vi /etc/hosts,

编辑

10.10.25.35 hadoop35.test.com
10.10.25.36 hadoop36.test.com
10.10.25.37 hadoop37.test.com
10.10.25.38 hadoop38.test.com10.10.25.43 hadoop43.test.com
10.10.25.44 hadoop44.test.com
10.10.25.45 hadoop45.test.com
10.10.25.46 hadoop46.test.com

注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。

3.配置公钥认证(用于免密登录)

在管理节点(hadoop35.test.com)上执行

ssh-keygen -t rsa

一路回车,生成无密码的密钥对。

将公钥添加到认证文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

设置authorized_keys的访问权限:

chmod 600 ~/.ssh/authorized_keys

scp文件到所有受管节点( 10.10.25.35,36,37,38 和 10.10.25.43,44,45,46)的~/.ssh目录:

scp ~/.ssh/authorized_keys root@hadoop35.test.com:~/.ssh/

测试:在管理节点上ssh hadoop36.test.com,正常情况下,不需要密码就能直接登陆进去了。

注意:.ssh目录访问权限是700 authorized_keys的文件访问权限是600

4.关闭防火墙和SELinux(所有节点)

注意:需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

关闭防火墙:

service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)

关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):

setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
5.配置NTP服务

yum安装ntp(所有节点):

yum -y install ntp

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用us.pool.ntp.org作为对时中心,ntpdate us.pool.ntp.org

按照Cloudera 的官方建议,所有的CDH节点和Cloudea Manager节点都需要启动ntpd服务。要不然会报如下错误:

1)此角色的主机的运行状况为不良。 以下运行状况测试不良: 时钟偏差.

2)The host’s NTP service is not synchronized to any remote server.

解决方法如下: 先配置一台NTP服务,然后所有的CDH节点都作为此NTP服务的客户端。 1,NTPD服务,hadoop35.test.com,此机器负责与外部网络的NTPD服务同步标准时间,并作为局域网内的NTPD服务器。 2,NTPD客户端,10.10.25.35,36,37,38 和 10.10.25.43,44,45,46,这些机器与hadoop35.test.com上的NTPD服务同步时间。

配置步骤:

a,配置内网NTP-Server(管理节点)

(1) 允许客户机的配置

修改ntp.conf配置文件 vi /etc/ntp.conf

①、第一种配置:允许任何IP的客户机都可以进行时间同步 将restrict default kod nomodify notrap nopeer noquery这行修改成:

restrict default nomodify

②、第二种配置:只允许10.10.25.*网段的客户机进行时间同步 在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行: restrict 10.10.25.0 mask 255.255.255.0 nomodify

(2) 同步时间设置 ①通过网络同步时间

server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

②使用本地时间

server 127.127.1.0     # local clock
fudge  127.127.1.0 stratum 10

配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start

检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:

synchronised to NTP server (80.241.0.72) at stratum 2
time correct to within 144 ms
polling server every 64 s

如果出现异常请等待几分钟,一般等待5-10分钟才能同步。

设置ntp服务,开机自启动:chkconfig ntpd on

b,配置NTP客户端(受管节点)

修改ntp.conf配置文件 vi /etc/ntp.conf 通过 hadoop35.test.com 同步时间

server  hadoop35.test.com

配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start 设置ntp服务,开机自启动:chkconfig ntpd on

客户端校验配置

ntpq -p查询上级时间服务器

ntpstat 查询状态

6.优化虚拟内存需求率(所有节点)

1)检查虚拟内存需求率

cat /proc/sys/vm/swappiness

显示如下:

60

2)临时降低虚拟内存需求率

sysctl vm.swappiness=0

3)永久降低虚拟内存需求率

使用命令 vi /etc/sysctl.conf 增加vm.swappiness = 0

并运行如下命令使生效

sysctl -p
7.解决透明大页面问题(所有节点)

1)检查透明大页面问题

cat /sys/kernel/mm/transparent_hugepage/defrag

如果显示为:

[always] madvise never

2)临时关闭透明大页面问题

echo never > /sys/kernel/mm/transparent_hugepage/defrag

确认配置生效:

cat /sys/kernel/mm/transparent_hugepage/defrag

应该显示为:

always madvise [never]

3)配置开机自动生效

使用命令 vi /etc/rc.local,加入如下内容echo never > /sys/kernel/mm/transparent_hugepage/defrag
8.安装Oracle的Java(主节点安装,其他节点卸载)

CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。

卸载自带的OpenJdk,使用 rpm -qa | grep java 查询java相关的包,使用 rpm -e --nodeps 包名 卸载。或者使用 yum remove java 卸载

在这里使用了cloudera仓库中的jdk的rpm安装包,使用rpm -ivh 包名进行安装。 配置环境变量:

修改profile vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

立即生效 source /etc/profile

9.安装配置MariaDB(管理节点)

a. 确保/var/lib/mysql目录有足够大的磁盘空间

b. 卸载自带的mysql。

yum remove mysql

c. 创建MariaDB yum仓库

vi /etc/yum.repos.d/MariaDB.repo

添加以下内容

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

d. 安装MariaDB

yum install MariaDB-server MariaDB-client MariaDB-devel

e. 配置my.conf

vi /etc/my.cnf

用以下内容替换

[mysqld]
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links = 0key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M#log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your system
#and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_logbinlog_format = mixedread_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

h. 启动MariaDB

service mysql start

g. 查看MariaDB版本

mysql --version

输出

mysql  Ver 15.1 Distrib 10.1.21-MariaDB, for Linux (x86_64) using readline 5.1

h. 设置开机启动

chkconfig mysql on

i. 初始化数据库

$ sudo /usr/bin/mysql_secure_installation
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!

j. 使用mysql -uroot -p进入mysql命令行,创建数据库和用户:

create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

刷新 flush privileges;

10.安装mysql JDBC 驱动(管理节点)

下载mysql JDBC 驱动放到目录 /usr/share/java/ 并修改名为mysql-connector-java.jar 下载地址http://www.mysql.com/downloads/connector/j/5.1.html.

五、安装配置 Cloudera Manager(管理节点)


1.建立Cloudera Manager安装文件自定义存储库

a.安装httpd服务器

查询一下是否已经安装了apache

rpm -qa httpd

如果还没有则进行安装

yum -y install httpd

启动apache

service httpd start

开机自启动

chkconfig httpd on

b.将Cloudera Manager仓库镜像包cm5.10.0-centos6.tar.gz

解压到/var/www/html/cm目录,文件目录结构如下

2.通过rpm安装包本地安装 Cloudera Manager

到目录 /var/www/html/cm/5/RPMS/x86_64

 yum --nogpgcheck localinstall cloudera-manager-daemons-5.10.*.rpm cloudera-manager-server-5.10.*.rpm enterprise-debuginfo-5.10.*.rpm
3.Parcel和csd格式文件上传

a. 上传下列文件到Parcel包的存放路径: /opt/cloudera/parcel-repo/

    CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel             CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha         KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel             KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel.sha         manifest.json

b.上传最新的kudu csd文件到csd包存放路径: /opt/cloudera/csd/

KUDU-5.10.0.jar

最后目录结构如下:

4.配置 Cloudera Manager Server 数据库

使用命令scm_prepare_database.sh创建Cloudera Manager Server数据库配置文件

命令格式如下

/usr/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password

如:

/usr/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

执行完成后生成数据库配置文件/etc/cloudera-scm-server/db.properties

# Auto-generated by scm_prepare_database.sh on Tue Feb 28 18:23:16 CST 2017
#
# For information describing how to configure the Cloudera Manager Server
# to connect to databases, see the "Cloudera Manager Installation Guide."
#
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm
com.cloudera.cmf.db.setupType=EXTERNAL

参考链接:http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html

5.启动Cloudera Manager Server
service cloudera-scm-server start

等待大概两分钟,访问 http://10.10.25.35:7180/ 进入管理端 (登陆名:admin 密码:admin)

6.配置





















六、修改impala参数

1、时区问题:

默认impala配置不是中国的时区,所以在用from_unixtime的时候,有误差。 解决方案:impala启动时加 -use_local_tz_for_unix_timestamp_conversions=true

在cdh里面 impala->配置->impala Daemon ->Impala Daemon 命令行参数高级配置代码段(安全阀)

 -use_local_tz_for_unix_timestamp_conversions=true

七、安装配置 kudu 服务

安装参考

http://www.cloudera.com/documentation/betas/kudu/latest/topics/kudu_installation.html 的 Install Kudu Using Parcels 章节。








八、验证安装情况

登录 # impala-shell

a.查看impala-shell版本

Starting Impala Shell without Kerberos authentication
Connected to hadoop36.test.com:21000
Server version: impalad version 2.7.0-cdh5.10.0 RELEASE (build 785a073cd07e2540d521ecebb8b38161ccbd2aa2)
***********************************************************************************
Welcome to the Impala shell.
(Impala Shell v2.7.0-cdh5.10.0 (785a073) built on Fri Jan 20 12:03:56 PST 2017)To see live updates on a query's progress, run 'set LIVE_SUMMARY=1;'.
***********************************************************************************
[hadoop36.test.com:21000] >

执行

select version();

显示

Query: select version()
Query submitted at: 2017-03-01 11:52:01 (Coordinator: http://hadoop36.test.com:25000)
Query progress can be monitored at: http://hadoop36.test.com:25000/query_plan?query_id=3240bf5cc2cbfa7b:390c36da00000000
+------------------------------------------------------------------------------------------+
| version()                                                                                |
+------------------------------------------------------------------------------------------+
| impalad version 2.7.0-cdh5.10.0 RELEASE (build 785a073cd07e2540d521ecebb8b38161ccbd2aa2) |
| Built on Fri Jan 20 12:03:56 PST 2017                                                    |
+------------------------------------------------------------------------------------------+
Fetched 1 row(s) in 1.11s

b.使用impala-shell

CREATE DATABASE impala_kudu;USE impala_kudu;CREATE TABLE my_first_table (id BIGINT PRIMARY KEY,name STRING
)
PARTITION BY HASH PARTITIONS 5
STORED AS KUDU
TBLPROPERTIES('kudu.master_addresses' = 'hadoop36.test.com:7051,hadoop37.test.com:7051,hadoop38.test.com:7051,hadoop43.test.com:7051,hadoop44.test.com:7051,hadoop45.test.com:7051,hadoop46.test.com:7051') ;insert into my_first_table values(100,'张三');select * from my_first_table;

九、常见问题

问题1:在主节点初始化 CM5的数据库
报错:ld-linux.so.2   bad ELF interpreter
解决:安装 glibc 和 glibc.i686问题2:安装主机时报错
报错:ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>
解决:$> ps -ef | grep supervisord
$> kill -9 <processID>
/opt/cm-5.6.0/etc/init.d/cloudera-scm-agent restart问题3:server启动时,日志提示端口被占用。
解决:关闭java进程。问题4:web安装,当前管理的主机显示都是本地地址
解决:注释/etc/hosts 的loaclhost ,在检查agent日志的报错。
重启所有agent
重启server问题5:web数据库设置,登入被拒绝
解决:grant all privileges on *.* to 'hive'@'cdh1' identified by '123456' with grant option;
FLUSH privileges;问题6:web安装时,群集设置 HDFS格式失败
解决:删除原有的/dfs问题7:web安装时,群集设置HDFS 创建/tmp失败
解决:ntp一定启动服务器,不能光用命令同步。(这个好像不是问题的所在,但是ntp服务必须要启动的)
还出现,再重试试试。问题8:web管理页面提示时间偏差
解决:检查ntpdc -c loopinfo
Name or service not known
vim /etc/hosts
添加 本机IP对应localhost 地址问题9
报错    JDBC driver cannot be found. Unable to find the JDBC database jar on host
解决
下载jar包:
MySQL-connector-Java-5.1.27.jar
重命名:
mv mysql-connector-java-5.1.27.jar mysql-connector-java.jar
移动:
mv mysql-connector-java.jar  /usr/share/java/问题10
登录用户共同私钥
私钥文件id_rsa所在位置
$ cd ~/.ssh/
将此文件下载后,在cm在线安装界面上传即可。问题11
添加zookeeper实例错误
当有一台机器正在跑zookeeper的时候,再添加其他的,就会报错如下
Starting these new ZooKeeper Servers may cause the existing ZooKeeper Datastore to be lost. Try again after restarting any
existing ZooKeeper Servers with outdated configurations. If you do not want to preserve the existing Datastore, you can start
each ZooKeeper Server from its respective Status page.
将正在运行的zookeeper实例停止,然后再三台一起启动即可。问题12
启动kudu失败,错误日志提示Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized
现状:
到kudu实例节点运行ntpstat 输出unsynchronised polling server every 64 s  发现节点未完成同步,
解决: 检查ntp服务,或等待2分钟后再查看是否完成同步

十、非root用户方案

1.所有节点添加普通用户(在本例中使用hadoop)

useradd -u 1050 hadoop

2.让普通用户获得sudo执行操作权限

编辑sudoers文件 vi /etc/sudoers

在
# %wheel        ALL=(ALL)       NOPASSWD: ALL
下增加
%hadoop        ALL=(ALL)       NOPASSWD: ALL

允许用户组hadoop里面的用户执行sudo命令,并且在执行的时候不输入密码.

3.ssh免密登录

同准备步骤中的免密登录配置方式一致,用户hadoop用户生成秘钥,拷贝到其他机器的hadoop用户名目录,注意目录权限。

参考

http://blog.csdn.net/ymh198816/article/details/52423200

http://www.cnblogs.com/jasondan/p/4011153.html?utm_source=tuicool&utm_medium=referral

http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_b.html

https://mariadb.com/kb/en/mariadb/yum/

http://www.aboutyun.com/thread-9006-1-1.html

卸载cloudera参考

http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_uninstall_cm.html

安装 Cloudera Manager、CDH、KUDU 随手记相关推荐

  1. Centos7 安装包方式(离线)安装cloudera manager 和 CDH

    Centos7 环境下安装CDH 首先要安装cloudera manager 然后通过cm的图形界面来安装CDH 和一些相关组件 需要安装mysql来存储cloudera manager的一些数据 也 ...

  2. 二进制安装mysql集群_基于二进制安装Cloudera Manager集群

    一.环境准备 参考链接:https://www.cnblogs.com/zhangzhide/p/11108472.html 二.安装jdk(三台主机都要做) 下载jdk安装包并解压:tar xvf ...

  3. 搭建本地Yum软件源安装Cloudera Manager 5

    记录操作过程,不过多介绍相关知识以及原理,有问题自行百度或留言讨论. 一.搭建web服务服务器 有两台虚拟机,elephant用于安装cdh-server相关作为管理者,monkey用于安装cdh-a ...

  4. VMware Fusion安装cloudera manager

    题记:最近使用 VirtualBox 安装CDH,通过host-only + NAT 形式配置网络时,配置起来数次失败.遂选用VMware Fusion 重新尝试. 使用素材 硬件 环境配置 Mast ...

  5. 安装Cloudera manager Server步骤详解

    安装Cloudera manager Server步骤详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是针对:https://www.cnblogs.com/yin ...

  6. centos7安装Cloudera Manager

    第一部分:准备工作 一,修改hostname $vim /etc/sysconfig/network $source /etc/sysconfig/network 例如: NETWORKING=yes ...

  7. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(七)界面安装

    一.安装过程 1.1 登录 1.2 接受许可协议 1.3 选择免费版本 1.4 选择下一步 1.5 选择当前管理的主机 1.6 选择使用Parcel安装,选择CDH版本,点击继续 1.7 等待安装 此 ...

  8. 通过Docker 安装 cloudera manager 平台

    下载镜像 docker pull cloudera/quickstart // 或者在 cloudera 官网下载文件后使用 `docker import` 命令导入 // https://downl ...

  9. [CDH安装]--CDH5和Cloudera Manager 5要求和支持的版本

    原文: https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html# ...

最新文章

  1. SAP UI5 初学者教程之十五 - 对话框和 Fragments 的使用方式试读版
  2. [转]从java角度理解cpu上下切换
  3. linux安装自带mysql吗_Linux安装mysql8
  4. 《计算机基础知识REVIEW》の操作系统---存储管理
  5. 【转】恢复默认vs2005
  6. 关于绑定事件的一个疑惑
  7. mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
  8. NOD32中小企业服务器版部署方法
  9. 免费注册Gmail邮箱
  10. android开发教程 电驴资源下载地址分享
  11. windows下MySQL数据库如何移动到其它盘
  12. 【洛谷1144】最短路计数 最短路
  13. leetcode76 904
  14. Qualcomm QTV Player
  15. 三款『正则表达式』可视化工具
  16. 深度学习实验总结:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络
  17. 基于ssm的社团报名管理系统开题答辩问题与答案
  18. 域名备案怎么弄?怎么批量查询域名备案
  19. docker 打包上传到仓库
  20. 微信小程序篇2 谈谈小程序路由跳转的方式有哪些

热门文章

  1. 0 13 amp 0 17c语言,An RF Chipset for Impulse Radio UWB Using 0.13 amp;#x003BC;m InP-HEMT Technology...
  2. bugly android studio,android studio 中怎么添加 bugly
  3. 基于java+springboot+mybatis+vue+elementui的校园自行车租赁系统
  4. 开始使用KMIP4J
  5. 初识C语言_(完结)
  6. jupyterhub安装
  7. python中ulr关键词的转换,“E5 82”怎么转换成中文
  8. Python爬虫食物热量及营养元素(详细代码)
  9. macOS如何查看pdm文件
  10. cs224d 作业 problem set1 (一) 主要是实现word2vector模型,SGD,CBOW,Softmax,算法