Hadoop的一些问题记录
在配置双向SSL的时候需要生成对应的私钥,出现的问题为:
bogon:nginx fcbai$ docker run --name some-nginx -p 8088:80 -v /Users/fcbai/software/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /Users/fcbai/software/docker/nginx:/usr/share/nginx nginx |
原因:私钥长度不能设置成1024位,必须2048位,例如:
openssl genrsa -out root.key 2048 |
如上的长度为2048。
在登陆Knox的时候出现的问题,输入admin/admin-password点击sign in报错,查看gateway.log发现报错日志如下:
ERROR service.knoxsso (WebSSOResource.java:getAuthenticationToken(172)) - The original URL: undefined for redirecting back after authentication is not valid according to the configured whitelist: . See documentation for KnoxSSO Whitelisting. |
在ambari2.6版本中没有quick link的跳转,所以没有cookie带进来,需要在knox的配置项里面修改白名单Whitelisting:
^https?:\/\/(sandbox-hdp.hortonworks.com|localhost|127.0.0.1|0:0:0:0:0:0:0:1|::1)(:[0-9])*.*$ |
用上面的第一行去替换第二行的内容。
Hive使用JDBC或者Beeline去连接Hiveserver2的时候,默认连接的是10000的端口,但是这个前提是:hive.server2.transport.mode
这个的value是binary
,如果使用类似knox这种代理服务通过http将其代理出去,则此时的value是http,所以默认是开启的10001端口提供的http服务,并不会开启10000端口接受thirft协议的信息。
但是实际工作种基于jdbc的binary和http的代理都会存在,因此建议的做法是开启多个hiveserver2,其中一部分提供binay一部分提供http的服务,让两者共存,通过config group的形式进行区分,针对不同的机器进行单独的配置。
使用Knox代理的形式去消费HDFS文件采用的是WebHDFS协议,使用方式为:
查看文件状态:
curl -i -k -u guest:guest-password -X GET \ |
返回值为:
HTTP/1.1 200 OK |
上传文件:
curl -i -k -u guest:guest-password -X PUT \ |
首先通过PUT的形式获取对应的文件上传的位置,该请求会返回如下内容:
fcbai:~ fcbai$ curl -i -k -u guest:guest-password -X PUT \ |
其中的Location字段包含了返回的文件上传的URL地址,通过如下请求上传文件:
fcbai:~ fcbai$ curl -i -k -u guest:guest-password -T LICENSE -X PUT https://localhost:8443/gateway/sandbox/webhdfs/data/v1/webhdfs/v1/tmp/LICENSE?_=AAAACAAAABAAAADA5RkdHiYYGz5Ozx694RDxUOdys9CBe-CcVbEaz-4VpSNfajBHD-MyyjeIsh-_OVM6IoykCFhWD8lZO_dKgBAfBNs0N9siPI2DpDJJkRl53TWCWD1883dpG5LJ6UcP_fIx5YwDZ60j93ul4QSaRF0MDVgooGyZZKpr4xtNpBF5a-sY9bttRv-7gK3WJqeN9x3-ne1isWUuNYWXv7e8tU8Jzve0b20287g5ylSkiLCWZH0NN4ZDxaYRa_0rHIfY-Wa3hAgpKN5oQwO1Sd94TXMXUA8k7_hmBJA6 |
可以在HDFS文件系统中查询到对应的文件内容:
[root@sandbox-hdp ~]# hadoop fs -cat /tmp/LICENSE |
扫码手机观看或分享: