Hadoop集群的安装与布署

 

新安装的ubuntu server系统的root没有设置密码,首先修改密码

sudo passwd root

centos 在安装时已经设置了root的密码

 

修改主机名(centos)

vim  /etc/sysconfig/network

或是

vi /etc/hostname

配制一个固定的IP

vim  /etc/sysconfig/network-scripts/ifcfg-eth0

如果slave是虚拟主,上述文件可能不存在或者不完全,那先从master里复制一个模版

但如果是物理机里话不要用别的机器的模版,因为除了IP还有物理地址是不同的

service network restart

修改master的/etc/hosts。增加该项记录

增加一个用户hadoop

useradd hadoop

 

修改用户密码

passwd hadoop

 

将用户hadoop 增加到root组

usermod -a -G root hadoop    

 

用logout或者exit注销,再用root登录

删除原来的用户及其目录

userdel -r rootroot

安装vim编辑器

apt-get install vim

yum install vim

xx is not in the sudoers file

#chmod u+w /etc/sudoers   修改文件权限即添加文件拥有这的写权限

ls -al /etc/sudoers 可以查看原文件的权限。    
三、vim /etc/sudoers 编辑文件,按下”i“键进入编辑模式,

在root ALL=(ALL:ALL)ALL行下添加XXX (ALL:ALL)ALL,XXX为你的用户名。

编辑好后esc键进入一般模式,“:x"保存退出!

chmod u-w /etc/sudoers

 

安装ssh  (25个有用的SSH命令)

yum install ssh

或者
apt-get install ssh

service sshd start    (不然可能会报connect refused错)

设置sshd服务自动启动项:

方法A     setup进入图形终端,System services里选中

方法B    使用如下命令: chkconfig --level 3 sshd on   //如果是图形模式,可能是5

chkconfig --list | grep sshd 会显示:

sshd 0:off 1:off 2:off 3:on 4:off 5:on 6:off

 

关闭或者配置防火墙

setup 命令进入字符界面配置,重启生效

具体操作:将Firewall configuration里关掉(用空格键取消 * 即可),然后在System services 里将iptables 取消开机启动

service iptables stop  关闭服务,立刻生产

chkconfig iptables off   重启生效

 

master可以只打开9000,9001端口,而不用关闭整个防火墙

 

开启 ntpd 同步时间

 

将在master中生成公私钥

直接用

ssh-keygen -t rsa

或者以下: 

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

将公钥scp到slave1,然后加入slave1的authorized_keys。或者直接执行如下

 

 

复制SSH密钥到目录主机

方法一:

 

ssh-copy-id user@host

 

方法二:scp ~/.ssh/authorized_keys slave1:~/.ssh 

cat ~/.ssh/id_rsa.pub | ssh user@machine "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

 

修改权限才能生效,.ssh权限700,authorized_keys权限600

chmod 700 ~

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys 

 

 

 

 

 

 

安装JDK

[root@slave1 ~]  
mkdir  /usr/lib/jvm
mkdir /usr/lib/jvm/jdk
[hadoop@master Downloads]$ sudo scp jdk-6u43-linux-i586.bin  slave1:/usr/lib/jvm/jdk
[root@localhost jdk]# ./jdk-6u43-linux-i586.bin 

修改limits.conf和login

vim  /etc/security/limits.conf

 加上

hadoop - nofile 32768
hadoop soft/hard nproc 32000
 vim /etc/pamd.login

加上

session required pam_limits.so

复制master中几个配置文件到hosts,或者自己修改如下文件

cd /etc

scp profile  hosts   pam.d/login  slave1:/etc

scp  /etc/pam.d/login  slave1:/etc/pam.d

scp  /etc/security/limits.conf  slave1:/etc/security

执行环境变量

source /etc/profile 

检验java是否安装成功

java 

javac

修改master中hadoop和hbase的配制文件。slave的相关相息加入

然后复制hadoop和hbase目录到slave

scp -r hadoop-1.1.2  hbase  slave1:/usr/local/

创建目录

mkdir  /usr/hadoop

mkdir  /usr/hadoop/tmp

修改权限

chown -R  hadoop:hadoop  /usr/hadoop

chown -R hadoop:hadoop  /usr/local/hadoop-1.1.2

chown -R hadoop:hadoop  /usr/local/hbase

在master上操作 

如果是初始化hadoop

hadoop namenode -format

hadoop dfsadmin -safemode leave

启动hadoop

bin/start-all.sh

停止hadoop

bin/stop-all.sh

查看系统健康状态

hadoop fsck / 

重启坏掉的DataNode或TaskTracker/Jobtracker。在坏死的节点上运行

hadoop-daemon.sh start datanode

hadoop-daemon.sh start tasktracker

hadoop-daemon.sh start jobtracker

报告HDFS的基本统计信息

hadoop dfsadmin -report

上传文件

hadoop dfs -put  源 目的

下载文件

hadoop dfs -get 源 目的

创建目录

hadoop dfs -mkdir 目录名

查看文件目录

hadoop dfs -ls  /

查看文件内容

hadoop dfs -cat out/*

删除文件及目录

hadoop dfs -rmr out

负载均衡

start-balancer.sh

并行复制

hadoop distcp -help hdfs://namenode1/foo hdfs://namenode2/bar

修改hdfs的权限
hadoop dfs -chmod -R 755 /

修改hdfs文件的所有者

hadoop fs -chown -R hadoop /

拷贝hdfs文件到其它目录

hadoop fs -cp URI [URI …] <dest>

改名

hadoop  dfs -mv  源文件 目的文件

增加和删除节点

启动hbase

start-hbase.sh

hbase shell

停止hbase

stop-hbase.sh

运行hive

hive --service hwi

hive

 

可能报的异常:

出现 Warning: $HADOOP_HOME is deprecated.

在当前用户home/.bash_profile里增加一个环境变量:

export HADOOP_HOME_WARN_SUPPRESS=1

重新执行

source .bash_profile  

注意事项:

Linux的图形化桌面gnome会占用较多的内存和CPU,如xorg,gnome-screensav 等进程,所以slave尽量不要安装图形桌面。master在不需要图形化桌面时用Ctrl+Alt+F3切换到字符界面。这样可以大大提高主机利用效率。

如果你装了多台机器,千万不要用此命令单纯拷贝引导配置文件(禁止执行如下命令:scp grub.conf root@${host}:/etc)。因为每台机器的引导分区的UUID一定是不同的 

 Hadoop作业(如调用Hbase)引用第三方 jar 。比如运行Hbase相关的Mapreduce的话

#set hbase environment
export HBASE_HOME=/usr/local/hbase
# add hbase libs to CLASSPATH
for f in $HBASE_HOME/*.jar; do
    HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done
for f in $HBASE_HOME/lib/*.jar; do
    HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done

hadoop jar FindFriend.jar com.j2cms.hbase.mapreduce.FindFriend

   参考:

    1.hadoop作业引用第三方jar文件     2.hadoop CLASSNAME命令使用注意点

猜你喜欢

转载自yeelor.iteye.com/blog/1936070