为什么要用CLion呢。多个工具多条路,现在美国在搞封闭,万一哪天VS不能用了呢。。。CLion本身只是一个IDE,没有编译器。像Visual Studio就是IDE和编译器一体的,所以安装后即可使用,不用做额外的配置。想要真正把CLion用起来,需要另外配置编译器,我们这里的基调是假设VS不能用,所以编译器不能使用VS,本文使用的是mingw64。下面进入正题
CLion目前针对学生、教师、教育机构等等一些个人或组织有免费或打折的license,但对于一般的人并没有类似社区版这样的免费版本,所以需要付费使用。
去官网下载exe后双击安装,没有什么特别需要注意的。
此时的CLion已经可以写程序,但是只能在Debug模式下写程序,而没有Release模式。
在新建工程后,CMakeLists.txt 中默认已经有了一些内容:
除了第3行外,其它都是必须的。
打开该文件,最上面的注释写着:
有一点需了解,在CMakeLists.txt中,命令不区分大小写,如FIND_PACKAGE
等同于find_package
,但是括号中的变量必需区分大小写。
然后CLion的下方窗口会显示如下错误信息:
然后再次点击Reload changes
,下面窗口会提示如下信息:
Path添加环境变量,添加后需重启CLion。
下面是一段测试代码,点击右上角三角符号运行
这段测试代码简单地读入一张图片,然后做个resize,然后将其显示出来,道理上讲前面配置没问题的话,这里不论是Debug模式还是Release模式都能正常运行。
介绍了Kerberos的搭建方法,以及在普通Hadoop环境中、CDH环境中与Hadoop对接设置的步骤
通过yum安装即可,组成KDC。
Kerberos的配置文件只有两个。在Hadoop1中创建以下两个文件,并同步/etc/
:是设定的realms
。名字随意。Kerberos可以支持多个realms
,会增加复杂度。本文不探讨。大小写敏感,一般为了识别使用全部大写。这个realms
跟机器的host没有大关系。max_renewable_life
kdc
:代表要kdc的位置。格式是 机器:端口
[appdefaults]
:可以设定一些针对特定应用的配置,覆盖默认配置。
客户端机器只需要此文件
完成上面两个配置文件后,就可以进行初始化并启动了。
针对所有服务开启security选项
当我在测试机上成功跑通之后,重新删除了kerberos的数据库后。关闭掉所有服务的安全选项。重新启动后,Generate Credentials
不能成功创建账户。而且也连接不到已经存在的账户的内容。第二天回来,发现创建了少量的账户YARN和mapred的账户。但是其它的账户都没有。猜测:可能是因为增加了两个账户分别是
keytab不能重新生成是一个大问题。
创建所有账户,生成keytab
我们使用hadoop账户启动所有的服务,所以,只生成hadoop和HTTP账户就足够了
在标准的情况中,依据不同服务的启动者的不同,会创建不同的账户,导出不同的keytab文件。由于我们使用的是hadoop用户启动所有服务的状况,所以一个hadoop.keytab
就足够使用了。
如果像ClouderaManager那样的一个用户启动一种服务,就要创建不同的用户,导出不同的keytab。
下文提到的配置文件中添加keytab文件,都要求不同机器含有对应的机器名和启动用户的keytab文件。要测试这个机器的keytab文件是否可用,可使用以下命令进行测试:
在配置目录中添加对应账户的keytab文件且创建jaas.conf
配置文件,内容如下:
其中keytab填写真实的keytab的绝对路径,principal填写对应的认证的用户和机器名称。
在配置目录中添加java.env
的配置文件,内容如下:
每个zookeeper的机器都进行以上的修改
启动方式和平常无异,如成功使用安全方式启动,日志中看到如下日志:
增加基本配置包括各种的princal和keytab文件的配置。
生成的hdfs的keytab和HTTP的keytab最好放一起,容易配置。下面的配置中keytab文件使用绝对路径,principal使用
_HOST
,Hadoop会自动替换为对应的域名。
查看QJM的日志和ZKFC的日志。检查有无exception。QJM的报错不会有明显的提示。
如果启动不成功检查以下几点是否做好:
keytab使用绝对路径,可以避免一些问题。
疑惑:ZKFC中有日志,但是工作正常,大胆预测连接zookeeper不需要强制通过jaas验证。
TODO:验证此猜想。
(无法定位登录配置 ) |
mv问题:由于权限问题,在移动日志文件启动的时候,会询问是否覆盖只读的日志文件。这个会导致使用
start-secure-dns.sh
启动的时候不顺畅。推荐修改hadoop-daemon.sh
的74行:
切换到root用户,需要配置这个root用户免密码登陆到其它的机器。
否则,需要单独登陆到所有机器启动datanode。
测试:使用任意用户通过keytab文件进行认证,运行hdfs相关命令。
#以下命令查看编译是否成功 |
#这个是允许运行应用的用户列表,默认是全部可以运行 #这个是允许提交job的最小的userid的值。centos中一般用户的id在500以上。 |
启动,使用hadoop用户直接启动即可
测试:使用任意用户通过keytab文件进行认证,运行yarn相关命令。
确保以下配置项是正确的:
添加以下项目到zoo.cfg中:
在多次调整无果后,怀疑是因为我的一些老旧的账户的renewmax
属性还是0。
于是,把所有相关账户都删除,生成后,再次启动。这个错误就消失了。
启动hbase的用户是超级用户拥有所有的权限。
创建表的用户拥有该表的所有权限
如果赋予权限的时候没有针对某个表或者CF进行赋予,就会对全局获得权限。请小心。
使用者要和实行了kerberos的集群进行通信。要kerberos的管理员创建对应的账户。并且生成keytab返回给使用者,使用者通过kinit命令认证后,就跟平常使用Hadoop的方式一致地使用即可。
说明:Expires下面的是这个认证的过期的日志。renew until
后面的是续约期。
意思是,如果这个缓存过了认证的过期时间,就会失效。在续约期期间通过使用kinit -R
可以续约这个认证。但是,如果过了续约期。必须要使用keytab重新认证。
Hadoop等的服务中,都会使用keytab自动做续约不会存在过期的情况。如果客户端需要长久运行不过期,需要在程序中使用keytab做认证。
以本地yum源安装CM5为例,解释本地yum源的安装和利用本地yum源安装CM5。
Cloudera Manager 5(以下简称CM)默认采用在线安装的方式,给不能联互联网或者网络不畅的用户带来了不便,由于网络问题,屡装屡败的挫折感,让初次学习CDH用户真心体验到万事开头难。本文讲解了在CentOS 6环境下搭建本地Yum软件源,局域网内的用户在完全不连互联网的情况下,完成CM的安装。让安装CM的用户体验到一路next,然后finish的顺畅感,速度是用户的第一体验。
至此,局域网内的CM资源文件已经发布完成,下面的修改在客户端进行,也就是安装CM的机器,当然,存放CM资源文件的机器也可以安装CM。
如果已经安装,但版本小于
完成了以上步骤,可以开始安装CM5了。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。