怎么用自己电脑做服务器发布网站吗,哈尔滨关键词优化排行,做网站有什么书,全网营销推广公司#x1f4bb;近期在华为云连接es时的时候发现不能输入账号密码#xff0c;后面联系华为工程师了解到#xff0c;华为云默认是非安全模式#xff0c;即不需要输入账号密码。
如果对你有所帮助#xff0c;欢迎点赞收藏关注不迷路哦#x1f493;
目录
使用es-hadoop同步h…近期在华为云连接es时的时候发现不能输入账号密码后面联系华为工程师了解到华为云默认是非安全模式即不需要输入账号密码。
如果对你有所帮助欢迎点赞收藏关注不迷路哦
目录
使用es-hadoop同步hive和es之间数据
1. 登录EMR的master节点切换至hadoop用户
2.在MRS客户端创建HDFS目录将ES-Hadoop lib包和httpclient依赖包上传到该目录下
3.从MRS客户端登录到Hive客户端
4.在Hive客户端创建hive外表与es索引进行映射结合实际表
4.1安全模式HTTP协议的集群
4.2安全模式HTTPS协议的集群
4.2.1获取安全证书“CloudSearchService.cer”
4.2.2转换安全证书CloudSearchService.cer
4.2.3将“.jks”文件分发到MRS集群的每个节点的相同路径
4.2.4创建Hive外表
5. 查询ES外部表测试
6.将ES索引中的数据导入到hive的内部表或写入ES外部表 解决方案如下 前言 ES-Hadoop 是 Elastic 官方推出的一个用于对接 Hadoop 生态的工具使得用户可以使用 Mapreduce(MR)、Spark、Hive 等工具处理 ES 上的数据。众所周知Hadoop 生态的长处是处理大规模数据集但是其缺点也很明显就是当用于交互式分析时查询时延会比较长。而 ES 在这几个方面的能力很强对于如 ad-hoc 查询基本可以做到秒级。ES-Hadoop 的推出提供了一种组合两者优势的可能性。使用 ES-Hadoop用户只需要对自己代码做出很小的改动即可以快速处理存储在 ES 中的数据并且能够享受到 ES 带来的加速效果。 以下给出hive相关操作
使用es-hadoop同步hive和es之间数据
相关下载链接 ES-hadoop(https://www.elastic.co/cn/downloads/past-releases#es-hadoop)选择需要的版本
httpclient3.1(https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1)
1. 登录EMR的master节点切换至hadoop用户
su - hadoop
2.在MRS客户端创建HDFS目录将ES-Hadoop lib包和httpclient依赖包上传到该目录下
注暂定7.10.2版
hadoop fs -mkdir /tmp/hadoop-es
hadoop fs -put elasticsearch-hadoop-7.10.2.jar /tmp/hadoop-es
hadoop fs -put commons-httpclient-3.1.jar /tmp/hadoop-es
3.从MRS客户端登录到Hive客户端
在Hive客户端添加ES-Hadoop lib包和httpclient依赖包。该命令只对当前会话有效。
输入beeline或hive进入到执行界面执行如下命令
add jar hdfs:///tmp/hadoop-es/commons-httpclient-3.1.jar;
add jar hdfs:///tmp/hadoop-es/elasticsearch-hadoop-7.10.2.jar;
4.在Hive客户端创建hive外表与es索引进行映射结合实际表
4.1安全模式HTTP协议的集群
CREATE EXTERNAL table IF NOT EXISTS student( id BIGINT,name STRING,addr STRING
)STORED BY org.elasticsearch.hadoop.hive.EsStorageHandler
TBLPROPERTIES( es.nodes 172.XX.XX.XX:9200,172.XX.XX.XX:9200,172.XX.XX.XX:9200,--ES地址es.port 9200,es.net.ssl false, --指定不使用SSL连接到Elasticsearch。es.nodes.wan.only false, --指定是否只使用广域网节点es.nodes.discoveryfalse, --禁用节点发现即不自动发现其他节点es.input.use.sliced.partitionsfalse, --指定在读取数据时不使用分片分区es.nodes.client.onlytrue,--指定节点仅作为客户端使用。es.resource student/_doc, --指定映射到Elasticsearch中的索引名称为student,文档类型为_doc。es.net.http.auth.user NAME, --ES用户名es.net.http.auth.pass PASSWORD --ES密码
);4.2安全模式HTTPS协议的集群
4.2.1获取安全证书“CloudSearchService.cer” 登录云搜索服务控制台。 选择“集群管理”进入集群列表。 单击对应集群的名称进入集群基本信息页面。 在“基本信息”页面单击“HTTPS访问”后面的“下载证书”。
4.2.2转换安全证书CloudSearchService.cer
将下载的安全证书上传到客户端机器上使用keytool工具将“.cer”证书转换成Java可以读取的“.jks”证书格式。 在Linux系统中执行如下命令转换证书。
keytool -import -alias newname -keystore ./truststore.jks -file ./CloudSearchService.cer 在Windows系统中执行如下命令转换证书。
keytool -import -alias newname -keystore .\truststore.jks -file .\CloudSearchService.cer
注其中newname是由用户自定义的证书名称。
该命令执行后会提示设置证书密码并确认密码。请保存该密码后续接入集群会使用。
4.2.3将“.jks”文件分发到MRS集群的每个节点的相同路径
如“/tmp”可以使用scp命令进行文件传输。同时要确保omm用户有权限读取该文件设置权限可以参考如下命令
chown -R omm truststore.jks
4.2.4创建Hive外表
CREATE EXTERNAL table IF NOT EXISTS student( id BIGINT,name STRING,addr STRING
)STORED BY org.elasticsearch.hadoop.hive.EsStorageHandler
TBLPROPERTIES( es.nodes https://172.XX.XX.XX:9200,https://172.XX.XX.XX:9200,https://172.XX.XX.XX:9200,--ES地址es.port 9200,es.net.ssl true, -- 使用SSL连接es.net.ssl.truststore.location cerFilePath,- SSL信任存储文件路径es.net.ssl.truststore.pass cerPassword,-- SSL信任存储密码es.nodes.wan.only false, -- 不只使用广域网节点es.nodes.discoveryfalse, -- 禁用节点发现es.nodes.client.onlytrue, -- 节点仅作为客户端使用es.input.use.sliced.partitionsfalse, -- 不使用分片分区读取es.resource student/_doc,-- 映射到Elasticsearch的索引和文档类型es.net.http.auth.user NAME, -- 映射到Elasticsearch的索引和文档类型es.net.http.auth.pass PASSWORD-- 连接到Elasticsearch的密码
);5. 查询ES外部表测试
在Hive客户端插入数据。
INSERT INTO TABLE student VALUES (1, Lucy, address1), (2, Lily, address2);
查询
select * from student;
6.将ES索引中的数据导入到hive的内部表或写入ES外部表
-- 检查并删除已存在的同名内部表如果需要的话
DROP TABLE IF EXISTS student_hive;-- 创建一个与外部表结构相同的Hive内部表
CREATE TABLE student_hive
LIKE student;-- 插入数据从外部表student到内部表student_hive
INSERT INTO TABLE student_hive
SELECT * FROM student;
赞