首页 文章 精选 留言 我的

精选列表

搜索[高并发],共10000篇文章
优秀的个人博客,低调大师

可用Hadoop平台-Hue In Hadoop

1.概述 今天为大家介绍另一款工具——Hue,该工具功能比较丰富,下面是今天为大家分享的内容目录: Hue简述 Hue In Hadoop 截图预览 本文所使用的环境是Apache Hadoop-2.6版本,下面开始今天的内容分享。 2.Hue简述 Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。 Hue在数据库方面,默认使用的是SQLite数据库来管理自身的数据,包括用户认证和授权,另外,可以自定义为MySQL数据库、Postgresql数据库、以及Oracle数据库。其自身的功能包含有: 对HDFS的访问,通过浏览器来查阅HDFS的数据。 Hive编辑器:可以编写HQL和运行HQL脚本,以及查看运行结果等相关Hive功能。 提供Solr搜索应用,并对应相应的可视化数据视图以及DashBoard。 提供Impala的应用进行数据交互查询。 最新的版本集成了Spark编辑器和DashBoard 支持Pig编辑器,并能够运行编写的脚本任务。 Oozie调度器,可以通过DashBoard来提交和监控Workflow、Coordinator以及Bundle。 支持HBase对数据的查询修改以及可视化。 支持对Metastore的浏览,可以访问Hive的元数据以及对应的HCatalog。 另外,还有对Job的支持,Sqoop,ZooKeeper以及DB(MySQL,SQLite,Oracle等)的支持。 下面就通过集成部署,来预览相关功能。 3.Hue In Hadoop 本文所使用的Hadoop环境是基于Apache社区版的Hadoop2.6,在集成到Hadoop上,Hue的部署过程是有点复杂的。Hue在CDH上是可以轻松的集成的,我们在使用CDH的那套管理系统是,可以非常容易的添加Hue的相关服务。然而,在实际业务场景中,往往Hadoop集群使用的并非都是CDH版的,在Cloudera公司使用将其贡献给Apache基金会后,在Hadoop的集成也有了较好的改善,下面就为大家介绍如何去集成到Apache的社区版Hadoop上。 3.1基础软件 在集成Hue工具时,我们需要去下载对应的源码,该系统是开源免费的,可以在GitHub上下载到对应的源码,下载地址如下所示: git@github.com:cloudera/hue.git 我们使用Git命令将其克隆下来,命令如下所示: git clone git@github.com:cloudera/hue.git 然后,我们在Hadoop账号下安装Hue需要的依赖环境,命令如下所示: sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel 等待其安装完毕。 3.2编译部署 在基础环境准备完成后,我们开始对Hue的源码进行编译,编译的时候,Python的版本需要是2.6+以上,不然在编译的时候会出现错误,编译命令如下所示: [hadoop@nna ~]$ cd hue [hadoop@nna ~]$ make apps 等待其编译完成,在编译的过程中有可能会出现错误,在出现错误时Shell控制台会提示对应的错误信息,大家可以根据错误信息的提示来解决对应的问题,在编译完成后,我们接下来需要对其做对应的配置,Hue的默认配置是启动本地的Web服务,这个我们需要对其修改,供外网或者内网去访问其Web服务地址,我们在Hue的根目录下的desktop/conf文件夹下加pseudo-distributed.ini文件,然后我们对新增的文件添加如下内容: vi pseudo-distributed.ini [desktop] http_host=10.211.55.28 http_port=8000 [hadoop] [[hdfs_clusters]] [[[default]]] fs_defaultfs=hdfs://cluster1 logical_name=cluster1 webhdfs_url=http://10.211.55.26:50070/webhdfs/v1 hadoop_conf_dir=/home/hadoop/hadoop-2.6.0/etc/hadoop [beeswax] hive_server_host=10.211.55.17 hive_server_port=10000 # hive_conf_dir=/home/hive/warehouse [hbase] hbase_clusters=(cluster1|10.211.55.26:9090) hbase_conf_dir=/home/hadoop/hbase-1.0.1/conf 关于Hue的详细和更多配置需要,大家可以参考官方给的知道文档,连接地址如下 所示: http://cloudera.github.io/hue/docs-3.8.0/manual.html 这里,Hue的集成就完成了,下面可以输入启动命令来查看,命令如下所示: [hadoop@nna ~]$ /root/hue-3.7.1/build/env/bin/supervisor & 启动信息如下所示: 下面,在浏览器中输入对应的访问地址,这里我配置的Port是8000,在第一次访问时,需要输入用户名和密码来创建一个Administrator,这里需要在一步的时候需要注意下。 4.截图预览 下面附上Hue的相应的截图预览,如下图所示: 5.总结 在编译的时候,大家需要注意Hue的依赖环境,由于我们的Hadoop集群不是CDH版本的,所以在集成Hue的服务不能像CDH上那么轻松。在Apache的Hadoop社区版上集成部署,会需要对应的环境,若是缺少依赖,在编译的时候是会发生错误的。所以,这里需要特别留心注意,出错后,一般都会有提示信息的,大家可以根据提示检查定位出错误原因。 6.结束语 这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

优秀的个人博客,低调大师

可用Hadoop平台-答疑篇

1.概述 这篇博客不涉及到具体的编码,只是解答最近一些朋友心中的疑惑。最近,一些朋友和网友纷纷私密我,我总结了一下,疑问大致包含以下几点: 我学 Hadoop 后能从事什么岗位? 在遇到问题,我该如何去寻求解决方案? 针对以上问题,我在这里赘述下个人的经验,给即将步入 Hadoop 行业的同学做个参考。 2.我学 Hadoop 后能从事什么岗位 目前 Hadoop 相关的工作大致分为三类:应用,运维,二次开发 2.1应用 这方面的主要工作是编写MapReduce作业,利用Hive之类的套件来进行数据分析或数据挖掘,Hadoop在这里只是一个基础平台,仍然是需要自己编写相应的逻辑去实现对应的业务。从事这方面的工作,你至少要懂一门编程语言,如Java,Shell,Python等。由于Hadoop的源码是用Java语言编写的,目前业界Java方面的Hadoop社区活跃度相对较高,Shell和Python对应的活跃度较少。目前培训机构都是在这方面进行培养的比较多,你只需要对Hadoop的框架构造,基本的组织结构有所了解,理解MapReduce的编程框架和模式,懂得代码调优,能够使用Hadoop的相关套件,如:Hive,Sqoop,Flume等。 2.2运维 这方面主要负责Hadoop集群的搭建,系统的各种参数的调优,集群故障处理和保持集群运行稳定,这部分人才目前市场上是较为奇缺的,也是很多在Hadoop平台相对成熟的企业所青睐的人才,对于从事这部分工作的人同学来说,他可以不懂Java语言,但是在工作上必须处事冷静,做事严谨认真。如果由较强的钻研精神,可以通过自己的在实际工作中摸索一些调优的解决方案。同样,也可以参加一些峰会,沙龙之类的互动活动与业界的一些牛人交流工作心得,从而来获取一些有价值的方案。另外一个能体现Hadoop运维价值的因素,遇到问题能够快速定位并找到解决方案,不过这部分的工作经验都是靠平时工作日积月累出来的,当然和你运维的集群规模大小也有一定关系,若你由机会进入到拥有大集群的公司进行这方面的工作,你的成长会很快,不单单是运维Hadoop。Hadoop运维这类工作是没法弄虚作假的,你想随便谷歌点资料去忽悠,很容易被识破。 2.3二次开发 从事这方面工作的要求较高,而且也不是所有的企业都设有这样的工作岗位,这部分的工作有:按照企业实际需求,对Hadoop的框架本身进行修改以适用于企业本身业务;研究版本的新特性;规划版本升级等等。这方面就需要你对Hadoop的源码进行深入了解学习和研究,时刻关注Hadoop官网及Hadoop社区,了解最新版本的特性,把握Hadoop未来的发展前景及房子方向。 但是并不是所有的企业将这些岗位划分的这么明细的,有些企业根本不涉及二次开发,一个Hadoop工程师同时负责开发和运维,所以,我们不仅要在Hadoop应用这块烂熟于心,而且,基本的Hadoop运维我们也必须要掌握,至少集群的搭建,基本的集群维护这些我们要会去做。 3.在遇到问题,我该如何去寻求解决方案 这个问题是很多初入Hadoop的同学会遇到的,在开发时遇到异常,或集群在运行时抛出一些异常,不知所措,下面我给出自己在实际工作中的一些心得体会。 一般抛出异常,log 文件都会有记录,这些问题很大一部分可能是你首次遇到,遇到问题我得先备份这些信息(log文件,异常操作记录)。然后,我们在仔细分析日志信息,若实在是没有解决思路,则可参考以下方案: Google 关键字 这里给大家举个例子,异常信息如下所示: java.io.ioexception could not obtain block blk_ 这个异常信息我只截取了部分,我们首先到Google去搜索对应得关键字,如下图所示: 然后,Google会列出匹配到得或是相似得问题得结果,我们可以从中筛选出我们想要得结果。 Hadoop Jira 若是在Google后找不到想要得结果,可在Apache的官方Jira上查找关键字,这里有来自世界各地从事这方面的人,他们会把出现的这些现象做详细的描述,有的甚至会给出解决方案,和附上相应的patch。 部分 Comments 截图如下所示: 通过阅读评论,我们知道出现这种情况大多数是节点断开了,连接不上,原因找到后,我们就好去解决了。 源码 若以上两中方式都未能解决,查看源码,理解工作原理,初步猜测原因,调试验证。其实解决只是时间问题。如果你想深入了解,阅读官方的Jira,找到你感兴趣的问题去研究。绝对会有不一样的体验。 4.结束语 这篇答疑博客就和大家分享到这里,如果大家在研究的过程当中,有什么疑问可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

优秀的个人博客,低调大师

Haproxy+keepalived 可用负载

Haproxy+keepalived+apache 一、拓扑图: 二、编译安装haproxy(两台机器一样安装) 解压:tar zxvf haproxy-1.6.4.tar.gz 编译:注意:下边的等号前边的参数必须大写 cd haproxy-1.6.4 make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy 安装后,创建配置文件和启动文件 mkdir -p /usr/local/haproxy/etc/haproxy cp examples/acl-content-sw.cfg/usr/local/haproxy/etc/haproxy/haproxy.cfg cp examples/haproxy.init /etc/init.d/haproxy chmod +x /etc/init.d/haproxy 修改启动文件: vi /etc/init.d/haproxy 修改BIN、CFG路径 BIN=/usr/local/haproxy/sbin/$BASENAME CFG=/usr/local/etc/$BASENAME/$BASENAME.cfg 三、编辑配置文件(两台机器一样) cd /usr/local/haproxy/etc/haproxy cp haproxy.cfg haproxy.cfg.bak vi haproxy.cfg # This sampleconfiguration makes extensive use of the ACLs. It requires # HAProxyversion 1.3.12 minimum. global log localhost local3 maxconn 250 uid 71 gid 71 chroot /usr/local/haproxy pidfile /var/run/haproxy.pid daemon quiet frontendhttp-in bind :80 mode http log global clitimeout 30000 option httplog option dontlognull #option logasap option httpclose maxconn 100 stats refresh 30s stats uri /stats stats realm linuxidc-test-Haproxy stats auth admin:admin123 stats hide-version capture request header Host len 20 capture request header User-Agent len 16 capture request header Content-Length len 10 capture request header Referer len 20 capture response header Content-Lengthlen 10 # block any unwanted source IPaddresses or networks acl forbidden_src src 0.0.0.0/7 224.0.0.0/3 acl forbidden_src src_port 0:1023 block if forbidden_src # block requests beginning with http://on wrong domains acl dangerous_pfx url_beg -ihttp:// acl valid_pfx url_reg -i ^http://[^/]*1wt\.eu/ block if dangerous_pfx !valid_pfx # block apache chunk exploit, ... acl forbidden_hdrshdr_sub(transfer-encoding) -i chunked acl forbidden_hdrs hdr_beg(host) -i apache- localhost # ... some HTTP content smugling andother various things acl forbidden_hdrs hdr_cnt(host) gt 1 acl forbidden_hdrshdr_cnt(content-length) gt 1 acl forbidden_hdrshdr_val(content-length) lt 0 acl forbidden_hdrshdr_cnt(proxy-authorization) gt 0 block if forbidden_hdrs # block annoying worms that fill thelogs... acl forbidden_uris url_reg -i.*(\.|%2e)(\.|%2e)(%2f|%5c|/|\\\\) acl forbidden_uris url_sub -i %00<script xmlrpc.php acl forbidden_uris path_end -i/root.exe /cmd.exe /default.ida /awstats.pl .asp .dll # block other common attacks (awstats,manual discovery...) acl forbidden_uris path_dir -i chatmain.php read_dump.php viewtopic.php phpbb sumthin horde _vti_bin M SOffice acl forbidden_uris url_reg -i(\.php\?temppath=|\.php\?setmodules=|[=:]http://) block if forbidden_uris # we rewrite the "options"request so that it only tries '*', and we # only report GET, HEAD, POST andOPTIONS as valid methods reqirep ^OPTIONS\ /.*HTTP/1\.[01]$ OPTIONS\\\*\ HTTP/1.0 rspirep ^Allow:\ .* Allow:\ GET,\ HEAD,\POST,\ OPTIONS acl web hdr_beg(host) -i www.abc.com use_backend wwwif web backend www modehttp #source 192.168.11.13:0 balance roundrobin cookie SERVERID server web01 192.168.1.13:80 checkinter 30000 fall 3 weight 10 server web02 192.168.1.14:80 checkinter 30000 fall 3 weight 10 # long timeout to support connectionqueueing contimeout 20000 srvtimeout 20000 fullconn 100 redispatch retries 3 option httpchk HEAD / option forwardfor option checkcache option httpclose # allow other syntactically validrequests, and block any other method acl valid_method method GET HEAD POSTOPTIONS block if !valid_method block if HTTP_URL_STAR !METH_OPTIONS block if !HTTP_URL_SLASH !HTTP_URL_STAR!HTTP_URL_ABS # remove unnecessary precisions on theserver version. Let's say # it's an apache under Unix on theFormilux Distro. rspidel ^Server:\ rspadd Server:\ Apache\ (Unix;\Formilux/0.1.8) # end ofdefaults 配置日志相关步骤 haproxy.cfg 上边已经配置 log localhost local3 vi /etc/rsyslog.conf 去掉#号 $ModLoad imudp $UDPServerRun 514 在local7.*下边添加以下内容: local3.* /var/log/haproxy/haproxy.log vi /etc/sysconfig/rsyslog 修改为: SYSLOGD_OPTIONS="-r -m 0" 重启rsyslog和haproxy服务service rsyslog restart service haproxy restart 日志文件:/var/log/haproxy/haproxy.log 查看haproxy状态信息http://ip/stats用户密码:admin:admin123 四、Web01和web02安装httpd yum –y install httpd 分别建立配置文件: Web01: vi /var/www/html/index.html Wo shi 13. Web02: vi /var/www/html/index.html Wo shi 14. 两台都执行以下配置: 关闭selinux vi /etc/sysconfig/selinux SELINUX=disabled 重启 service iptables stop chkconfig iptables off chkconfig httpd on service httpd start 浏览器测试是否都能打开web01和web02 五、编译安装keepalived 安装相关包:yum -y install openssl openssl-devel 解压:tar zxvf keepalived-1.2.20.tar.gz 编译cd keepalived-1.2.20./configure --prefix=/usr/local/keepalived1.2.20makemake install 配置启动文件:cd /usr/local/keepalived1.2.20/cp etc/rc.d/init.d/keepalived /etc/init.d/vi /etc/init.d/keepalived修改三处:. /usr/local/keepalived1.2.20/etc/sysconfig/keepalivedconfig="/usr/local/keepalived1.2.20/etc/keepalived/keepalived.conf"daemon keepalived -D -f $config 配置keepalived.conf文件cd etc/keepalived/备份:cp keepalived.conf keepalived.conf.bakvi keepalived.conf(注意两个配置文件有所不同)192.168.0.11的keepalived.conf ! Configuration File for keepalived global_defs { notification_email { 506@qq.com } notification_email_from postmaster@it.com smtp_server mail.it.com smtp_connect_timeout 30 router_id LVS_01 } vrrp_script chk_haproxy { script "/usr/local/keepalived1.2.20/check_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth2 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.222/24 } } 192.168.0.12的keepalived.conf ! Configuration File for keepalived global_defs { notification_email { 506@qq.com } notification_email_from postmaster@it.com smtp_server mail.it.com smtp_connect_timeout 30 router_id LVS_01 } vrrp_script chk_haproxy { script "/usr/local/keepalived1.2.20/check_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth2 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.222/24 } } ln -s/usr/local/keepalived1.2.20/sbin/keepalived /usr/sbin/ 开启路由功能 net.ipv4.ip_forward= 1 开启IP转发功能 net.ipv4.ip_nonlocal_bind= 1 开启允许绑定非本机的IP 如果使用LVS的DR或者TUN模式结合Keepalived需要在后端真实服务器上特别设置两个arp相关的参数。这里也设置好。 net.ipv4.conf.lo.arp_ignore= 1 net.ipv4.conf.lo.arp_announce= 2 net.ipv4.conf.all.arp_ignore= 1 net.ipv4.conf.all.arp_announce= 2 创建防止haproxy服务关闭导致keepalived不自动切换脚本 cat /usr/local/keepalived1.2.20/check_haproxy.sh #!/bin/bash if [ $(ps-C haproxy --no-header | wc -l) -eq 0 ]; then /etc/init.d/haproxy start fi sleep 2 if [ $(ps-C haproxy --no-header | wc -l) -eq 0 ]; then /etc/init.d/keepalived stop fi 启动服务 service keepalived restart ip addr查看有没有创建vip 这时候备的keepalived是没有vip地址的: 当主keepalived断掉,备keepalived接管vip(这里停止服务模仿) 当keepalived切换的时候,ping会丢一个包: 当主keepalived关掉的时候,丢包: 当主keepalived恢复的时候,丢包: 六、Haproxy本机测试www.abc.com访问 由于是测试没有dns解析,临时做hosts解析记录: 测试:curl www.abc.com测试两次,实现轮询 七、客户端测试www.abc.com Windows客户端测试,添加hosts记录 浏览器访问www.abc.com访问两次,也成功实现轮询

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册