CentOS上hadoop伪分布式配置

来源:互联网 发布:中核原子能公司 知乎 编辑:程序博客网 时间:2024/05/01 12:10

  Hadoop是用作处理大数据用的,核心是HDFS、Map/Reduce。虽然目前工作中不需要使用这个,但是,技多不压身,经过虚拟机很多遍的尝试,终于将Hadoop2.5.2的环境顺利搭建起来了。

       首先准备一个CentOS,将主机名改为master,并且在/etc/hosts里面加入master对应的本机ip地址。

Linux基本配置

?
1
2
3
4
5
vi /etc/sysconfig/network
#编辑文件里面的HOSTNAME=master
vi /etc/hosts
#添加
本机IP地址   master

         然后关闭iptables并设置开机不启动。

?
1
2
service iptables stop
chkconfig iptables off

重启系统,接下来是配置ssh无密码登陆。配置这个的理由是在启动hadoop可以不用输入密码。

SSH无密码登陆

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
 
#保存,并重启sshd
 
service sshd restart
 
#生成免登陆秘钥
ssh-keygen -t rsa
#一路回车就行。之后会在当前登陆用户主目录中的.ssh文件夹里生成2个文件。
#进入.ssh目录。
cat id_rsa.pub >> authorized_keys
 
#现在可以用ssh无密码登陆系统了。
ssh localhost

JDK安装配置(略)

使用的版本是jdk-7u79-linux-x64。

安装并配置Hadoop2.5.2

将下载好的tar.gz包上传至环境。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
tar -zxvf hadoop-2.5.2.tar.gz -C /usr
 
vi /etc/profile
 
#将以下内容放在最后面。
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
 
 
#保存,并执行source /etc/profile
 
 
 
#配置Hadoop
#创建hadoop的name与data目录
mkdir -p /usr/hdfs/name
mkdir -p /usr/hdfs/data
mkdir -p /usr/hdfs/tmp
 
cd /usr/hadoop-2.5.2/etc/hadoop
设置以下文件的JAVA_HOME
hadoop-env.sh hadoop-yarn.sh
 
 
vi core-site.xml
#在configuration节点里面加入以下配置,注意ip改为本机ip
<property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/hdfs/tmp</value>
      <description>A base for other temporary directories.</description>
  </property>
<!--file system properties-->
  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://192.168.1.112:9000</value>
  </property>
   
 
 
vi hdfs-site.xml
#同样在configuration节点里面加入以下配置
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
     
 
#从模板复制一份mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
#同样在configuration节点里面加入以下配置
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
   
 
vi yarn-site.xml
#同样在configuration节点里面加入以下配置,注意将ip地址换成本机的。
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <description>The address of the applications manager interface in the RM.</description>
    <name>yarn.resourcemanager.address</name>
    <value>192.168.1.112:18040</value>
  </property>
  <property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>192.168.1.112:18030</value>
  </property>
  <property>
    <description>The address of the RM web application.</description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>192.168.1.112:18088</value>
  </property>
  <property>
    <description>The address of the resource tracker interface.</description>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>192.168.1.112:8025</value>
  </property>

至此,已经将Hadoop初步的环境配置好了,在启动之前还需要格式化namenode。

输入命令“hadoop namenode -format”;

启动命令:

start-dfs.sh

start-yarn.sh

停止命令:

stop-dfs.sh

stop-yarn.sh

启动完毕,打开浏览器输入  http://192.168.1.112:50070  与  http://192.168.1.112:18088  验证安装。


测试Hadoop

通过运行hadoop自带的wordcount来验证安装是否正确。

进入hadoop安装的目录,输入以下命令。

?
1
2
mkdir example
cd example


编辑file1.txt与file2.txt

?
1
vi file1.txt

hello zhm

hello hadoop

hello cz


?
1
vi file2.txt

hadoop is ok

hadoop is newbee

hadoop 2.5.2


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd ..
hadoop fs -mkdir /data
hadoop fs -put -f example/file1.txt example/file2.txt /data
#运行wordcount例子
hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount /data /output
#查看运行结果
hadoop fs -cat /output/part-r-00000
#结果如下:
2.5.2   1
cz      1
hadoop  4
hello   3
is      2
newbee  1
ok      1
zhm     1

   到这里,环境就已经配置好了,下面就是搞使用Maven开发Hadoop项目了。

HDFS常用命令

创建HDFS文件夹

在根目录创建input文件夹

Text | 复制
1
hdfs dfs -mkdir -p /input

在用户目录创建input文件夹

说明:如果不指定“/目录”,则默认在用户目录创建文件夹

Text | 复制
1
2
hdfs dfs -mkdir -p input
#等同于 hdfs dfs -mkdir -p /user/hadoop/input

查看HDFS文件夹

查看HDFS根文件夹

Text | 复制
1
hdfs  dfs  -ls /

查看HDFS用户目录文件夹

Text | 复制
1
hdfs  dfs  -ls

查看HDFS用户目录文件夹下input文件夹

Text | 复制
1
2
hdfs  dfs  -ls input
#等同与 hdfs  dfs  -ls /user/hadoop/input

复制文件到HDFS

Text | 复制
1
hdfs dfs -put /usr/hadoop/etc/hadoop input

删除文件夹

Text | 复制
1
hdfs  dfs  -rm -r input

10参考资料

单机伪分布式搭建教程:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

集群环境搭建教程:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html


0 0
原创粉丝点击