1. 版本:hadoop-1.0.0,hbase-0.92.0
1. 在195,196,197上安装hadoop集群
2. 结果:195-》namenode
3. 196-》jobtracker,datanode
4. 197-> SecondaryNameNode,datanode
5. 1, 建hadoop用户
6. groupadd hadoop
7. useradd hadoop -g hadoop
8.
9. passwd hadoop
10.
11. mkdir -p /opt/hadoop
12. mkdir -p /opt/data/hadoop1
13. chown hadoop:hadoop /opt/hadoop
14. chown hadoop:hadoop /opt/data/hadoop1
15.
16. 2,修改hosts
17. vi /etc/hosts
18. 10.10.249.195 master
19. 10.10.249.196 slaver1
20. 10.10.249.197 slaver2
21.
[root@localhost src]# echo "master" > hostname [root@localhost src]# mv hostname /etc/hostname [root@localhost src]# hostname -F /etc/hostname #检查 [root@localhost src]# hostname master
|
22. 3,生成密钥对
23. su - hadoop
24.
25. ssh-keygen -t rsa
26.
27. cd /home/hadoop/.ssh
28.
29. cat id_rsa.pub > authorized_keys
30. cd /home/hadoop/.ssh
31. chmod 700 ../.ssh
32. chmod 600 *
33. chmod 644 authorized_keys
34.
35. 4,配置无密码 ssh登录
36. master:
37. cd /home/hadoop/.ssh
38. scp -r id_rsa.pub hadoop@10.10.249.196:~/.ssh/pubkey_master
39. scp -r id_rsa.pub hadoop@10.10.249.197:~/.ssh/pubkey_master
40. slaver1:
41. cd /home/hadoop/.ssh
42. cat pubkey_master >> authorized_keys
43.
44. scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slaver1
45. scp -r id_rsa.pub hadoop@slaver2:~/.ssh/pubkey_slaver1
46. slaver2:
47. cd /home/hadoop/.ssh
48. cat pubkey_master >> authorized_keys
49. cat pubkey_slaver1 >> authorized_keys
50. scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slaver2
51.
52. master:
53. cat pubkey_slaver1 >> authorized_keys
54. cat pubkey_slaver2 >> authorized_keys
55.
56. # su root 修改 /etc/ssh/sshd_config PasswordAuthentication no
57.
58. 5:hadoop安装
59.
60. conf/core-site.xml
61. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
62. <configuration>
63. <property>
64. <name>fs.default.name</name>
65. <value>hdfs://master:54310</value>
66. </property>
67. <property>
68. <name>hadoop.tmp.dir</name>
69. <value>/home/hadoop/hadoop_home/var</value>
70. </property>
71. </configuration>
72.
73. conf/mapred-site.xml
74. <?xml version="1.0"?>
75. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
76. <configuration>
77. <property>
78. <name>mapred.job.tracker</name>
79. <value>slaver1:54311</value>
80. </property>
81. <property>
82. <name>mapred.local.dir</name>
83. <value>/home/hadoop/hadoop_home/var</value>
84. </property>
85. </configuration>
86.
87. conf/hdfs-site.xml
88. <?xml version="1.0"?>
89. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
90. <configuration>
91. <property>
92. <name>dfs.replication</name>
93. <value>3</value>
94. </property>
95. </configuration>
96.
97.
98. echo slaver2 > masters
99. echo master > slaves
100. echo slaver1 >> slaves
101. echo slaver2 >> slaves
102.
103. 196,197同此配置
104.
105. master:
106.
107. cd /opt/hadoop/hadoop-1.0.0/bin
108. ./hadoop namenode -format
109.
110. start-all.sh
111.
112. ./bin/hadoop dfs -copyFromLocal conf/ /user/hadoop/bookdata
113. ./bin/hadoop jar hadoop-examples-1.0.0.jar wordcount /user/hadoop/bookdata /user/hadoop/book_data_out
114.
115. job.tracker 50030
116. task.tracker 50060
117. dfs.http 50070
118. datanode.http 50075
119. secondary.http 50090
120.
121. hadoop fs -mkdir /user/test
122. hadoop fs -chown test:test /user/test
123. hadoop dfsadmin -setSpaceQuota 1t /user/test
124.
125.
126. hbase安装步骤
127.
128. master:195
129. RegionServer:196,197
130.
131.
132. 1,修改三台hadoop的配置hdfs-site.xml,
133.
134. <property>
135. <name>dfs.support.append</name>
136. <value>true</value>
137. </property>
138. <property>
139. <name>dfs.datanode.max.xcievers</name>
140. <value>4096</value>
141. </property>
142.
143. restart hdfs
144.
145. #替换 hbase lib下的hadoop.jar为hdfs集群用的hadoop.jar
146.
147.
148. 2,修改hbase-site.xml
149.
150. <configuration>
151. <property>
152. <name>hbase.rootdir</name>
153. <value>hdfs://master:54310/hbase</value>
154. <description>The directory shared by RegionServers.
155. </description>
156. </property>
157. <property>
158. <name>hbase.cluster.distributed</name>
159. <value>true</value>
160. <description>The mode the cluster will be in. Possible values are
161. false: standalone and pseudo-distributed setups with managed Zookeeper
162. true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
163. </description>
164. </property>
165. <property>
166. <name>dfs.support.append</name>
167. <value>true</value>
168. </property>
169.
170. </configuration>
171.
172. 3,修改regionservers
173. echo master > regionservers
174. echo slaver1 >> regionservers
175. echo slaver2 >> regionservers
176.
177. 4,修改hbase-env.sh :
178. export HBASE_MANAGES_ZK=false #使用了单独安装的zookeeper,
179.
180. export JAVA_HOME=/export/servers/jdk1.6.0_25
181. 5,将zookeeper集群的zoo.cfg 复制到 hbase的conf目录下。
182.
183.
184. 6,复制配置好hbase到slaver1,slaver2 /opt/hadoop目录下
185.
186. 7,增加可以打开的文件句柄数,三台机器都执行。
187. su root
188. echo -ne "
189. * soft nofile 65536
190. * hard nofile 65536
191. " >>/etc/security/limits.conf
192.
193.
194. 安装完成,启动
195. cd /opt/hadoop/hbase-0.92.0/bin
196.
197. ./start-hbase.sh
198.
199. master的web 端口,默认为60010,RegionServer web 端口 60030
========================================================================================================================
Hadoop集群安装
环境说明:
1. 集群中包括3个节点:1个Master,2个Salve,节点之间局域网连接,可以相互ping通
2. 三个节点上均是ubuntu12.04系统,并且有一个相同的用户hadoop。
3. Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;
2个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。
光从字面上来理解,很容易让一些初学者认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程。其实不是。snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。
0、Hadoop 集群 IP地址分配:
192.168.1.123 Master
192.168.1.124 Node1
192.168.1.125 Node2
根据自己的IP进行分配,为此,需要在Master主机下修改 /etc/hosts文件,加入上面的配置,同时修改 /etc/hostname 中的内容为 Master
(后面克隆的slave节点的 /etc/hosts文件也是这个配置,/etc/hostname内容相应变化)
1、在Master主机下安装Java并配置环境变量,参考Hadoop集群安装附件1;
2、在Master主机下安装SSH;
1)、下载安装openssh,如下:
2)、ssh-keygen -t rsa 一路回车下去即可,即可生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa)文件,如下:
3、在Master主机下安装好Hadoop(hadoop-1.2.1版本)
1)、用户hadoop目录下新建一个文件夹hadoop,将Downloads下载的hadoop文件cp至hadoop
2)、解压缩 tar -xvzf hadoop-1.2.1.tar.gz
3)、配置Hadoop环境变量 修改 ~/.bashrc,在文件最后面加上如下配置:
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-1.2.1
exportPATH=$PATH:$HADOOP_HOME/bin
4)、配置master和slaves文件 修改 hadoop安装目录下的/conf/masters 文件,
Master
以及 hadoop安装目录下的/conf/slaves 文件,内容如下
Node1
Node2
5)、配置 hadoop安装目录下的/conf/hadoop-env.sh文件,修改 JDK的路径:
export JAVA_HOME=/usr/local/java/jdk1.6.0_37
6)、配置 hadoop安装目录下的conf/core-site.xml文件为:
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Putsite-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
<description></description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/MyHadoopTmp</value>
<description></description>
</property>
</configuration>
(提前现在/home/hadoop/hadoop目录下新建一个存放hadoop临时文件的文件夹MyHadoopTmp)
7)、配置 Hadoop安装目录下的 conf/hdfs-site.xml文件:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
8)、配置 hadoop安装目录下的 conf/mapred-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<!-- Put site-specific propertyoverrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Master:9001</value>
</property>
</configuration>
(2012.12.22 目前还没做的任务:Master节点还没添加认证公钥)
4、对 Master虚拟主机进行克隆,其节点名称为 Node1,Node2
5、启动Node1,Node2虚拟机,并修改Node1,Node2 下的文件:
1)、修改 Node1虚拟机下的 /etc/hostname内容为 Node1,Node2虚拟机下的 /etc/hostname为Node2
2)、在Master虚拟主机下, 添加认证公钥,并设置权限:
cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644~/.ssh/authorized_keys
6、配置集群的SSH服务
1)、远程拷贝Master的公钥到Node1结点上:
scp~/.ssh/id_rsa.pub root@Node1:/home/hadoop/.ssh/id_rsa.pub.master
(注意:分发公钥时,主要修改目标master公钥文件副本名称,以防覆盖掉从结点上已经存在并且正在使用的公钥文件。)
同时,在node1结点上,将master生成的密钥加入到认证密钥文件:
cat~/.ssh/id_rsa.pub.master >> ~/.ssh/authorized_keys
chmod 644~/.ssh/authorized_keys
2)、远程拷贝Master的公钥到Node2结点上
scp ~/.ssh/id_rsa.pubhadoop@Node2:/home/hadoop/.ssh/id_rsa.pub.master
同时,在node2结点上,将master生成的密钥加入到认证密钥文件
cat ~/.ssh/id_rsa.pub.master >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
3)、这时,可以验证从master结点分别登录到slave-01和slave-02结点:
ssh Node1
ssh Node2
如果不需要输入密码,则配置成功
4)、分别3个结点:
sudo chown –R hadoop:hadoop /home/hadoop/hadoop/hadoop-1.2.1
7、启动 Hadoop 集群服务
cd/home/hadoop/hadoop/hadoop-1.2.1
./hadoop namenode -format (注:运行hadoop之前一定要格式化创建相关文件)
./start-all.sh
或:
$:hadoop namenode -format
$:start-all.sh
$:jps (查看进程,查找错误日志)
8、停止hadoop 集群服务
stop-all.sh
9、上传文件
1)、关闭防火墙 sudo ufw disable (service iptables stop)
2)、
##############################
部署过程遇到错误:
1. 没有对hadoop安装文件夹赋予hadoop用户权限,以至于不能执行创建日志文件命令
改正:所有节点均:sudo chown –R hadoop:hadoop/home/hadoop/hadoop/hadoop-1.2.1
2. Jps命令查看启动进程,发现少了JobTraker和TaskTraker,看日志,hadoop的mapred-site.xml配置文件配置错误(格式不对)
改正:所有节点的mapred.xml文件均查看修改
3、集群安装后部署。执行start-all.sh后jps命令查看,进程都有,但是页面master:50070查看时发现控制面板显示集群的live node数量为0,而且集群存储空间为0,上网查看,贴了日志错误,查了很多,都是一样的解释,防火墙没关,本机查看,确实关了,于是自己再次仔细查看日志,发现一个关于地址127.0.1.1的错误,记得这是一个预留的IP,怎么用上了,注释掉,重启,好了。Sh文件里把这个ip解析成本地主机了