公司一个项目涉及到云计算,通过学习了解计划采用Hadoop,在网上找文章学习,开始做Hadoop集群安装。
安装3个虚拟机,安装Ubuntu Linux 11.10版本,设置为单CPU,512M内存,20GB硬盘,ip:分别为192.168.1.16、17、22,16做NameNode和JobTracker,17、22做DataNode。
1.建立pc01用户,密码为6个1。
2.恢复root用户和密码,并修改主机名和对应的hosts文件,停止防火墙
恢复root

sudo passwd root

修改主机名,运行

sudo gedit /etc/hostname
比如16改为UbuntuHM1,17改为UbuntuHS1,22改为UbuntuHS2,,
修改对应hosts文件
sudo gedit /etc/hosts
改为
127.0.0.1	localhost
192.168.1.16	UbuntuHM1
192.168.1.17	UbuntuHS1
192.168.1.22	UbuntuHS2
改好后重启机器,运行
hostname

看是否修改成功。
停止防火墙

sudo ufw disable

3.去 Java官网 下载JDK1.7.03 Linux版本jdk-7u3-linux-i586.tar.gz

4.解压JDK
sudo tar xvzf jdk-7u3-linux-i586.tar.gz /usr/local/lib
5.运行
sudo gedit /etc/profile
在文件最后添加
#set JAVA environment
export JAVA_HOME=/usr/local/lib/jdk1.7.0_03
export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH"
export PATH="$JAVA_HOME/bin:$PATH"
6.重启机器运行
java -version
会提示如下信息:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode)
7.下载ssh
sudo apt-get install ssh
8.下载rsync
sudo apt-get install rsync
7.去Hadoop官网下载Hadoop Common 1.0.1 hadoop-1.0.1.tar.gz,放到/home/pc01目录下
8.执行
sudo tar xvzf hadoop-1.0.1.tar.gz
将解压出hadoop-1.0.1目录
9.运行
sudo chmod 777 hadoop-1.0.1 -R
 将hadoop-1.0.1目录更改权限
10.参照文章介绍,在本地生成空密码的公钥和私钥,运行
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
11.配置本地访问不需要密码,运行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
12. 测试本地访问
ssh localhost 
没有使用过ssh连接localhost, 那么会有提示添加localhost到knowhosts中去,然后要求输入密码,记得运行exit,退出ssh。
13.将192.168.1.16机器上的公有key拷贝到其它两台机器,分别执行
scp ~/.ssh/id_dsa.pub pc01@192.168.1.17:/home/pc01/.ssh/16_dsa.pub
scp ~/.ssh/id_dsa.pub pc01@192.168.1.22:/home/pc01/.ssh/16_dsa.pub
14.在192.168.1.17和22的机器上将公有key加入,执行
cat ~/.ssh/16_dsa.pub >> authorized_keys  
15.在192.168.1.16机器上执行
ssh 192.168.1.17
同样第一次连接的话会询问是否添加机器以及要求输入密码,第二次就不用了,记得执行exit退出ssh,同理执行
ssh 192.168.1.22
16.在192.168.1.16机器上修改hadoop配置文件,修改hadoop目录下conf目录下的hadoop-env.sh,添加
export JAVA_HOME=/usr/local/lib/jdk1.7.0_03

17.在192.168.1.16机器上修改hadoop配置文件,修改hadoop目录下conf目录下的core-site.xml、hdfs-site.xml,更改文件
core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://192.168.1.16:54310</value>
    </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/pc01/hadoop-1.0.1/tmp</value>
    </property>
</configuration>
hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
</configuration>
18.在192.168.1.16机器上修改hadoop配置文件,修改hadoop目录下conf目录下的mapred-site.xml,更改文件为
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>hdfs://192.168.1.16:54311</value>
  </property>
  <property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx512m</value>
  </property>
</configuration>
19.在192.168.1.16机器上修改hadoop配置文件,修改hadoop目录下conf目录下??/span>masters文件,添加
192.168.1.16
20.在192.168.1.16机器上修改hadoop配置文件,修改hadoop目录下conf目录下的slaves文件,添加
192.168.1.17
192.168.1.22
21.将192.168.1.16机器上hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves文件更换17、22机器上hadoop对应目录的同名文件
scp -rp ~/hadoop-1.0.1/conf pc01@192.168.1.17/home/pc01/hadoop-1.0.1/
22.在192.168.1.16机器上格式化命名空间,执行
./hadoop namenode -format
23.在192.168.1.16机器上启动hadoop,执行
./start-all.sh
24.检查hadoop是否执行成功,在192.168.1.16机器上执行
./hadoop dfs -ls
如果没有错误提示或者出现文件列表,那么Hadoop成功启动了

25.通过访问http://192.168.1.16:50070来查看hdfs的状态,访问http://192.168.1.16:50030来查看map/reduce的状态。如果出现错误,或Hadoop集群未启动,可以查看$HADOOP_HOME/logs/下的日志文件。
26.停止Hadoop,运行

./stop-all.sh
27.如果运行出错,可以将所有机器的 hadoop.tmp.dir指定的配置路径下文件清除,主要清除掉dfs.data.dir指定目录下内容,一般缺省设置在hadoop.tmp.dir下,再重新运行
./hadoop namenode -format
28.运行出现org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=SED-ITS-HP, access=WRITE, inode="user":pc01:supergroup:rwxr-xr-x类似错误,简单的做法是修改hdfs-site.xml,添加如下内容
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
还可以直接往dfs的/user/pc01目录下写,当然要修改pc01目录权限
./hadoop dfs -chmod 777 /user/pc01
或
./hadoop fs -chmod 777 /user/pc01
29.给虚拟机硬盘扩容可参见文章1文章2



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐