预备
这边部署的
hadoop版本为 2.7.3
hive版本为 1.2.1
注:src为源码包
Hadoop搭建
解压,进入配置目录
tar zxvf hadoop-2.7.3.tar.gz
cd hadoop-2.7.3/etc/hadoop
修改配置
core-site.xml,hdfs-site.xml, mapred-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| # core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>(补上绝对路径)/hadoop-2.7.3/hadoop</value> </property> <property> <name>dfs.name.dir</name> <value>(补上绝对路径)/hadoop-2.7.3/hadoop/name</value> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
# hdfs-site.xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>(补上绝对路径)/hadoop-2.7.3/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>(补上绝对路径)/hadoop-2.7.3/data</value> </property> <property> <name>dfs.http.address</name> <value>0.0.0.0:50070</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
# mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
|
配置免密登录
1 2 3 4 5 6 7 8 9 10
| 1。 设置自己的mac允许远程登录: 首先我们打开系统偏好设置–>共享 我们将远程登录、所有用户勾选
2. 设置免密码 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod og-wx ~/.ssh/authorized_keys chmod 750 $HOME
执行 ssh localhost 测试
|
启动hadoop
先format namenode
hadoop namenode -format
./hadoop-2.7.3/sbin/start-all.sh
验证安装成功
jps查看namenode 和 datanode等正常启动
执行 WordCount
在 hdfs 创建文件夹 hadoop fs -mkdir -p /data/input
hadoop fs -mkdir -p /data/out
上传文本文件
hadoop fs -put a.txt /data/input
执行 wordcount
hadoop jar ~/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /data/input/a.txt /data/out/my_wordcont
访问界面
Resourcemanager 界面 http://127.0.0.1:8088
hadoop提供的web页面 http://127.0.0.1:50070
查看 hdfs 界面 http://127.0.0.1:50070/explorer.html#/
访问 mapreduce 提供的任务查看页面 访问hadoop提供的web页面,通过Browse the system,可以查看hdfs中的文件。
Hive搭建
解压文件
tar -zxvf apache-hive-1.2.1-bin.tar.gz
修改配置
先复制一份默认的配置文件
1 2 3
| cd apache-hive-1.2.1-bin cp conf/hive-env.sh.template conf/hive-env.sh cp conf/hive-default.xml.template conf/hive-site.xml
|
修改hive-site.xml中的部分peoperty
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <property> <name>system:java.io.tmpdir</name> <value>/Users/root/hadoop/tmp</value> </property> <property> <name>system:user.name</name> <value>hive</value> </property>
# mysql地址localhost <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive</value> </property> # mysql的驱动 <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> # 用户名 <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> # 密码 <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property>
|
装好Mysql
放一个mysql jdbc连接的jar包到 hive的lib下
创建一个库用作metastore存储
./bin/schematool -dbType mysql -initSchema
启动hive
./bin/hive
Hive源码调试
下载hive中的src包
1 2 3
| tar xvf apache-hive-1.2.1-src.tar.gz cd apache-hive-1.2.1-src mvn clean package -Phadoop-2 -DskipTests -Pdist
|
在刚刚装好的开启远程调试模式
hive --debug
他会显示
Listening for transport dt_socket at address: 8000
然后在idea 打开hive源码项目,注意要把编译环境改成java1.8
添加一个Configuraiton Remote
host写127.0.0.1
port写刚刚的8000
包选择hive-cli
在org/apache/hadoop/hive/cli/CliDriver.java
中找main函数,并在run()行加上断点
点击debug就可以看到运行到断点处
特别感谢