hbase集群架构
摘自象书:
摘自象书:
1. Column Family不能动态增减 2. 但在一个Column Family里面可以随时通过put等语句添加新列 待续。。。
摘自象书 Q: 为什么不直接用mysql? A: mysql无法自动分表分库,手动分又比较复杂 Q: 为什么不用Hive? A: Hive只适合批量的、比较慢的数据处理,不方便做单行的、立即响应的处理
无干货,仅供复制 选择与你的hadoop兼容的hbase版本 我的hadoop是1.0.4版本。经试验发现与hbase 0.90不兼容,后来改用hbase 0.94.2就可以了。 配置hbase <!– conf/hbase-site.xml –> <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:8020/hbase</value> <!–假定你的hdfs namenode也装在本机–> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration> 启动hbase 引用 #start-hbase.sh #这里假定hdfs已经启动 查看web控制台验证启动是否成功 引用 http://localhost:60010 停止hbase 引用 #stop-hbase.sh 常见问题 如果在hbase日志里看到 引用 java.io.IOException: Call to localhost/127.0.0.1:8020 failed on local exception: java.io.EOFException 应该再去hdfs日志里看一下有没有相关的信息。比如 引用 2012-12-02 15:21:31,650 WARN org.apache.hadoop.ipc.Server: Incorrect header or version mismatch from …
使用fastjson往浏览器输出字符串时,应该在调用fastjson API时使用以下两个参数: 1. SerializerFeature.DisableCircularReferenceDetect 2. SerializerFeature.BrowserCompatible 如果不使用第1个参数且传入的对象中有小对象被引用两次(比如map中两个key共用一个value对象),就可能导致输出的json中出现$ref等字样 如果不使用第2个参数,则有可能出现浏览器兼容问题
这篇文章介绍如何用hive来分析一个网站访问日志文件。这里假定你已经安装好了一个跟hadoop集群(pseudo mode亦可)协作的hive,如果还没有,看 这里 建表 hive> create table coupon11_log (day string, time string, usernameid string, ip string, url string) row format serde ‘org.apache.hadoop.hive.contrib.serde2.RegexSerDe’ with serdeproperties( “input.regex” = “([^\\s]+)\\s+([^\\s]+)\\s+[^\\s]+\\s+[^\\s]+\\s+[^\\s]+\\s+[^\\s]+\\s+\-\\s+userNameId\-([^\\s]+)\\s+from\\s+IP\-([^\\s]+)\\s+invoked\\s+URL\-([^\\s]+).*” ); — 这个正则表达式就是访问日志的正则,一共5个括号,对应表里的5列 从HDFS载入数据文件到表中 hive> load data inpath ‘/user/coupon11log’ overwrite into table coupon11_log; –这里其实只会复制文件,不会解析它,所以这一步很快 select * from coupon11_log limit 10; — 小看一下装载进来的数据 试一个简单的统计查询 hive> select url, count(*) as …
无干货,仅供复制 注:这里假定机器上已经运行了一个pseudo mode的hadoop 1.下载、解压 2.把HIVE_INSTALL/bin 加入到path中 3.配置相关的hadoop信息 <!–HIVE_INSTALL/conf/hive-site.xml–> <configuration> <!–跟hadoop下的cores-site.xml一致–> <property> <name>fs.default.name</name> <value>hdfs://localhost/</value> </property> <!–跟hadoop下的mapret-site.xml一致–> <property> <name>mapred.job.tracker</name> <value>localhost:8021</value> </property> </configuration> 4. 在hadoop服务器上执行hive查询时需要用到hive的一个库,需要在hive里配置。 <!–HIVE_INSTALL/conf/hive-site.xml–> <property> <name>hive.aux.jars.path</name> <value>/home/kent/hive-contrib-0.9.0.jar</value> </property> 当然,要把这个库从本地复制到hdfs中, 引用 #hadoop fs -copyFromLocal /home/kent/dev/hadoop/hive-0.9.0/lib/hive-contrib-0.9.0.jar /home/kent/hive-contrib-0.9.0.jar 5. 最后试一下 # echo ‘X’ > /tmp/dummy.txt # hive > create table dummy (value string); –建一个表 > load data local inpath …
摘自 Hadoop In Action 1.NameNode和JobTracker可以分拆到两台机上 2.DataNode和TaskTracker有对应的关系,在每台机器上要成对出现 3.NameNode和JobTracker都是单点
摘自象书 1.Cloudera提供公有云和私有云 2.Aamzon有Elastic MapReduce服务 另外Apache有个项目Apache Whirr可以帮你在Amazon EC2上迅速搭建hadoop环境
摘自象书 Processor 2 quad-core 2-2.5GHz CPUs, 一共8核 Memory 16-24 GB ECC RAM Storage 4 × 1TB SATA disks Network Gigabit Ethernet 1.使用多核CPU,可以让单台worker机器起多个task,充分压榨机器的能力 2.除了NameNode,其他结点不需要使用RAID,因为HDFS自己会做replication