随着云时代的来临,大数据(Bigdata)吸引了越来越多的关注。分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。
这时候很多学者想学习大数据,或是沉迷于大数据强大的楦头,或是因为未来工作发展需要,亦或是……但是不管什么原因想学习大数据,都离不开困扰初学者的一个怪圈:大数据是什么,怎么用,关键是从哪学起。
- 互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习 欢迎进阶中和进想深入大数据的小伙伴加入
上面提到的强大的MapReduce其实是入门大数据的一个先锋:Hadoop的一个计算数据框架。其实Hadoop还有一个核心那就是其实现的一个分布式文件系统HDFS。二者共同完成Hadoop的功能,缺一不可。今天小编就带大家学习大数据入门Hadoop安装配置和其必备组件JDK与MySQL的安装配置,并且简单介绍Linux下MySQL数据表的基本操作。纯手工原创,希望大家支持牛学汇,关注小编。
资源配置要求:小编使用的是64位Ubuntu系统的台式机。大家手中的笔记本RAM4G+的亦可以实现单机配置。重点来了,开始安装配置boss:Hadoop:
安装与配置
2.1 安装JDK-JAVA的开发工具包
2.1.1 解压缩jdk到/usr/local/java/目录下;tar -zxvf jdk.gz
2.1.2 配置jdk的环境变量
打开/etc/profile,在其中配置JAVA_HOME、PATH、CLASSPATH:
export JAVA_HOME=/usr/local/java/jdk* ####告诉系统JDK的主目录在哪里
export PATH=$JAVA_HOME/bin$PATH ####/bin/javac为JAVA程序的编译器;/bin/java为JAVA解释器及其他命令
export CHASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ####JAVA源文件编译结束生成的CLASS文件,告诉操作系统其位置
2.1.3 验证环境变量是否正确:$java -version&java -version
2.2 安装配置Hadoop
2.2.1 解压缩Hadoop包到主目录
$tar -zxvfhadoop.tar.gz
$mv hadoop2.5232 hadoop ####重命名hadoop
2.2.2 打开/etc/profile
$sudo gedit/etc/profile
2.2.3 配置Hadoop环境 ####通过命令行调动Hadoop命令或者对其访问
export HADOOP_HOME=/home/duanshi/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH ####/bin/&/sbin/下面有hadoop与hdfs命令
验证配置是否成功:$hadoop jar
2.2.4 我们选择Hadoop V2版本的伪分布模式:在这个模式里我们可以在一个单独的机器上运行Hadoop,模拟一个分布式集群。这个模式将Hadoop的不同服务作为不同的JAVA程序来运行,但是在一个单独的机器里,此时Hadoop将使用分布式文件系统。该模式除了非真正的分布式外,其程序执行逻辑完全类似于分布式。
2.2.5 安装ssh和配置ssh无密码登录:
1)$sudo apt-get install openssh-server ####安装ssh
2)设置从Namenode到Datanode的SSH无密码登录:
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa ####创建ssh key
$cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ####将key添加到authorized_keys
$ssh localhost ####无密码登录
2.2.6 配置Hadoop
1) 创建tmp临时文件夹:$mkdir hadoop/tmp
2) 创建namenode和datanade数据文件夹:
$mkdir hadoopdata
$mkdir hadoopdata/hdfs
$mkdir hadoopdata/hdfs/name ####存储命名空间和事物日志的路径
$mkdir hadoopdata/hdfs/data ####在datanode中存储数据块的路径
3) 配置Hadoop
要配置的文件在/hadoop/etc/hadoop/下
1.hadoop-env.sh文件
配置JDK主目录:exportJAVA_HOME=/usr/local/java/jdk*
2. 配置hdfs核心文件con-sita.xml
<property>
<name>fs.defaultFS</name> ####hdfs分布式文件系统的一个主节点名称
<value>hdfs://localhost:9000</value> ####hdfs协议,为分布模式主机,端口为9000
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/duanshi/hadoop/tmp</value> ####file本地文件系统
</property>
3. 配置hdfs-site.xml ####配置两个节点目录name&data
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/duanshi/hadoopdata/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/duanshi/hadoopdata/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name> ####备份数据块,伪分布模式一个机器所以值为1
<value>1</value>
</property>
4.配置mepred.site.xml
<property>
<name>mapreduce.framework.name</name> ####mapreduce资源调度框架为:yarn
<value>1</value>
</property>
5.配置yarn调度器yarn.site.xml
<property>
<name>yarn.nodemanager.aux-services</name> ####配置yarn辅助服务shuffle
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services。mapreduce_services.class</name> ####该服务调用哪一个类来执行shuffle功能
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
#####分布式文件系统hdfs和yarn资源调度框架就配置结束了
2.2.7 格式化namenode
$hdfs namenode -format
$start-dfs.sh ####启动hdfs
$jps ####查看hdfs安装
$hdfs dfsadmin -report ####查看hdfs状态报告
打开浏览器,链接;http://localhost:50070 ####hdfs自带监控的web控制台
$start-yarn.sh
就可以打开yarn的web控制台:http://localhost:8042
$mr-jobhistory-daemon.sh starthistoryserver ####打开MapReduce的历史服务
#############到此Hadoop伪分布模式安装配置结束################
2.3 安装MySQL数据库
$sudo apt-get installmysql-server ####期间设置MySQL密码
$mysql -uroot -p ####测试是否安装成功
>create databasehadoop; ####创建一个Hadoop的数据库
>show databases; ####显示创建好的数据库
>grant all privilegeson hadoop.* to hduser identified by "123456"; ####将Hadoop数据库授权给hduser用户,允许从本机登录
>quit ####退出当前数据库
------将数据库授权给其他用户,非本机-------
$mysql -uroot -p
>selecthost,user,password frome user; ####查看当前用户以及他们登录端口
>grant allprivileges hadoop.* to hduser@"%" identified by"123456"; ####将Hadoop数据库所有表的操作授权给hduser,并且允许它从任何主机(%)登录
>quit;
$mysql -h127.10.1.2 -uhduser -p ####例如hduser从该主机登录Hadoop数据库
>qutt;
2.3.1 修改MySQL默认编码
互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习 欢迎进阶中和进想深入大数据的小伙伴加入
####在apt-get安装的MySQL,默认编码不是utf8而是Latin1,那么就无法在数据库中插入中文信息######
$sudo gedit/etc/mysql/my_cnf ####打开MySQL配置文件
a. 在[client]下追加:default-character-set=utf8
b. 在[mysqld]下追加:character-set-server=utf8
c. 在[mysql] 下追加: default-character-set=utf8
保存并退出
$sudo service mysqlrestart &/etc/init.d/mysqlrestart ####重启动数据库
status ######查看编码是否配置成功
2.3.2 MySQL数据库表的基本操作
$mysql -u hduser -p
>use hadoop; ####切换到或者打开Hadoop数据库
>show tables; ####查看数据库中表情况
>create tableemployees(
->id integer notnull primary key auto-increment,
->name varchar(20),
->salary int,
->depaartmentvarchar(50),
->hiredate date
->); ####创建一个employees基本表,规定其主键,属性,以及属性的数据类型等,只是一个空表
>show tables;
>descemployees; ####查看这个表的具体信息
>insert intoemployees value(mull,'张三',8000,'财务部','2016-10-8'); ####添加一行信息
>select * fromemployees; #####查询表的基本信息,如果具体可以用ID,name,salary等替代*
>select * fromemployees where department='生产部'; #####查询满足条件的信息
>update employeesset salary=7000 where name='张三'; #####将张三薪水改为7000
>delete fromeemployees where salary>=10000; #####删除薪水大于等于10000的员工记录
>drop tableenployees; #####删除这个表的全部内容
-------hadoop安装配置,MySQL安装配置,基本操作到此结束---------
上述为小编亲测整理的Hadoop伪分布模式的安装与配置。到了牛学汇下期,小编将继续分享大数据的学习之MapReduce的具体实战。