1. 添加用户: useradd hadoop passwd hadoop
为hadoop用户添加root权限:
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
修改完毕,现在可以用hadoop帐号登录,然后用命令 su - ,即可获得root权限进行操作。
2. ssh需要注意:
前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下:
然后重启ssh服务:service sshd restart。最后退出root。接下来用hadoop用户操作。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
接下来修改authorized_keys权限:chmod 644 authorized_keys 不然还是需要输入密码连接自己
把authorized_keys文件scp到slave的相同用户上(有时候直接scp 。。。 hadoop@IP...... 可能有问题,所以可以先scp ... root@IP......)
实现:master可以无密码连接slave,但slave不能无密码连接master
在slave上,如果是手动创建的.ssh文件夹,需要把.ssh文件权限修改 chmod 700 ~/.ssh
3. 配置所有机器的/etc/hosts文件,建立IP与hostname间的映射(修改一个scp过去就可以)
127.0.0.1 localhost
192.168.1.1 master
192.168.1.2 slaves1
192.168.1.3 slaves2
然后确保每台机器的hostname无误。
4. 配置hadoop(修改一个scp过去就可以)
1、 修改conf/hadoop-env.sh文件
export JAVA_HOME=.......
2、修改masters和slaves文件
在masters文件中填写master的hostname,slaves中填写所有slave的hostname
3、修改conf下的配置文件:
下面就可以修改配置文件了
conf/core-site.xml(相当于namenode):
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://192.168.1.1:9000</value>
- </property>
- </configuration>
conf/hdfs-site.xml:
- <configuration>
- <name>dfs.name.dir</name>
- <value>/home/hadoop/hdfs/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/homel/hadoop/hdfs/data</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
conf/mapred-site.xml:
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>192.168.1.1:9001</value>
- </property>
- </configuration>
5.可以在每个机器的hadoop用户下建一个profile文件
vi ~/.profile
export HADOOP_HOME=...
export PATH=$HADOOP_HOME/bin:$PATH