1.hadoop学习相关安装

来源:互联网 发布:mac电脑潮壁纸 编辑:程序博客网 时间:2024/04/28 04:01

在学习的时候,参考了许多网上的资料,在此感谢网友提供的分享.

自己也记下来吧.

一.虚拟机ubuntu的安装.
1.安装ubuntu.
2.网络设置.
在宿主机上:
采用 的是NAT方式,
把 Vmnet8的ip及dns获取方式设为自动获取.
把宿主机的连接外网的网卡属性里面,选择'高级',设置成允许共享,选择网络接口:vmnet8(bridge方式选择vmnet1);
保证vmware dhcp service 和 vmware nat service两个服务的开启.
在虚拟机软件上:
菜单“edit”-“virtual network settings”,点击“automatic bridging”选项卡,去掉“automatic bridging”复选框;点击“NAT”选项卡,
看VMNET8的gateway ip address,记下它,如192.168.52.2,这个地址很重要,是虚拟机软件为虚拟机分配的虚拟网关地址,
它的网段(ip:192.168.52.2)和宿主机中的虚拟网卡VMware Network Adapter VMnet8的网段(ip:192.168.52.1)应该是一样的。
在ubuntu上的操作
设置ip和网关:打开/etc/network/interfaces文件,添加如下内容
iface eth0 inet static
address 192.168.52.128
netmask 255.255.255.0
gateway 192.168.52.2
auto eth0
请注意,ip地址(即address)要设置为192.168.52.128到192.168.52.254中的任意一个,因为192.168.52.2已分配给虚拟网关,而192.168.52.2到192.168.52.127是保留的静态地址。
设置域名解析(DNS):打开/etc/resolv.conf,添加如下内容
nameserver 192.168.52.2
重启网络:/etc/init.d/networking restart
此时应该能访问宿主机及上网了
3.开启ssh服务
在ubuntu上执行ps -ef|grep ssh,一般只可发现ssh的客户端进程/usr/bin/ssh-agent,因为安装ubuntu的时候默认是不安装ssh server的。
下面使用apt-get工具安装ssh。apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。",所以要首先确保ubuntu能连上互联网。apt-get命令需要root权限。
sudo apt-get install openssh-server
4.开启ftp功能
sudo apt-get install vsftpd
设置 vsftpd.conf文件
sudo gedit /etc/vsftpd.conf
重启:sudo /etc/init.d/vsftpd restart
5.增加一个hadoop组及用户
sudo addgroup hadoop (增加一个新用户组)
sudo adduser --ingroup hadoop hadoop (增加一个新用户到hadoop用户组中)
su (切换到root用户)
ls -l /etc/sudoers
chmod u+w /etc/sudoers
修改sudoers的权限,增加读权限
ls -l /etc/sudoers(查看suoders的权限)
gedit /etc/sudoers
在 root ALL=(ALL) ALL 后面添加:hadoop ALL=(ALL) ALL
恢复sudoers的权限chmod u-w /etc/sudoers
exit(退出root)
6.建立 SSH KEY:
    su hadoop
    ssh-keygen -t rsa -P ""
    启用 SSH KEY:
    cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
    更新一下:
    sudo /etc/init.d/ssh reload
    验 证 SSH 的配置:
    ssh localhost(结果大致如下:)
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 52:9b:e2:62:93:01:88:e6:46:a8:16:68:52:91:8a:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
二.JDK的安装.
1.下载jdk的linux包,放到usr/java目录下,
直接运行:sudo ./jdk-6u23-linux-i586.bin 就开始安装了.
2.配置jdk环境:
export JAVA_HOME=/usr/java/jdk1.6.0_24
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib
顺便把hadoop的环境也配好:
export HADOOP_HOME=/usr/local/hadoop-0.20.2
export PATH=$PATH:$HADOOP_HOME/bin
最后s ource /etc/profile 更新下就可以用java -version等命令测试了.
三.hadoop的部署(每台机的目录必须相同).
1.解压hadoop-0.20.2包,放到某个目录下,如usr/local/下面,把他的权限赋给hadoop用户。sudo chown -R hadoop:hadoop hadoop-0.20.2
2.修改环境配置文件:
sudo gedit /usr/local/hadoop/conf/hadoop-env.sh,在里面添加JAVA_HOME环境变量,如下:
    export JAVA_HOME=/usr/java/jdk1.6.0_24
3.修改 core-sit.xml文件 sudo gedit conf/core-site.xml
    在<configuration></configuration>里面添加下面的语句:
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
4.修改mapred-site.xml文件 sudo gedit conf/mapred-site.xml
    在<configuration></configuration>里面添加下面的语句:
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>
5.格式化 namenode
  hadoop namenode -format
 启动 命令:start-all.sh
6.验证hadoop是否启动成功了
    jps
    这个命令是用来查看当前的JVM运行了哪几个任务
    如果hadoop安装成功 并且启动成功的话,会出现下面几个任务
    6605 TaskTracker
    6707 Jps
    6447 JobTracker
    6385 SecondaryNameNode
    6109 NameNode
四.联机配置(本配置是把master跟JobTracker在一台机上)
1.为每台机设置主机名:sudo vi /etc/hostname,之后ssh更加方便
2.为每台机配置hosts文件:sudo vi /etc/hosts     
如:
192.168.52.128  master
192.168.52.130  slave1
(最好把其他清干净)
3.接下来,我们把master的公钥拷到所有的slave中去:(若有jobtracker,同样需要与slave建立信任关系,并且,jobtracker需与master之间也要添加信任关系)
  scp /home/hadoop/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/20_rsa.pub
  然后用ssh登陆远程slave机:ssh hadoop@slave1
  然后把master的公钥加到slave的authorized_keys里面:
  cat   /home/hadoop/.ssh/20_rsa.pub >> /home/hadoop/.ssh/authorized_keys
  这样就行了,现在退出远程slave1:exit
  现在在master上连接远程的slave1就可以不用再输入密码了:ssh slave1就可以连接了。
  同样的,其它slave也可以这样配置。
4.hadoop环境配置(用master带动其它的slave来执行 dfs操作,以下操作是在每台机上都要有)。
  1).进入hadoop目录下,配置conf下的masters文件
                  cd /usr/local/hadoop
                  sudo gedit conf/masters
                 (打开后将里面内容清空,然后添加“master”或者master的IP“192.168.52.128”,此处即是hosts中配置的映射,填master或者直接填IP都是一样的)
  2).配置conf下的slaves文件
                  sudo gedit conf/slaves
                 (打开后将里面内容清空,然后添加“slave1”或者slave1的IP“192.168.52.130”,原因同上)
  3).配置conf下的core-site.xml文件
                  sudo gedit conf/core-site.xml
                 (因为已完成单节点配置,因此只需要修改就行了。打开后将第一个<property>标签中的localhost改为“master”或者master的IP,如下
<property> 
    <name>fs.default.name</name> 
    <value>hdfs://master:9000</value> 
</property> 
              第二个<property>标签,即包含<name>dfs.replication</name>一行的那个,其中的“<value>”表示文件上传到dfs上时的备份个数,此数值不能大于slave即datanode的个数)
 4).配置conf下的hdfs-site.xml文件(此配置在slave节点上可有可无)
                   sudo gedit conf/hdfs-site.xml
                  (打开后在空的<configuration> </configuration>中添加如下配置)
  <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
</property> 
 
<property> 
    <name>dfs.name.dir</name> 
    <value>/home/hadoop/hdfs/name</value> 
</property> 
 
<property> 
    <name>dfs.data.dir</name> 
    <value>/home/hadoop/hdfs/data</value> 
</property>
  5).配置conf下的mapred-site.xml文件
                   sudo gedit conf/mapred-site.xml
                  (打开后将<value>标签里的localhost改为JobTracker的IP,因为本例中JobTracker也是master本身,所以将localhost改为“master”或master的IP)