hadoop streaming

存在 回复了问题 3 人关注 2 个回复 1687 次浏览 2015-08-18 16:41 来自相关话题

camus将kafka数据导入hdfs报错

存在 回复了问题 3 人关注 5 个回复 2970 次浏览 2015-08-18 16:33 来自相关话题

spark streaming项目中遇到的问题

zp0824 回复了问题 2 人关注 2 个回复 2285 次浏览 2015-08-18 16:27 来自相关话题

hadoop业务迁移至虚拟化云平台问题

编程小梦 回复了问题 3 人关注 2 个回复 2832 次浏览 2015-08-18 09:50 来自相关话题

关于sqoop的使用

木子吉吉sir 回复了问题 5 人关注 3 个回复 2508 次浏览 2015-08-18 08:59 来自相关话题

Sqoop从Hive导入mysql失败解决方案

编程小梦 发表了文章 0 个评论 1368 次浏览 2015-08-17 19:42 来自相关话题

Sqoop从Hive导入mysql语句: sqoop export -D sqoop.export.records.per.statement=10 --connect jdbc:mysql://kks1:3306/sougou -- ...查看全部
 

Sqoop从Hive导入mysql语句:

sqoop export -D sqoop.export.records.per.statement=10 --connect jdbc:mysql://kks1:3306/sougou --username hive --password hive --table sougou --fields-terminated-by '\t' --export-dir "/hivedata/warehouse/sougou.db/sougou/month=6/week=1/day=1" --null-string '\\N' --null-non-string '\\N'
Sqoop从Hive导入mysql注意事项:

导入mysql前mysql必须建立和hive数据格式一致的表。

应确保mysql的数据类型长度大于相对应的hive数据的最大长度。

导入mysql前应确保相应的用户拥有远程登录MySQL的权限。

应该指定null字段的填充符。

如果之前已经导入了部分数据,需要继续导入,就必须指定更新的键。

--update-key
使用正确的分隔符。

如果你以上几点你都注意了,可能还是会遇到这个错误:

字段对不上或字段类型不一致

Caused by: java.lang.NumberFormatException: For input string: “什么是OSI参考模型?各层的主要功能是什么?] ″
出现这个问题的原因是数据本身的内容含有相应的分隔符,从而导致解析类型错位,进而解析失败。这条记录的源数据如下:

18:47:29 5999958585312108 [1. 什么是OSI参考模型?各层的主要功能是什么?] 9 68 www.eyea.net/bbs/index.php?mods=topicdisplay&forumid=62&postid=42
我们使用'\t'分割,所以sqoop把 什么是OSI参考模型?各层的主要功能是什么?] 当做 int类型解析,进而失败。

Sqoop从Hive导入mysql失败终极解决方案:

这个时候,我们所能做的就是修改,重新编译sqoop导入mysql解析规则的java文件。每次通过sqoop导入MySql的时,都会在sqoop目录生成一个以MySql表命名的.java文件,然后打成JAR包,给sqoop提交给hadoop 的MR来解析Hive表中的数据。那可以根据报的错误,找到对应的行,改写该文件,编译,重新打包,sqoop可以通过 -jar-file ,--class-name 组合让我们指定运行自己的jar包中的某个class。

编译打包方法如下:

javac -cp ./:/home/sqoop/sqoop-1.4.6.jar:/home/hadoop/share/hadoop/common/hadoop-common-2.6.0.jar:/home/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar sougou.java
jar -cf sougou.jar sougou.class
运行命令如下:

//hive导入mysql:

sqoop export -D sqoop.export.records.per.statement=10 --connect jdbc:mysql://kks1:3306/sougou --username hive --password hive --table sougou --fields-terminated-by '\t' --export-dir "/hivedata/warehouse/sougou.db/sougou/month=6/week=1/day=1" --null-string '\\N' --null-non-string '\\N' --jar-file /home/sqoop/sougou.jar --class-name sougou;
我们通过修改相关的java文件不仅可以解决各种解析异常,也可以实现自定义多字节列分隔符的功能。

Mapreduce导入导出Hbase0.98代码示例

编程小梦 发表了文章 0 个评论 1586 次浏览 2015-08-17 19:41 来自相关话题

在[button href=http://www.bcmeng.com/hbasemr/ color=red]Hadoop2.6.0|Hbase0.98.13的Mapreduce开发环境搭建[/button]一文中,我们已经成功搭建了Hadoop2.6.0|H ...查看全部
[button href=http://www.bcmeng.com/hbasemr/ color=red]Hadoop2.6.0|Hbase0.98.13的Mapreduce开发环境搭建[/button]一文中,我们已经成功搭建了Hadoop2.6.0|Hbase0.98.13的Mapreduce开发环境。下面小梦给大家演示一下具体代码。

1:Mapreduce从HDFS导入Hbase0.98代码示例:

源文件格式:

175.44.30.93 - - [29/Sep/2013:00:10:15 +0800] "GET /structure/heap HTTP/1.1" 301 406 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)"
java代码:

package hbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableOutputFormat;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class HbaseMr {

public static class MapperClass extends Mapper{

public void map(LongWritable key,Text value,Context context)throws IOException,InterruptedException{

String[] strs = value.toString().split(" ");
String rowkey = strs[0]+"-"+strs[3].substring(1);

byte [] row = Bytes.toBytes(rowkey);
byte [] family = Bytes.toBytes("info");
byte [] qualifier = Bytes.toBytes("url");
byte [] values = Bytes.toBytes(strs[6]);
Put put=new Put(row);
put.add(family,qualifier,values);

context.write(new ImmutableBytesWritable(row),put);
}
}

public static void main(String[] args) throws Exception {

Configuration conf = HBaseConfiguration.create();
conf.set(TableOutputFormat.OUTPUT_TABLE,"access-log");
String[] otherArgs = new GenericOptionsParser(conf, args)
.getRemainingArgs();
Job job = Job.getInstance(conf, "Hbase_Mr");
job.setNumReduceTasks(0);
job.setJarByClass(HbaseMr.class);
job.setMapperClass(MapperClass.class);
job.setOutputKeyClass(ImmutableBytesWritable.class);
job.setOutputValueClass(Put.class);
job.setOutputFormatClass(TableOutputFormat.class);

FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}

}
导入Hbase效果如下:

Mapreduce导入导出Hbase0.98代码示例

2:Mapreduce从Hbase导入Hbase代码示例:

统计上张图的同一IP目录总数,代码如下:

package hbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;

import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.hbase.mapreduce.TableMapper;

import org.apache.hadoop.hbase.mapreduce.TableReducer;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;

public class HbaseMR {

final static String inTable = "access-log";
final static String inFamily = "info";
final static String inColumn = "url";

final static String outTable="total-access";
final static String outFamily="url";
final static String outColumn="count";
public static class Mapper extends TableMapper {
public Mapper() {}
@Override
public void map(ImmutableBytesWritable row, Result values,Context context) throws IOException, InterruptedException {

byte [] b =values.getValue(inFamily.getBytes(), inColumn.getBytes());
if(b!=null){
String v = new String(b);

String r= new String(values.getRow());
String[] strs = r.split("-");
String ip=strs[0];

context.write(new Text(ip), new Text(v));
}
}
}

public static class Reducer extends TableReducer {
@Override
public void reduce(Text key,Iterable values,
Context context) throws IOException, InterruptedException {
int count=0;
String sum=null;
for (Text val : values) {
count++;
}
sum=String.valueOf(count);

Put put = new Put(Bytes.toBytes(key.toString()));

put.add(outFamily.getBytes(),outColumn.getBytes(),sum.getBytes());
context.write(key, put);
}
}

public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = HBaseConfiguration.create();

Job job = Job.getInstance(conf, "HbaseMR");
job.setJarByClass(HbaseMR.class);
Scan scan = new Scan();
TableMapReduceUtil.initTableMapperJob("access-log",scan,Mapper.class,
Text.class, Text.class, job);
TableMapReduceUtil.initTableReducerJob("total-access",Reducer.class, job);
System.exit(job.waitForCompletion(true) ? 0 : 1);

}

}
新表效果如下:

Mapreduce导入导出Hbase0.98代码示例

3:Mapreduce导入Hbase时去重:

在上面的导入hbase过程中我们并没有考虑同一IP访问的子目录重复问题,所以我们应该去重。

正常的Mapreduce去重思路:

利用经过shuffle之后输入到reduce中key的唯一性直接输出key即可。

具体就是map的输出的key为map输入的value,value为null。自然reduce的输入就是map的输出。当reduce接收到一个时,其中value-list为null,就直接将key复制到输出的key中,并将value设置成空值
map端的输出:

context.write(value, NullWriteable.get());
reduce端的输出:

context.write(key, NullWriteable.get());
在Mapreduce导入Hbase时我们也可以先去重,然后再导入,不过那样会需要俩次任务。

我们可以直接在上面的reduce任务中去重即可。利用HashSet来去重。改动代码如下:

public static class Reducer extends TableReducer {
@Override
public void reduce(Text key,Iterable values,
Context context) throws IOException, InterruptedException {

String sum=null;
HashSet set = new HashSet();

for (Text val : values) {
set.add(val);
}

sum=String.valueOf(set.size());

Put put = new Put(Bytes.toBytes(key.toString()));

put.add(outFamily.getBytes(),outColumn.getBytes(),sum.getBytes());
context.write(key, put);
}
}
同一数据源,效果如下:

hbase mapreduce去重

大家可以发现,统计的值明显减少。

Hadoop2.6.0|Hbase0.98.13的Mapreduce开发环境搭建

编程小梦 发表了文章 0 个评论 1502 次浏览 2015-08-17 19:40 来自相关话题

在[button href=http://www.bcmeng.com/hadoop-zookeeper-hbase/ color=red]阿里ECSHadoop2.6.0|Zookeeper3.4.6|Hbase0.98.13集群搭建[/button]一文中 ...查看全部
[button href=http://www.bcmeng.com/hadoop-zookeeper-hbase/ color=red]阿里ECSHadoop2.6.0|Zookeeper3.4.6|Hbase0.98.13集群搭建[/button]一文中我们已经搭建了Hadoop和Hbase集群,但是还是无法运行Hbase Mapreduce 任务。我们运行Mapreduce 任务时会遇到许多java.lang.ClassNotFoundException。这个问题是因为Hadoop classpath中没有hbase的相关jar包,所以我们可以将hbase的相关jar包导入Hadoop的classpath中。同时为了避免以后一些不确定错误的发生,我们应该将hbase的lib的Hadoop的2.2.0版本的jar包替换为Hadoop的2.6.0的jar包。所以,为了搭建好完整健全的hbase的Mapreduce 开发环境,我们需要以下3步:

1:用Hadoop2.6.0的jar包替换掉Hbase的lib下Hadoop相关j ar包

cd /home/hbase/lib
vim f.sh
find -name "hadoop*jar" | sed 's/2.2.0/2.6.0/g' | sed 's/\.\///g' > f.log
rm ./hadoop*jar
cat ./f.log | while read Line
do
find /home/hadoop/share/hadoop -name "$Line" | xargs -i cp {} ./
done
rm ./f.log
chmod u+x f.sh
./f.sh
rm -f f.sh

cp /home/hadoop/share/hadoop/common/lib/htrace-core-3.0.4.jar /home/hbase/lib
替换完成后,Hbase的lib目录如下:

activation-1.1.jar
aopalliance-1.0.jar
asm-3.1.jar
avro-1.7.4.jar
commons-beanutils-1.7.0.jar
commons-beanutils-core-1.8.0.jar
commons-cli-1.2.jar
commons-codec-1.7.jar
commons-collections-3.2.1.jar
commons-compress-1.4.1.jar
commons-configuration-1.6.jar
commons-daemon-1.0.13.jar
commons-digester-1.8.jar
commons-el-1.0.jar
commons-httpclient-3.1.jar
commons-io-2.4.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-math-2.1.jar
commons-net-3.1.jar
findbugs-annotations-1.3.9-1.jar
gmbal-api-only-3.0.0-b023.jar
grizzly-framework-2.1.2.jar
grizzly-http-2.1.2.jar
grizzly-http-server-2.1.2.jar
grizzly-http-servlet-2.1.2.jar
grizzly-rcm-2.1.2.jar
guava-12.0.1.jar
guice-3.0.jar
guice-servlet-3.0.jar
hadoop-annotations-2.6.0.jar
hadoop-auth-2.6.0.jar
hadoop-common-2.6.0.jar
hadoop-hdfs-2.6.0.jar
hadoop-mapreduce-client-app-2.6.0.jar
hadoop-mapreduce-client-common-2.6.0.jar
hadoop-mapreduce-client-core-2.6.0.jar
hadoop-mapreduce-client-jobclient-2.6.0.jar
hadoop-mapreduce-client-shuffle-2.6.0.jar
hadoop-yarn-api-2.6.0.jar
hadoop-yarn-client-2.6.0.jar
hadoop-yarn-common-2.6.0.jar
hadoop-yarn-server-common-2.6.0.jar
hadoop-yarn-server-nodemanager-2.6.0.jar
hamcrest-core-1.3.jar
hbase-annotations-0.98.13-hadoop2.jar
hbase-checkstyle-0.98.13-hadoop2.jar
hbase-client-0.98.13-hadoop2.jar
hbase-common-0.98.13-hadoop2.jar
hbase-common-0.98.13-hadoop2-tests.jar
hbase-examples-0.98.13-hadoop2.jar
hbase-hadoop2-compat-0.98.13-hadoop2.jar
hbase-hadoop-compat-0.98.13-hadoop2.jar
hbase-it-0.98.13-hadoop2.jar
hbase-it-0.98.13-hadoop2-tests.jar
hbase-prefix-tree-0.98.13-hadoop2.jar
hbase-protocol-0.98.13-hadoop2.jar
hbase-rest-0.98.13-hadoop2.jar
hbase-server-0.98.13-hadoop2.jar
hbase-server-0.98.13-hadoop2-tests.jar
hbase-shell-0.98.13-hadoop2.jar
hbase-testing-util-0.98.13-hadoop2.jar
hbase-thrift-0.98.13-hadoop2.jar
high-scale-lib-1.1.1.jar
htrace-core-2.04.jar
htrace-core-3.0.4.jar
httpclient-4.1.3.jar
httpcore-4.1.3.jar
jackson-core-asl-1.8.8.jar
jackson-jaxrs-1.8.8.jar
jackson-mapper-asl-1.8.8.jar
jackson-xc-1.8.8.jar
jamon-runtime-2.3.1.jar
jasper-compiler-5.5.23.jar
jasper-runtime-5.5.23.jar
javax.inject-1.jar
javax.servlet-3.1.jar
javax.servlet-api-3.0.1.jar
jaxb-api-2.2.2.jar
jaxb-impl-2.2.3-1.jar
jcodings-1.0.8.jar
jersey-client-1.8.jar
jersey-core-1.8.jar
jersey-grizzly2-1.9.jar
jersey-guice-1.9.jar
jersey-json-1.8.jar
jersey-server-1.8.jar
jersey-test-framework-core-1.9.jar
jersey-test-framework-grizzly2-1.9.jar
jets3t-0.6.1.jar
jettison-1.3.1.jar
jetty-6.1.26.jar
jetty-sslengine-6.1.26.jar
jetty-util-6.1.26.jar
joni-2.1.2.jar
jruby-complete-1.6.8.jar
jsch-0.1.42.jar
jsp-2.1-6.1.14.jar
jsp-api-2.1-6.1.14.jar
jsr305-1.3.9.jar
junit-4.11.jar
libthrift-0.9.0.jar
log4j-1.2.17.jar
management-api-3.0.0-b012.jar
metrics-core-2.2.0.jar
netty-3.6.6.Final.jar
paranamer-2.3.jar
protobuf-java-2.5.0.jar
ruby
servlet-api-2.5-6.1.14.jar
slf4j-api-1.6.4.jar
snappy-java-1.0.4.1.jar
xmlenc-0.52.jar
xz-1.0.jar
zookeeper-3.4.6.jar
2:将Hbase的相关jar包导入Hadoop的classpath:

cp /home/hbase/lib/hbase-*.jar /home/hadoop/share/hadoop/common

cp /home/hbase/lib/htrace-*.jar /home/hadoop/share/hadoop/common

cp /home/hbase/lib/high-scale-lib-1.1.1.jar /home/hadoop/share/hadoop/common

cp /home/hbase/lib/metrics-core-2.2.0.jar /home/hadoop/share/hadoop/common

cp /home/hbase/conf/hbase-site.xml /home/hadoop/etc/hadoop
注:以上包均为必须jar包。如果没有high-scale-lib-1.1.1.jar和metrics-core-2.2.0.jarHadoop只可以将mapreduce导入hbase,但是无法使用TableMapReduceUtil将hbase导入mapreduce.

完成后/home/hadoop/share/hadoop/common如下:

hadoop-common-2.6.0.jar hbase-rest-0.98.13-hadoop2.jar
hadoop-common-2.6.0-tests.jar hbase-server-0.98.13-hadoop2.jar
hadoop-nfs-2.6.0.jar hbase-server-0.98.13-hadoop2-tests.jar
hbase-annotations-0.98.13-hadoop2.jar hbase-shell-0.98.13-hadoop2.jar
hbase-checkstyle-0.98.13-hadoop2.jar hbase-testing-util-0.98.13-hadoop2.jar
hbase-client-0.98.13-hadoop2.jar hbase-thrift-0.98.13-hadoop2.jar
hbase-common-0.98.13-hadoop2.jar high-scale-lib-1.1.1.jar
hbase-common-0.98.13-hadoop2-tests.jar htrace-core-2.04.jar
hbase-examples-0.98.13-hadoop2.jar htrace-core-3.0.4.jar
hbase-hadoop2-compat-0.98.13-hadoop2.jar jdiff
hbase-hadoop-compat-0.98.13-hadoop2.jar lib
hbase-it-0.98.13-hadoop2.jar metrics-core-2.2.0.jar
hbase-it-0.98.13-hadoop2-tests.jar sources
hbase-prefix-tree-0.98.13-hadoop2.jar templates
hbase-protocol-0.98.13-hadoop2.jar
然后重启启动hadoop 和hbase集群即可。

3:配置eclipse的Hbase的mapreduce的 maven开发环境:

图形界面安装:
安装
yum groupinstall "Desktop"
yum install xrdp
yum install tigervnc-server
service xrdp start
service xrdp restart

eclipse安装:

wget http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR2/eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz&mirror_id=1071

桌面上右键创建启动器
浏览eclipse路径
点击图标 进入到eclipse根目录下
即可将eclipse添加到桌面
远程登录kks1,在eclipse建立maven项目。配置pom.xml如下:


4.0.0
com.kks
hbase
0.0.1-SNAPSHOT
hbase
hbase test


org.apache.hbase
hbase-client
0.98.13-hadoop2


org.apache.hbase
hbase-server
0.98.13-hadoop2



就可以正常开发mapreduce程序。编写完成后将到处jar包。按如下方式运行即可:

hadoop jar job.jar hbase.HbaseScanRow 后面可以添加参数
具体如何将利用mapreduce将hbase导入导入,请看下文:

[button href=http://www.bcmeng.com/hbasemrdemo color=red]Mapreduce导入导出Hbase0.98代码示例[/button]

Hadoop2.6.0|Zookeeper3.4.6|Hbase0.98.13集群搭建

编程小梦 发表了文章 0 个评论 1463 次浏览 2015-08-17 19:39 来自相关话题

今天小梦从阿里云ECS裸机开始给大家一步一步演示一下Hadoop2.6.0|Zookeeper3.4.6|Hbase;0.98.13集群搭建。 我的集群情况如下: 120.24.83.53 10.16 ...查看全部
今天小梦从阿里云ECS裸机开始给大家一步一步演示一下Hadoop2.6.0|Zookeeper3.4.6|Hbase;0.98.13集群搭建。

我的集群情况如下:

120.24.83.53 10.169.132.145 kks1 namenode hmatser zookeeper ResourceManager

120.24.50.76 10.45.162.55 kks2 datanode regionserver zookeeper NodeManager

120.24.50.27 10.45.162.0 kks3 datanode regionserver zookeeper NodeManager SecondaryNameNode

120.24.51.109 10.45.165.59 kks4 datanode regionserver NodeManager
1:修改hostname

vim /etc/sysconfig/network
修改:HOSTNAME=kks1
sudo hostname kks1

重启即可。
2:挂载数据盘

fdisk -l
fdisk /dev/xvdb
依次输入“n”,“p” “1”,两次回车,“wq"
fdisk -l

mkfs.ext3 /dev/xvdb1
echo '/dev/xvdb1 /mnt ext3 defaults 0 0' >> /etc/fstab
mount -a
df -h


3:修改/etc/hosts

vim /etc/hosts
10.169.132.145 kks1
10.45.162.55 kks2
10.45.162.0 kks3
10.45.165.59 kks4
4:SSH免密码登录:

A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为172.24.253.2 ;
A和B的系统都是Linux

在A上的命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@172.24.253.2 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码, 注:必须将.ssh的权限设为700)
# scp ~/.ssh/id_rsa.pub root@172.24.253.2:.ssh/id_rsa.pub (需要输入密码)

ssh root@kks1 "mkdir .ssh;chmod 0700 .ssh"
scp ~/.ssh/id_rsa.pub root@kks1:.ssh/id_rsa.pub
在B上的命令:
# touch /root/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)
# chmod 600 ~/.ssh/authorized_keys (# 注意: 必须将~/.ssh/authorized_keys的权限改为600, 该文件用于保存ssh客户端生成的公钥,可以修改服务器的ssh服务端配置文件/etc/ssh/sshd_config来指定其他文件名)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (将id_rsa.pub的内容追加到 authorized_keys 中, 注意不要用 > ,否则会清空原有的内容,使其他人无法使用原有的密钥登录)
5:安装JDK1.7:

yum install java-1.7.0-openjdk-devel.x86_64 -y
6:安装maven:(只在kks1节点上安装即可)

wget http://ftp.tsukuba.wide.ad.jp/software/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.tar.gz
maven下载到home目录下,则运行:
echo export PATH='$PATH':/home/maven/bin >> /etc/profile
配置好环境变量后,运行:source /etc/profile
运行:mvn --version,如系统打印maven版本信息,则配置成功
7:下载Hadoop:

wget http://apache.cs.utah.edu/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
8:修改hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
export HADOOP_PID_DIR=/var/hadoop/pids
注1:为了避免以后 sbin/stop-dfs.sh等命令失效,强烈建议设置HADOOP_PID_DIR

注2:以后所有配置的目录尽量在启动集群前都建立好。

9:core-site.xml



fs.defaultFS
hdfs://kks1:8020


10:hdfs-site.xml




dfs.namenode.name.dir
file:///home/hadoop/hdfs/name



dfs.datanode.data.dir
file:///home/hadoop/hdfs/data



dfs.namenode.secondary.http-address
kks3:9001



11:yarn-site.xml





The hostname of the RM.
yarn.resourcemanager.hostname
kks1



The address of the applications manager interface in the RM.
yarn.resourcemanager.address
${yarn.resourcemanager.hostname}:8032



The address of the scheduler interface.
yarn.resourcemanager.scheduler.address
${yarn.resourcemanager.hostname}:8030



The http address of the RM web application.
yarn.resourcemanager.webapp.address
${yarn.resourcemanager.hostname}:8088



The https adddress of the RM web application.
yarn.resourcemanager.webapp.https.address
${yarn.resourcemanager.hostname}:8090



yarn.resourcemanager.resource-tracker.address
${yarn.resourcemanager.hostname}:8031



The address of the RM admin interface.
yarn.resourcemanager.admin.address
${yarn.resourcemanager.hostname}:8033



The class to use as the resource scheduler.
yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler



yarn.scheduler.fair.allocation.file
/home/hadoop/etc/hadoop/fairscheduler.xml



yarn.nodemanager.local-dirs
/home/hadoop/yarn/local



Whether to enable log aggregation
yarn.log-aggregation-enable
true



Where to aggregate logs to.
yarn.nodemanager.remote-app-log-dir
/tmp/logs



yarn.nodemanager.resource.memory-mb
30720



yarn.nodemanager.resource.cpu-vcores
12



the valid service name should only contain a-zA-Z0-9_ and can not start with numbers
yarn.nodemanager.aux-services
mapreduce_shuffle


12:mapred-site.xml






mapreduce.framework.name
yarn




mapreduce.jobhistory.address
kks2:10020
MapReduce JobHistory Server IPC host:port



mapreduce.jobhistory.webapp.address
kks2:19888
MapReduce JobHistory Server Web UI host:port



13:slaves

kks2
kks3
kks4
14:fairscheduler.xml





102400 mb, 50 vcores
153600 mb, 100 vcores
200
300
1.0
root,yarn,search,hdfs



102400 mb, 30 vcores
153600 mb, 50 vcores



102400 mb, 30 vcores
153600 mb, 50 vcores



15:yarn-env.sh

export YARN_PID_DIR=/var/hadoop/pids

16:复制到其余主机

scp -r hadoop root@kks2:/home
scp -r hadoop root@kks3:/home
scp -r hadoop root@kks4:/home
17:启动集群

注意:所有操作均在Hadoop部署目录下进行。

在kks1上,对其进行格式化,并启动:
bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

在kks1上,启动所有datanode
sbin/hadoop-daemons.sh start datanode

启动YARN:
sbin/start-yarn.sh

至此,Hadoop 搭建完毕。 可用jps命令查看jvm进程。

以后关闭,停闭集群可以使用以下命令:

sbin/stop-dfs.sh

sbin/start-dfs.sh

sbin/start-yarn.sh

sbin/stop-yarn.sh
18:zookeeper安装:

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

tar -zvxf zookeeper-..jar
cd zookeeper 目录
mkdir data
mkdir datalog
19:在data目录下创建myid文件

在kks1,kks2,kks3上依次为1,2,3。

20:在conf目录下建立zoo.cfg文件

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/datalog
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=kks1:2888:3888
server.2=kks2:2888:3888
server.3=kks3:2888:3888
21:在每个节点上启动zookeeper

bin/zkServer.sh stop
bin/zkServer.sh start
bin/zkServer.sh status 查看节点状态
至此zookeeper安装成功。

22:Hbase安装

wget http://mirrors.koehn.com/apache/hbase/0.98.13/hbase-0.98.13-hadoop2-bin.tar.gz
23:hbase-env.sh

vim hbase-env.sh
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
export HBASE_PID_DIR=/var/hadoop/pids
24:hbase-site.xml



hbase.rootdir
hdfs://kks1:8020/hbase


hbase.cluster.distributed
true


hbase.zookeeper.property.clientPort
2181


hbase.zookeeper.quorum
kks1,kks2,kks3


zookeeper.session.timeout
120000


hbase.zookeeper.property.dataDir
/home/hbase/data


25:regionservers

kks2
kks3
kks4
26:复制到其他节点

scp -r hbase root@kks4:/home
27:启动集群

bin/start-hbase.sh

bin/stop-hbase.sh
至此hbase集群搭建完毕。

但是hbase的编程环境还远没有完成。请看下文:

[button href=http://www.bcmeng.com/hbasemr color=red]Hadoop2.6.0|Hbase0.98.13的Mapreduce编程环境搭建[/button]

在四台服务器上执行 yum install spark-core 程序安装失败,2台成功 2台异常

夕阳丶一抹红颜 回复了问题 3 人关注 4 个回复 1711 次浏览 2015-08-17 17:29 来自相关话题

hbase 的back masters不能启动问题

夕阳丶一抹红颜 回复了问题 3 人关注 9 个回复 3382 次浏览 2015-08-17 17:14 来自相关话题

spark streaming如何日志处理?

封尘 回复了问题 2 人关注 5 个回复 2573 次浏览 2015-08-17 16:58 来自相关话题

Resources are low on NN. Please add or free up more resources then turn off safe mode manually.

存在 回复了问题 3 人关注 2 个回复 4319 次浏览 2015-08-17 16:53 来自相关话题

sparkSQL 集群运行报错

存在 回复了问题 2 人关注 2 个回复 2363 次浏览 2015-08-17 16:20 来自相关话题

jps 查看不到namenode进程

夕阳丶一抹红颜 回复了问题 3 人关注 5 个回复 3376 次浏览 2015-08-17 16:17 来自相关话题

flume agent 收集SogouQ.reduced数据的时候报错

夕阳丶一抹红颜 回复了问题 4 人关注 5 个回复 2693 次浏览 2015-08-17 16:09 来自相关话题

flume停止agent

夕阳丶一抹红颜 回复了问题 3 人关注 2 个回复 6485 次浏览 2015-08-17 16:02 来自相关话题

启动flume后,如何查看flume进程跑的是哪个agent

zp0824 回复了问题 2 人关注 5 个回复 8799 次浏览 2015-08-17 16:00 来自相关话题

gobblin使用中碰到问题了,请老师看一下

zp0824 回复了问题 3 人关注 13 个回复 4251 次浏览 2015-08-17 15:18 来自相关话题

hadoop mapreduce自定义key,排序的问题

回复

jnchen 回复了问题 1 人关注 1 个回复 2748 次浏览 2015-08-17 14:00 来自相关话题

更多话题 >>

热门话题

Python

1446 个问题, 125 人关注

自然语言处理

269 个问题, 23 人关注

机器学习

2800 个问题, 359 人关注

数据分析

185 个问题, 137 人关注

计算机视觉

243 个问题, 35 人关注

更多用户 >>

热门用户

新青年1025YD

2 个问题, 0 次赞同

Andre老师@小象学院

377 个问题, 0 次赞同

等我再睡会

1 个问题, 0 次赞同

大表哥PLUS

1 个问题, 0 次赞同

火星小狼

3 个问题, 0 次赞同