遇到的问题及解决方法: 问题一:ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048] 解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
问题二:max number of threads [1024] for user [lish] likely too low, increase to at least [2048] 解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
问题三:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 解决:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
关于使用可一参考:http://blog.csdn.net/ebw123/article/details/46707559
首先创建源数据表
CREATE TABLE test01_source (
id int,
name string,
ip string,)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
然后把自己的数据load进去
LOAD DATA LOCAL INPATH '/usr/local/555.txt.lzo' OVERWRITE INTO TABLE lzowu;
select * from web01_source;
所需时间21秒
建立视图表
hive表中field类型为int时,映射到es中变成long,所以会报此错误。将hive表中int改为bigint即可。
CREATE EXTERNAL TABLE web03(
id bigint,
name string,
ip string,
time string)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'test1/table1', 'es.nodes'='192.168.0.111', 'es.port'='9200', 'es.nodes.wan.only'='true');
CREATE EXTERNAL TABLE estwo(
id bigint,
name string,
ip string,
age string)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'two/two', 'es.nodes'='192.168.1.101:9200,192.168.1.103:9200,192.168.1.95:9200', 'es.nodes.wan.only'='true');
es.resource的two/two分别是索引名和索引的类型,这个是在es访问数据时候使用的。
然后建立源数据表
当使用insert语句往lzo表里插入数据时,需要加入下面两个参数,否则只能load(lzop 1.txt压缩成lzo格式):
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
4. 测试mapreduce读lzo
hive新建一张表lzoer
create table lzoer(id int,name string, ip string)ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
下载lzop工具,load一个lzo文件进lzoer表中,执行“select * from lzoer"和"select count(1) from lzo_test"正确 LZOP安装:
1. 下载lzop包 [root@localhost ~]# wget 'http://www.lzop.org/download/lzop-1.03.tar.gz'
2. 编译安装 [root@localhost ~]# tar xzvf lzop-1.03.tar.gz [root@localhost ~]# cd lzop-1.03 [root@localhost lzop-1.03]# ./configure [root@localhost lzop-1.03]# make [root@localhost lzop-1.03]#make install