1.
首先是编译hadoop2.6
当然也可以安装二进制版本的,不过用别人编译的二进制有时是容易出问题的,因为每个二进制文件是依赖于你的linux下的lib的,lib好找,问题在于版本的兼容问题!所以你不想出现这种差错就好好自己编译吧!特别是hadoop的native(本地库),例如官方是提供32位的,并不提供64,基本就是这个原因
编译完后,安装hadoop,由于hadoop是使用ssh来连接的,所以配置时我们仅配置一个hadoop,让后通过scp把hadoop发给其他机器
3.
如果你有几台机器,就在连接在同一个网段下,作为学生我没几台机器况且使用很渣的笔记--没显卡,赛扬双核(估计是最低配制了)
我们这里是使用VM 开启两个ubuntu server即早期的Jeos演变的,安装最后时不要添加任何组件(如果你的机器很棒就忽略我说的),每台机器分配512M的内存(如果有条件的话,自行增加)。
这里我们只是开启一个linux,让后配置玩hadoop后就利用VM克隆。
为了避免其他问题我们在克隆后(记得是克隆后修改)修改hostname,具体 sudo vi /etc/hostname (如第一台linux1,第二台linux2) ,让后修改vi /etc/hosts 的域名和ip的映射,把本来的hostname(一般对应127.0.1.1)修改成(第一台时为linux1或第二台机器时为linux2),总之hostname和hosts的域名和ip要对应,
2.检测native库
linux@ubuntu:~$ hadoop checknative -a
15/09/18 20:22:12 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version
15/09/18 20:22:12 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /usr/local/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib/i386-linux-gnu/libz.so.1
snappy: false
lz4: true revision:99
bzip2: false
openssl: true /usr/lib/i386-linux-gnu/libcrypto.so
15/09/18 20:22:12 INFO util.ExitUtil: Exiting with status 1
linux@ubuntu:~$
3.配置域名和ip的映射
vi /etc/hosts
添加
192.168.216.134 master
192.168.216.135 slave1
192.168.216.136 slave2
192.168.216.137 slave3
我们当前的机器是 master ,其ip查看通过 ifconfig查看,而slavex的ip是master的累加,因为VM克隆时正常情况下ip是递增的
4.配置ssh
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
由于我们等会是在虚拟器里是通过克隆来添加一个datanode的机器的,所以不用scp公钥authorized_keys到其他机器中
测试之前添加shh的host no check规则
ssh -o StrictHostKeyChecking=no master
ssh -o StrictHostKeyChecking=no slave1
ssh -o StrictHostKeyChecking=no slave2
回环测试ssh
ssh localhost
不出意外不会报错的
退出ssh远程 直接在命令行exit
5.hadoop的配置
JDK的安装我就忽略了,一个基本的操作
把编译好的hadoop移动到/usr/local
添加环境配置
#HADOOP_ENV
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"
接下来配置hadoop
cd ${HADOOP_HOME}/etc/hadoop/
hadoop-env.sh 该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。
修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java7)
yarn-env.sh 该文件是yarn框架运行环境的配置
修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java7)
slaves 该文件里面保存所有slave节点的信息
写入以下内容(hosts里从机的主机名): slave1 ########(我们值添加一个datanode)
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ubuntu/hadoop/fs/tmp<value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
/home/ubuntu/hadoop/fs/tmp需要自已创建
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/ubuntu/hadoop/fs/name</value>
</property>
<property>
<name>dfs.datannode.data.dir</name>
<value>/home/ubuntu/hadoop/fs/data</value>
</property>
</configuration>
/home/ubuntu/hadoop/fs/data需要自已创建
/home/ubuntu/hadoop/fs/name需要自已创建
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>1</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6.让后克隆linux1,开启两个VM后,在linux1即master
记得克隆后改hostname,上面已经讲
start-dfs.sh
start-yarn.sh
由于我们在ubuntu servier里是没有界面的,所以我们可以在同一个网段下的win7或其他机器输入
datanode正常
namenode正常
如果datanode无法开启就查看log