linux做伪分布时ip设置,Linux下伪分布模式的Hadoop部署

伪分布模式也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类结点 ( NameNode, DataNode, JobTracker, TaskTracker, Secondary NameNode ),分布式运行中的这几个结点的区别:

从分布式存储的角度来说,集群中的结点由一个 NameNode 和若干个 DataNode 组成, 另有一个 Secondary NameNode 作为 NameNode 的备份。

从分布式应用的角度来说,集群中的结点由一个 JobTracker 和若干个 TaskTracker 组成,JobTracker 负责任务的调度,TaskTracker 负责并行执行任务。

TaskTracker 必须运行在 DataNode 上,这样便于数据的本地计算。JobTracker 和 NameNode 则无须在同一台机器上。

伪分布模式安装步骤:

1.解压到某目录下并设置JAVA_HOME。

2.修改配置文件:

a)修改conf/core-site.xml:

fs.default.name

hdfs://localhost:9000

b)修改conf/mapred-site.xml:

mapred.job.tracker

localhost:9001

c)修改conf/hdfs-site.xml:

dfs.replication

1

#参数 fs.default.name 指定 NameNode 的 IP 地址和端口号。缺省值是 file:///, 表示使用本地文件系统, 用于单机非分布式模式。此处我们指定使用运行于本机 localhost 上的 NameNode。

#参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号。缺省值是 local, 表示在本地同一 Java 进程内执行 JobTracker 和 TaskTracker, 用于单机非分布式模式。此处我们指定使用运行于本机 localhost 上的 JobTracker ( 用一个单独的 Java 进程做 JobTracker )。

#参数 dfs.replication 指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。 在典型的生产系统中,这个数常常设置为3。

3.配置ssh,使得本机ssh登录本机无密码。

[root@localhost Hadoop]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

Generating public/private dsa key pair.

Your identification has been saved in /root/.ssh/id_dsa.

Your public key has been saved in /root/.ssh/id_dsa.pub.

The key fingerprint is:

74:79:98:eb:fa:e0:53:aa:e3:1b:e4:a4:16:7a:6b:31 root@localhost.localdomain

[root@localhost hadoop]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

4.格式化hadoop系统并启动。

[root@localhost hadoop]# bin/hadoop namenode -format    #第一次启动hadoop先要格式化整个hadoop系统

[root@localhost hadoop]# bin/start-all.sh         #bin下有相关启动,停止命令。

starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-sword-namenode-localhost.localdomain.out

localhost: starting datanode, logging to /usr/local/hadoop/bin/../logs/hadoop-root-datanode-localhost.localdomain.out

localhost: starting secondarynamenode, logging to /usr/local/hadoop/bin/../logs/hadoop-root-secondarynamenode-localhost.localdomain.out

starting jobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-sword-jobtracker-localhost.localdomain.out

localhost: starting tasktracker, logging to /usr/local/hadoop/bin/../logs/hadoop-root-tasktracker-localhost.localdomain.out

故障诊断:

(1) 执行 $ bin/start-all.sh 启动 Hadoop 进程后,会启动5个 java 进程(如上), 同时会在 /tmp 目录下创建五个 pid 文件记录这些进程 ID 号。通过这五个文件,可以得知 namenode, datanode, secondary namenode, jobtracker, tasktracker 分别对应于哪一个 Java 进程。当你觉得 Hadoop 工作不正常时,可以首先查看这5个 java 进程是否在正常运行。

(2) 使用 web 接口。访问 http://localhost:50030 可以查看 JobTracker 的运行状态。访问 http://localhost:50060 可以查看 TaskTracker 的运行状态。访问 http://localhost:50070 可以查看 NameNode 以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及 log 等。

(3) 查看 ${HADOOP_HOME}/logs 目录下的 log 文件,namenode, datanode, secondary namenode, jobtracker, tasktracker 各有一个对应的 log 文件,每一次运行的计算任务也有对应用 log 文件。分析这些 log 文件有助于找到故障原因。

看看它怎么跑的 :

[root@localhost hadoop]# bin/hadoop dfs -put ./test-in input

#将本地文件系统上的 ./test-in 目录拷到 HDFS 的根目录上,目录名改为 input

#执行 bin/hadoop dfs –help 可以学习各种 HDFS 命令的使用。

[root@localhost hadoop]# bin/hadoop jar hadoop-0.20.1-examples.jar wordcount input output

#下面查看执行结果:

#将文件从 HDFS 拷到本地文件系统中再查看:

[root@localhost hadoop]# bin/hadoop dfs -get output ./output #最后一个参数是本地文件

[root@localhost hadoop]# cat output/*

cat: output/_logs: 是一个目录

bye    1

googbye    1

hadoop    2

hello    2

world    2

#也可以直接查看

[root@localhost hadoop]# bin/hadoop dfs -cat output/*

cat: Source must be a file.

bye    1

googbye    1

hadoop    2

hello    2

world    2

#####################################################################################

Hadoop上运行WordCount以及本地调试:

###

[zjy@asc-150-10 hadoop]$ mkdir wordcount

[zjy@asc-150-10 hadoop]$ javac  -classpath hadoop-0.19.1-dev-4966-4780-core.jar -d wordcount src/examples/org/apache/hadoop/examples/WordCount.java

[zjy@asc-150-10 hadoop]$ jar -cvf ./wordcount.jar -C wordcount/ .

[zjy@asc-150-10 hadoop]$ hadoop jar /home/zjy/hadoop/wordcount.jar org.apache.hadoop.examples.WordCount input output

#####################################################################################0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值