Beats,Logstash负责数据收集与处理。相当于ETL(Extract Transform Load)。
Elasticsearch负责数据存储、查询、分析。
Kibana负责数据探索与可视化分析。

1、Elasticsearch 6.x版本的安装,我这里使用Elasticsearch 6.7.0版本的。

备注:之前安装过5.4.3版本的,https://www.cnblogs.com/biehongli/p/11643482.html

2、将下载好的安装包上传到服务器上面,或者你在线下载也可以的哦。

注意:记得先安装好jdk1.8版本及其以上的哦。由于之前安装出现了错误,有了一点经验,这里先创建用户和所属组。

 [root@slaver4 package]# groupadd elsearch
[root@slaver4 package]# useradd elsearch -g elsearch
[root@slaver4 package]# passwd elsearch
更改用户 elsearch 的密码 。
新的 密码:
无效的密码: 密码少于 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@slaver4 package]# tar -zxvf elasticsearch-6.7..tar.gz -C /home/hadoop/soft/
[root@slaver4 soft]# chown -R elsearch:elsearch elasticsearch-6.7./
[root@slaver4 soft]# ls
elasticsearch-6.7.
[root@slaver4 soft]# ll
总用量
drwxr-xr-x. elsearch elsearch 3月 elasticsearch-6.7.
[root@slaver4 soft]#
[root@slaver4 soft]# su elsearch
[elsearch@slaver4 soft]$ cd elasticsearch-6.7./
[elsearch@slaver4 elasticsearch-6.7.]$ ls
bin config lib LICENSE.txt logs modules NOTICE.txt plugins README.textile
[elsearch@slaver4 elasticsearch-6.7.]$ cd bin/
[elsearch@slaver4 bin]$ ls
elasticsearch elasticsearch-cli.bat elasticsearch-migrate elasticsearch-service-mgr.exe elasticsearch-sql-cli-6.7..jar elasticsearch-users.bat x-pack-watcher-env.bat
elasticsearch.bat elasticsearch-croneval elasticsearch-migrate.bat elasticsearch-service-x64.exe elasticsearch-sql-cli.bat x-pack
elasticsearch-certgen elasticsearch-croneval.bat elasticsearch-plugin elasticsearch-setup-passwords elasticsearch-syskeygen x-pack-env
elasticsearch-certgen.bat elasticsearch-env elasticsearch-plugin.bat elasticsearch-setup-passwords.bat elasticsearch-syskeygen.bat x-pack-env.bat
elasticsearch-certutil elasticsearch-env.bat elasticsearch-saml-metadata elasticsearch-shard elasticsearch-translog x-pack-security-env
elasticsearch-certutil.bat elasticsearch-keystore elasticsearch-saml-metadata.bat elasticsearch-shard.bat elasticsearch-translog.bat x-pack-security-env.bat
elasticsearch-cli elasticsearch-keystore.bat elasticsearch-service.bat elasticsearch-sql-cli elasticsearch-users x-pack-watcher-env
[elsearch@slaver4 bin]$ ./elasticsearch

这次居然很顺利,但是在浏览器使用http://192.168.110.133:9200/访问是不行的,这里修改一下配置文件,使用浏览器也可以进行访问。

 [elsearch@slaver4 bin]$ ./elasticsearch
OpenJDK -Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[--25T15::,][INFO ][o.e.e.NodeEnvironment ] [99_nTdv] using [] data paths, mounts [[/ (rootfs)]], net usable_space [.5gb], net total_space [.7gb], types [rootfs]
[--25T15::,][INFO ][o.e.e.NodeEnvironment ] [99_nTdv] heap size [.6mb], compressed ordinary object pointers [true]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] node name derived from node ID [99_nTdvNRUS0U0dJBpu7kA]; set [node.name] to override
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] version[6.7.], pid[], build[default/tar/8453f77/--21T15::.844721Z], OS[Linux/3.10.-.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK -Bit Server VM/1.8.0_181/25.181-b13]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=, -Des.networkaddress.cache.negative.ttl=, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch-, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=, -XX:GCLogFileSize=64m, -Des.path.home=/home/hadoop/soft/elasticsearch-6.7., -Des.path.conf=/home/hadoop/soft/elasticsearch-6.7./config, -Des.distribution.flavor=default, -Des.distribution.type=tar]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [aggs-matrix-stats]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [analysis-common]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-common]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-geoip]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-user-agent]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-expression]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-mustache]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-painless]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [mapper-extras]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [parent-join]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [percolator]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [rank-eval]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [reindex]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [repository-url]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [transport-netty4]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [tribe]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ccr]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-core]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-deprecation]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-graph]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ilm]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-logstash]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ml]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-monitoring]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-rollup]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-security]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-sql]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-upgrade]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-watcher]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] no plugins loaded
[--25T15::,][INFO ][o.e.x.s.a.s.FileRolesStore] [99_nTdv] parsed [] roles from file [/home/hadoop/soft/elasticsearch-6.7./config/roles.yml]
[--25T15::,][INFO ][o.e.x.m.p.l.CppLogMessageHandler] [99_nTdv] [controller/] [Main.cc@] controller ( bit): Version 6.7. (Build d74ae2ac01b10d) Copyright (c) Elasticsearch BV
[--25T15::,][DEBUG][o.e.a.ActionModule ] [99_nTdv] Using REST wrapper from plugin org.elasticsearch.xpack.security.Security
[--25T15::,][INFO ][o.e.d.DiscoveryModule ] [99_nTdv] using discovery type [zen] and host providers [settings]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] initialized
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] starting ...
[--25T15::,][INFO ][o.e.t.TransportService ] [99_nTdv] publish_address {127.0.0.1:}, bound_addresses {[::]:}, {127.0.0.1:}
[--25T15::,][WARN ][o.e.b.BootstrapChecks ] [99_nTdv] max file descriptors [] for elasticsearch process is too low, increase to at least []
[--25T15::,][WARN ][o.e.b.BootstrapChecks ] [99_nTdv] max number of threads [] for user [elsearch] is too low, increase to at least []
[--25T15::,][WARN ][o.e.b.BootstrapChecks ] [99_nTdv] max virtual memory areas vm.max_map_count [] is too low, increase to at least []
[--25T15::,][INFO ][o.e.c.s.MasterService ] [99_nTdv] zen-disco-elected-as-master ([] nodes joined), reason: new_master {99_nTdv}{99_nTdvNRUS0U0dJBpu7kA}{MMkMOY4eSzmE1qOyNEXang}{127.0.0.1}{127.0.0.1:}{ml.machine_memory=, xpack.installed=true, ml.max_open_jobs=, ml.enabled=true}
[--25T15::,][INFO ][o.e.c.s.ClusterApplierService] [99_nTdv] new_master {99_nTdv}{99_nTdvNRUS0U0dJBpu7kA}{MMkMOY4eSzmE1qOyNEXang}{127.0.0.1}{127.0.0.1:}{ml.machine_memory=, xpack.installed=true, ml.max_open_jobs=, ml.enabled=true}, reason: apply cluster state (from master [master {99_nTdv}{99_nTdvNRUS0U0dJBpu7kA}{MMkMOY4eSzmE1qOyNEXang}{127.0.0.1}{127.0.0.1:}{ml.machine_memory=, xpack.installed=true, ml.max_open_jobs=, ml.enabled=true} committed version [] source [zen-disco-elected-as-master ([] nodes joined)]])
[--25T15::,][INFO ][o.e.h.n.Netty4HttpServerTransport] [99_nTdv] publish_address {127.0.0.1:}, bound_addresses {[::]:}, {127.0.0.1:}
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] started
[--25T15::,][WARN ][o.e.x.s.a.s.m.NativeRoleMappingStore] [99_nTdv] Failed to clear cache for realms [[]]
[--25T15::,][INFO ][o.e.g.GatewayService ] [99_nTdv] recovered [] indices into cluster_state
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.triggered_watches] for index patterns [.triggered_watches*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.watch-history-] for index patterns [.watcher-history-*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.watches] for index patterns [.watches*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.monitoring-logstash] for index patterns [.monitoring-logstash--*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.monitoring-es] for index patterns [.monitoring-es--*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.monitoring-beats] for index patterns [.monitoring-beats--*]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.monitoring-alerts] for index patterns [.monitoring-alerts-]
[--25T15::,][INFO ][o.e.c.m.MetaDataIndexTemplateService] [99_nTdv] adding template [.monitoring-kibana] for index patterns [.monitoring-kibana--*]
[--25T15::,][INFO ][o.e.l.LicenseService ] [99_nTdv] license [3bf82dcc-622e-4a1e-ab9e-a2eb1a194bde] mode [basic] - valid

使用命令curl http://127.0.0.1:9200/是正常的。

 [elsearch@slaver4 soft]$ curl http://127.0.0.1:9200/
{
"name" : "99_nTdv",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6bArPJypRwGiWMARLwW0kg",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

在配置文件elasticsearch.yml中添加如下所示配置:

network.host: 192.168.110.133

 [elsearch@slaver4 soft]$ cd elasticsearch-6.7./
[elsearch@slaver4 elasticsearch-6.7.]$ ls
bin config data lib LICENSE.txt logs modules NOTICE.txt plugins README.textile
[elsearch@slaver4 elasticsearch-6.7.]$ cd config/
[elsearch@slaver4 config]$ ls
elasticsearch.keystore elasticsearch.yml jvm.options log4j2.properties role_mapping.yml roles.yml users users_roles
[elsearch@slaver4 config]$ vim elasticsearch.yml

好吧,这个配置文件一修改就报错了,错误和第一次基本一致,这里也贴一下吧。

 [elsearch@slaver4 bin]$ ./elasticsearch
OpenJDK -Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[--25T15::,][INFO ][o.e.e.NodeEnvironment ] [99_nTdv] using [] data paths, mounts [[/ (rootfs)]], net usable_space [.5gb], net total_space [.7gb], types [rootfs]
[--25T15::,][INFO ][o.e.e.NodeEnvironment ] [99_nTdv] heap size [.6mb], compressed ordinary object pointers [true]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] node name derived from node ID [99_nTdvNRUS0U0dJBpu7kA]; set [node.name] to override
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] version[6.7.], pid[], build[default/tar/8453f77/--21T15::.844721Z], OS[Linux/3.10.-.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK -Bit Server VM/1.8.0_181/25.181-b13]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=, -Des.networkaddress.cache.negative.ttl=, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch-, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=, -XX:GCLogFileSize=64m, -Des.path.home=/home/hadoop/soft/elasticsearch-6.7., -Des.path.conf=/home/hadoop/soft/elasticsearch-6.7./config, -Des.distribution.flavor=default, -Des.distribution.type=tar]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [aggs-matrix-stats]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [analysis-common]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-common]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-geoip]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [ingest-user-agent]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-expression]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-mustache]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [lang-painless]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [mapper-extras]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [parent-join]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [percolator]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [rank-eval]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [reindex]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [repository-url]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [transport-netty4]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [tribe]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ccr]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-core]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-deprecation]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-graph]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ilm]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-logstash]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-ml]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-monitoring]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-rollup]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-security]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-sql]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-upgrade]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] loaded module [x-pack-watcher]
[--25T15::,][INFO ][o.e.p.PluginsService ] [99_nTdv] no plugins loaded
[--25T15::,][INFO ][o.e.x.s.a.s.FileRolesStore] [99_nTdv] parsed [] roles from file [/home/hadoop/soft/elasticsearch-6.7./config/roles.yml]
[--25T15::,][INFO ][o.e.x.m.p.l.CppLogMessageHandler] [99_nTdv] [controller/] [Main.cc@] controller ( bit): Version 6.7. (Build d74ae2ac01b10d) Copyright (c) Elasticsearch BV
[--25T15::,][DEBUG][o.e.a.ActionModule ] [99_nTdv] Using REST wrapper from plugin org.elasticsearch.xpack.security.Security
[--25T15::,][INFO ][o.e.d.DiscoveryModule ] [99_nTdv] using discovery type [zen] and host providers [settings]
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] initialized
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] starting ...
[--25T15::,][INFO ][o.e.t.TransportService ] [99_nTdv] publish_address {192.168.110.133:}, bound_addresses {192.168.110.133:}
[--25T15::,][INFO ][o.e.b.BootstrapChecks ] [99_nTdv] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [] bootstrap checks failed
[]: max file descriptors [] for elasticsearch process is too low, increase to at least []
[]: max number of threads [] for user [elsearch] is too low, increase to at least []
[]: max virtual memory areas vm.max_map_count [] is too low, increase to at least []
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] stopping ...
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] stopped
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] closing ...
[--25T15::,][INFO ][o.e.n.Node ] [99_nTdv] closed
[--25T15::,][INFO ][o.e.x.m.p.NativeController] [99_nTdv] Native controller process has stopped - no new native processes can be started
[elsearch@slaver4 bin]$

错误一、[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535],解决方法如下所示:

错误原因,每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量。

注意,切记,如果按照此方法修改,必须重启你的虚拟机,而且是root用户修改的配置文件,不然你解决完报的这两个错误,再次启动elasticsearch还是会报错误一,但是不会报错误二,所以重启虚拟机以后解决这两个错误。

1 [root@slaver4 ~]# vim /etc/security/limits.conf

添加如下所示内容:

注意:解释如是,*是代表任何用户,此配置的意思是任何用户都可以打开文件的数量。

1 *               soft    nofile          65536
2 * hard nofile

操作如下所示:

错误二、[2]: max number of threads [3756] for user [elsearch] is too low, increase to at least [4096]

错误原因,最大线程个数太低。修改配置文件/etc/security/limits.conf(和问题1是一个文件),增加配置。

*               soft    nproc
* hard nproc

错误三、[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

错误原因,应该是虚拟内存不足导致的错误。修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144。执行命令sysctl -p生效。

1 [root@slaver4 ~]# vim /etc/sysctl.conf
2 [root@slaver4 ~]# sysctl -p
3 vm.max_map_count = 262144
4 [root@slaver4 ~]#

添加内容如下所示:

1 vm.max_map_count=

操作如下所示:

解决完上述两个错误以后,最好停机虚拟机,再次启动即可,使用浏览器访问也出现了正常,如下所示:

使用curl  192.168.110.133:9200可以看到访问成功了。也说明你的ElasticSearch启动成功了。

3、elasticsearch.yml的关键配置说明。

cluster.name是集群的名称,以此作为是否同一集群的判断条件。
node.name节点名称,以此作为集群中不同节点的区分条件。
network.host/http.port是网络地址和端口,用于http和tranport服务使用。
path.data是数据存储地址。
path.log是日志存储地址。 elasticsearch两种模式,一种是开发者模式,一种是生产模式。
Development与Production模式说明。
以transport的地址是否绑定在localhost为判断标准network.host。如果不是localhost或者127.0.0.1都认为是生产模式。
Development模式下在启动时候会以warning的方式提示配置检查异常。
Production模式下在启动时候会以error的方式提示配置检查异常并退出。 参数修改的第二种方式:bin/elasticsearch -Ehttp.port=19200

4、Elasticsearch集群的搭建:https://www.cnblogs.com/biehongli/p/11650045.html

elasticsearch本地快速启动集群的方式,自行练习即可:
bin/elasticsearch
bin/elasticsearch -Ehttp.port= -Epath.data=node2
bin/elasticsearch -Ehttp.port= -Epath.data=node3 http://192.168.110.133:9200/_cat/nodes可以查看集群是否组成集群。
http://192.168.110.133:9200/_cluster/stats可以查看集群的状态。

5、Kibane的安装与运行。

Kibane的安装下载,解压缩操作如下所示:

 [root@slaver4 package]# ls
elasticsearch-6.7..tar.gz
[root@slaver4 package]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
---- ::-- https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
正在解析主机 artifacts.elastic.co (artifacts.elastic.co)... 151.101.110.222, 2a04:4e42:1a::
正在连接 artifacts.elastic.co (artifacts.elastic.co)|151.101.110.222|:... 已连接。
已发出 HTTP 请求,正在等待回应... OK
长度: (178M) [application/x-gzip]
正在保存至: “kibana-6.7.-linux-x86_64.tar.gz” %[======================================================================================================================================================================================>] ,, .31MB/s 用时 40s -- :: (4.41 MB/s) - 已保存 “kibana-6.7.-linux-x86_64.tar.gz” [/]) [root@slaver4 package]# ls
elasticsearch-6.7..tar.gz kibana-6.7.-linux-x86_64.tar.gz
[root@slaver4 package]# tar -zxvf kibana-6.7.-linux-x86_64.tar.gz -C /home/hadoop/soft/

解压缩完毕,修改配置文件,我将kibana的目录赋给自己创建的用户及其用户组,如下所示:

server.port: 5601           # 默认是5601,不改也可以。
server.host: "192.168.110.133" # 修改此参数,可以在浏览器访问的。
elasticsearch.hosts: ["http://192.168.110.133:9200"]

修改完毕,可以启动kibana,更多参数修改你可以自己尝试。当出现Server running at http://localhost:5601就已经启动成功了。

 [elsearch@slaver4 kibana-6.7.-linux-x86_64]$ bin/kibana
log [::34.724] [info][status][plugin:kibana@6.7.] Status changed from uninitialized to green - Ready
log [::34.921] [info][status][plugin:elasticsearch@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::34.928] [info][status][plugin:xpack_main@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::34.958] [info][status][plugin:graph@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::34.976] [info][status][plugin:monitoring@6.7.] Status changed from uninitialized to green - Ready
log [::34.984] [info][status][plugin:spaces@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::34.997] [warning][security] Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
log [::35.008] [warning][security] Session cookies will be transmitted over insecure connections. This is not recommended.
log [::35.037] [info][status][plugin:security@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.067] [info][status][plugin:searchprofiler@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.073] [info][status][plugin:ml@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.164] [info][status][plugin:tilemap@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.167] [info][status][plugin:watcher@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.190] [info][status][plugin:grokdebugger@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.196] [info][status][plugin:dashboard_mode@6.7.] Status changed from uninitialized to green - Ready
log [::35.198] [info][status][plugin:logstash@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.210] [info][status][plugin:beats_management@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.269] [info][status][plugin:apm@6.7.] Status changed from uninitialized to green - Ready
log [::35.272] [info][status][plugin:tile_map@6.7.] Status changed from uninitialized to green - Ready
log [::35.276] [info][status][plugin:task_manager@6.7.] Status changed from uninitialized to green - Ready
log [::35.279] [info][status][plugin:maps@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.287] [info][status][plugin:interpreter@6.7.] Status changed from uninitialized to green - Ready
log [::35.309] [info][status][plugin:canvas@6.7.] Status changed from uninitialized to green - Ready
log [::35.326] [info][status][plugin:license_management@6.7.] Status changed from uninitialized to green - Ready
log [::35.334] [info][status][plugin:cloud@6.7.] Status changed from uninitialized to green - Ready
log [::35.344] [info][status][plugin:index_management@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.383] [info][status][plugin:console@6.7.] Status changed from uninitialized to green - Ready
log [::35.386] [info][status][plugin:console_extensions@6.7.] Status changed from uninitialized to green - Ready
log [::35.404] [info][status][plugin:notifications@6.7.] Status changed from uninitialized to green - Ready
log [::35.408] [info][status][plugin:index_lifecycle_management@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.745] [info][status][plugin:infra@6.7.] Status changed from uninitialized to green - Ready
log [::35.778] [info][status][plugin:rollup@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.853] [info][status][plugin:remote_clusters@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.883] [info][status][plugin:cross_cluster_replication@6.7.] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [::35.936] [info][status][plugin:translations@6.7.] Status changed from uninitialized to green - Ready
log [::35.991] [info][status][plugin:upgrade_assistant@6.7.] Status changed from uninitialized to green - Ready
log [::36.026] [info][status][plugin:uptime@6.7.] Status changed from uninitialized to green - Ready
log [::36.039] [info][status][plugin:oss_telemetry@6.7.] Status changed from uninitialized to green - Ready
log [::36.103] [info][status][plugin:metrics@6.7.] Status changed from uninitialized to green - Ready
log [::36.849] [info][status][plugin:timelion@6.7.] Status changed from uninitialized to green - Ready
log [::37.858] [info][status][plugin:elasticsearch@6.7.] Status changed from yellow to green - Ready
log [::38.051] [info][license][xpack] Imported license information from Elasticsearch for the [data] cluster: mode: basic | status: active
log [::38.057] [info][status][plugin:xpack_main@6.7.] Status changed from yellow to green - Ready
log [::38.058] [info][status][plugin:graph@6.7.] Status changed from yellow to green - Ready
log [::38.072] [info][status][plugin:searchprofiler@6.7.] Status changed from yellow to green - Ready
log [::38.073] [info][status][plugin:ml@6.7.] Status changed from yellow to green - Ready
log [::38.074] [info][status][plugin:tilemap@6.7.] Status changed from yellow to green - Ready
log [::38.074] [info][status][plugin:watcher@6.7.] Status changed from yellow to green - Ready
log [::38.074] [info][status][plugin:grokdebugger@6.7.] Status changed from yellow to green - Ready
log [::38.075] [info][status][plugin:logstash@6.7.] Status changed from yellow to green - Ready
log [::38.075] [info][status][plugin:beats_management@6.7.] Status changed from yellow to green - Ready
log [::38.075] [info][status][plugin:index_management@6.7.] Status changed from yellow to green - Ready
log [::38.076] [info][status][plugin:index_lifecycle_management@6.7.] Status changed from yellow to green - Ready
log [::38.076] [info][status][plugin:rollup@6.7.] Status changed from yellow to green - Ready
log [::38.077] [info][status][plugin:remote_clusters@6.7.] Status changed from yellow to green - Ready
log [::38.077] [info][status][plugin:cross_cluster_replication@6.7.] Status changed from yellow to green - Ready
log [::38.078] [info][kibana-monitoring][monitoring-ui] Starting monitoring stats collection
log [::38.139] [info][status][plugin:security@6.7.] Status changed from yellow to green - Ready
log [::38.140] [info][status][plugin:maps@6.7.] Status changed from yellow to green - Ready
log [::38.411] [info][license][xpack] Imported license information from Elasticsearch for the [monitoring] cluster: mode: basic | status: active
log [::40.064] [warning][browser-driver][reporting] Enabling the Chromium sandbox provides an additional layer of protection.
log [::40.067] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
log [::40.220] [info][status][plugin:reporting@6.7.] Status changed from uninitialized to green - Ready
log [::44.022] [info][listening] Server running at http://192.168.110.133:5601
log [::44.413] [info][status][plugin:spaces@6.7.] Status changed from yellow to green - Ready

kibana访问界面如下所示:

Kibana配置说明,配置位于config文件夹中。kibana.yml关键配置说明。

server.host/server.port 访问kibana的地址和端口号。
elasticsearh.host(之前是elasticsearh.url)待访问elasticsearh的地址。

Kibana常用功能说明。
  Discover数据搜索查看。Visualize图标制作。Dashboard仪表盘制作。Timelion时序数据的高级可视化分析。DevTools开发者工具。Management配置。

6、Elasticsearch与Kibana入门。Elasticsearch术语介绍与CRUD实际操作。

Elasticsearch常用术语。
Document文档数据。
Index索引。
Type索引中的数据类型。6.x版本以及以后版本慢慢废除此说法。
Field字段,文档的属性。
Query DESL查询语法。

Create创建文档。Read读取文档。Update更新文档。Delete删除文档。

 GET _search
{
"query": {
"match_all": {}
}
} # 插入
PUT /account/person/
{
"name": "zhangsan",
"age":
} PUT /account/person/
{
"name": "zhangsan",
"age":
} # 查询
GET /account/person/ # 修改
POST /account/person//_update
{
"doc":{
"name": "lisi",
"age":
}
} # 删除
DELETE /account/person/ DELETE /account GET /account/_mapping # Query String
GET /account/person/_search?q=zhangsan # Query DSL
GET /account/person/_search
{
"query":{
"match":{
"name": "lisi"
}
}
}

操作如下所示:

7、Beats入门学习。Lightweight Data Shipper,轻量级的数据传送者。

Filebeat日志文件。
  处理流程:输入Input、处理Filter、输出Output。
Metricbeat度量数据。
  主要用来搜集cpu数据,内存数据,磁盘数据,nginx,mysql。
Packetbeat网络数据。
Winlogbeat,Windows数据。
Auditbeat
Heartbeat建康检查。
Functionbeat

Filebeat的配置简介:

a、Filebeat Input配置简介,使用的是yaml语法。input_type目前有两个类型,分别是log日志文件、stdin标准输入。
案例如下所示:
filebeat.properties:
-input_type:log
paths:
-/var/log/apache/httpd-*.log
-input_type:log
paths:
-/var/log/messages
-/var/log/*.log b、Filebeat Output配置简介,支持的Output对象包含,Console标准输出、Elasticsearch、Logstash、Kafka、Redis、File。
案例如下所示:
output.elasticsearch:
hosts:["http://localhost:9200"] # elasticsearch的连接地址
username:"admin" # 用户权限认证,需要配置账号密码
password:"123456" output.console: # 输出到控制台,方便调试。
pretty:true # 输出做json的格式化。 c、Filebeat Filter配置简介。
Input 时处理
Include_lines : 达到某些条件的时候,读入这一行。
exclude_lines :达到某些条件的时候,不读入这一行。
exclude_files:当文件名符合某些条件的时候,不读取这个文件。 output 前处理 --Processor
drop_event :读取到某一条,满足了某个条件,不输出。
drop_fields :读取到某一条,满足了某个条件,不输出这个字段。
Decode_json_fields :把这条数据里面符合json格式的字段,去做json的解析。
Include_fields :加入一些字段,或者是只想取数据里面的某一些字段。 案例如下所示:
processors:
-drop_event:
when:
regexp: # 正则表达式,当匹配到message字段以DBG开头的进行丢弃。
message:"^DBG:" processors:
-decode_json_fields: # 将结果处理成正常的json格式的。
fields:["inner"] d、Filebeat高级使用简介:
Filebeat + Elasticsearch Ingest Node组合使用。
原因:Filebeat 缺乏数据转换的能力。
Elasticsearch Ingest Node介绍如下所示:
新增的node类型。
在数据写入es前对数据进行处理转换。
使用的api是pipeline api。

8、Filebeat的下载,安装部署。Filebeat是go开发的,所以分操作系统的。根据自己需求下载哦。

你可以下载好,上传到服务器,我是使用wget命令直接下载了。

 [root@slaver4 package]# ls
elasticsearch-6.7..tar.gz kibana-6.7.-linux-x86_64.tar.gz
[root@slaver4 package]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.0-linux-x86_64.tar.gz
---- ::-- https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.0-linux-x86_64.tar.gz
正在解析主机 artifacts.elastic.co (artifacts.elastic.co)... 151.101.230.222, 2a04:4e42:::
正在连接 artifacts.elastic.co (artifacts.elastic.co)|151.101.230.222|:... 已连接。
已发出 HTTP 请求,正在等待回应... OK
长度: (11M) [application/x-gzip]
正在保存至: “filebeat-6.7.-linux-x86_64.tar.gz” %[======================================================================================================================================================================================>] ,, .97MB/s 用时 .8s -- :: (3.97 MB/s) - 已保存 “filebeat-6.7.-linux-x86_64.tar.gz” [/]) [root@slaver4 package]# ls
elasticsearch-6.7..tar.gz filebeat-6.7.-linux-x86_64.tar.gz kibana-6.7.-linux-x86_64.tar.gz
[root@slaver4 package]# tar -zxvf filebeat-6.7.-linux-x86_64.tar.gz -C /home/hadoop/soft/

由于使用的是root进行解压缩操作的,将文件拥有者赋予给elsearch自己新建的用户和用户组。

filebeat-6.7.0-linux-x86_64的文件解释如下所示:

data存储的是filebeat解析过程中会去存日志读到的位置。
filebeat是可执行文件。
module是filebeat支持的模块的功能。

 [root@slaver4 package]# cd ../soft/
[root@slaver4 soft]# ls
elasticsearch-6.7. filebeat-6.7.-linux-x86_64 kibana-6.7.-linux-x86_64
[root@slaver4 soft]# chown -R elsearch:elsearch filebeat-6.7.-linux-x86_64/
[root@slaver4 soft]# su elsearch
[elsearch@slaver4 soft]$ ls
elasticsearch-6.7. filebeat-6.7.-linux-x86_64 kibana-6.7.-linux-x86_64
[elsearch@slaver4 soft]$ ll
总用量
drwxr-xr-x. elsearch elsearch 10月 : elasticsearch-6.7.
drwxr-xr-x. elsearch elsearch 10月 : filebeat-6.7.-linux-x86_64
drwxr-xr-x. elsearch elsearch 10月 : kibana-6.7.-linux-x86_64
[elsearch@slaver4 soft]$

下面,通过一个简单案例,使用Filebeat收集nginx log日志,通过stdin收集日志。通过console输出结果。

首先修改一下filebeat的配置,修改配置如谢谢所示:

 #=========================== Filebeat inputs =============================

 filebeat.inputs:

 # Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations. - type: log # Change to true to enable this input configuration.
enabled: false # Paths that should be crawled and fetched. Glob based paths.
paths:
# - /var/log/*.log
- /home/hadoop/soft/elasticsearch-6.7.0/logs
#- c:\programdata\elasticsearch\logs\* #-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
hosts: ["192.168.110.133:9200"] # Enabled ilm (beta) to use index lifecycle management instead daily indices.
#ilm.enabled: false # Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"

启动你的filebeat就可以看到日志信息。

[elsearch@slaver4 filebeat-6.7.0-linux-x86_64]$ ./filebeat -e -c filebeat.yml -d "publish"

9、Logstash入门,下载安装部署,如下所示。

  简介data shipper (不是轻量级的,会比beats占用更多的资源,但是功能强大)。

  ETL的概念:Extract 对数据进行提取、Transform 转换、Load 对外的输出。

  Logstash 是一个开源的,服务端的数据处理流,可以同时从多个数据源提取数据、转换数据、最后把数据放到你要存储的地方。

10、Logstash处理流程,如下所示:

  input:可以从file 、Redis 、beats、kafka等读取数据。

  filter :gork(表达式,简单理解为基于正则的,可以将非格式化数据转化成格式化数据的语法)、mutate(可以对结构化的数据的字段进行增删改查)、drop、date。

  output :可以向stdout 、elasticsearch 、Redis、kafka等中输出。

处理流程,Input和Output的配置,由于Logstash不是yaml语法。
input{file{path => "/tmp/abc.log"}}
output{stdout{codec => rubydebug}} 处理流程,Filter配置。
Grok,基于正则表达式提供了丰富可重用的模式(pattern)。基于此可以将非结构化数据做结构化处理。
Date,将字符串类型的时间字段转换为时间戳类型,方便后续数据处理。
Mutate,进行增加,修改,删除,替换等字段相关的处理。

11、Logstash的下载,安装,Logstash是Ruby开发的哦。如下所示:

Logstash也是基于JVM的应用,我这里直接下载tar包,方便操作,压缩包略大,百十兆哈。

 [root@slaver4 package]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
---- ::-- https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
正在解析主机 artifacts.elastic.co (artifacts.elastic.co)... 151.101.110.222, 2a04:4e42:1a::
正在连接 artifacts.elastic.co (artifacts.elastic.co)|151.101.110.222|:... 已连接。
已发出 HTTP 请求,正在等待回应... OK
长度: (168M) [application/x-gzip]
正在保存至: “logstash-6.7..tar.gz” %[======================================================================================================================================================================================>] ,, .29MB/s 用时 4m 13s -- :: ( KB/s) - 已保存 “logstash-6.7..tar.gz” [/]) [root@slaver4 package]# ll
总用量
-rw-r--r--. elsearch elsearch 10月 : elasticsearch-6.7..tar.gz
-rw-r--r--. root root 3月 filebeat-6.7.-linux-x86_64.tar.gz
-rw-r--r--. root root 3月 kibana-6.7.-linux-x86_64.tar.gz
-rw-r--r--. root root 3月 logstash-6.7..tar.gz
drwxr-xr-x. elsearch elsearch 10月 : materials
[root@slaver4 package]# tar -zxvf logstash-6.7..tar.gz -C /home/hadoop/soft/
[root@slaver4 package]# cd ../soft/
[root@slaver4 soft]# ls
elasticsearch-6.7. filebeat-6.7.-linux-x86_64 kibana-6.7.-linux-x86_64 logstash-6.7.
[root@slaver4 soft]# chown -R elsearch:elsearch logstash-6.7./
[root@slaver4 soft]# ls
elasticsearch-6.7. filebeat-6.7.-linux-x86_64 kibana-6.7.-linux-x86_64 logstash-6.7.
[root@slaver4 soft]# su elsearch
[elsearch@slaver4 soft]$ cd logstash-6.7./
[elsearch@slaver4 logstash-6.7.]$ ls
bin config CONTRIBUTORS data Gemfile Gemfile.lock lib LICENSE.txt logstash-core logstash-core-plugin-api modules NOTICE.TXT tools vendor x-pack

更深入学习后面见咯!!!

aaarticlea/jpeg;base64,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" alt="" />

作者:别先生

博客园:https://www.cnblogs.com/biehongli/

如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。

ElasticStack的入门学习的更多相关文章

  1. vue入门学习(基础篇)

    vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...

  2. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  3. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  4. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  5. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  6. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  7. Retrofit 入门学习

    Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...

  8. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  9. opengl入门学习

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

随机推荐

  1. HTML和css常见问题解答2

    1.将一个块级元素水平和垂直居中有几种方法?分别是什么? 四种方式: (1).要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上 ...

  2. [译]Vulkan教程(12)图形管道基础之入门

    [译]Vulkan教程(12)图形管道基础之入门 Introduction 入门 Over the course of the next few chapters we'll be setting u ...

  3. STM32F429的新版用户手册更新记录, 改进、交流(2019-08-18发布V0.9版本)

    2019-06-16 发布首版V0.1 2019-06-23 发布V0.2版本 新增章节: 第3章 STM32F429 整体把控 第4章 STM32F429 工程模板建立(MDK5) 第5章 STM3 ...

  4. C语言程序设计100例之(24):数制转换

    例24   数制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用 ...

  5. UI设计---初来乍到

    2019.12.1   今天学习两节 实现自己既定的目标,必须能耐得住寂寞单干. PS下载 给大家分享一个2019ps教程,提取码:ywnl 或扫描二维码 迅捷思维导图:使用" Enter  ...

  6. javascript基础修炼(12)——手把手教你造一个简易的require.js

    目录 一. 概述 二. require.js 2.1 基本用法 2.2 细说API设计 三. 造轮子 3.1 模块加载执行的步骤 3.2 代码框架 3.3 关键函数的代码实现 示例代码托管在我的代码仓 ...

  7. XAF导航系统介绍

    Navigation System 导航系统 10 min to read 阅读时长10分钟 This topic introduces the concept of the navigation s ...

  8. jQuery从零开始(一)

    1.jQuery是什么? 轻量级的工具库,类库. Jquery可以写的很少的代码,干的很多的事情. 2.学习心态,常用的功能 jQuery只是一个工具,它的实现原理还是js.以练习为主,多看多练. 常 ...

  9. JS 语句

    JS 语句 JavaScript 语句 JavaScript 语句向浏览器发出的命令.语句的作用是告诉浏览器该做什么. 下面的 JavaScript 语句向 id="demo" 的 ...

  10. RAC ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

    重启RAC时发现32004,后来才发现DG已经不存在了standby_archive_dest还在生效中,而background_dump_dest和user_dump_dest并没在pfile中出现 ...